You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If Vehicle::CreateDegenGeom is executed on geometry that includes a previously generated degenGeom, two identical triangles can be given to tri_tri_intersection_test_3d. This can result in the returned 'source' or 'target' value becoming inf or NaN, which causes all kinds of surprises later on.
Steps to reproduce:
New file
Add a pod geom (probably anything with actual geometry would work)
Mark the pod to be included in "Set 0"
Open VSPAERO, choose "Panel Method" and select "Set 0" for the geometry set.
Run the solver. The generated degenGeom will also belong to "Set 0" :/
Now select "Vortex Lattice Method" and run the solver again.
Ultimately this will segfault in triangle.c:makevertexmap() but to catch it at the initial problem point add something like this immediately after the call to tri_tri_intersection_test_3d in TMesh.cpp:2589 and breakpoint on the printf:
for (int t = 0; t < 3; t++) {
if ( isinf(e0.v[t]) || isinf(e1.v[t]) || isnan(e0.v[t]) || isnan(e1.v[t]) ) {
printf("gotcha\n");
}
}
Example break values:
Interestingly if left as "Panel Method" the solver can be run over and over without any problems... maybe the old mesh just needs to be removed here even when the method is not Panel?
The text was updated successfully, but these errors were encountered:
If Vehicle::CreateDegenGeom is executed on geometry that includes a previously generated degenGeom, two identical triangles can be given to tri_tri_intersection_test_3d. This can result in the returned 'source' or 'target' value becoming inf or NaN, which causes all kinds of surprises later on.
Steps to reproduce:
Ultimately this will segfault in triangle.c:makevertexmap() but to catch it at the initial problem point add something like this immediately after the call to tri_tri_intersection_test_3d in TMesh.cpp:2589 and breakpoint on the printf:
Example break values:
Interestingly if left as "Panel Method" the solver can be run over and over without any problems... maybe the old mesh just needs to be removed here even when the method is not Panel?
The text was updated successfully, but these errors were encountered: