Closed andrewgiuliani closed 3 months ago
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 91.64%. Comparing base (
1fb6e87
) to head (3d1413b
). Report is 10 commits behind head on master.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
I think test_is_self_intersecting
is not being run in the CI, since ground
and bentley_ottman
are not installed there. Does it make sense to add these packages to simsopt's requirements? Or do you think these packages and their sub-dependencies are onerous to include for some users? If we don't include these packages in simsopt's general requirements, then I'd suggest manually installing them in the CI and extensive CI as in this line so test_is_self_intersecting
is run.
This PR introduces a surface self-intersection test, and second derivatives of the surface aspect ratio with respect to the surface degrees of freedom.
The algorithm that checks for surface self-intersection first computes a surface cross section at a given cylindrical angle phi. Then, approximating the cross section as a piecewise linear polyline, the Bentley-Ottmann algorithm is used to check if any line segments overlap one another.
The second derivatives of surface aspect ratio are useful if being used as a surface label in the BoozerLS algorithm.