Evaluate surface and volume integrals over Bezier and NURBS patches#1827
Evaluate surface and volume integrals over Bezier and NURBS patches#1827kennyweiss wants to merge 21 commits intodevelopfrom
Conversation
a8c10b2 to
04b567c
Compare
jcs15c
left a comment
There was a problem hiding this comment.
Looks good to me! Minor thing with the new biquartic_sphere.step in axom data, but otherwise the math looks sound.
Thanks -- I'll update it Edit: Done. |
| #include "axom/primal/geometry/BezierCurve.hpp" | ||
| #include "axom/primal/geometry/BezierPatch.hpp" | ||
| #include "axom/primal/geometry/NURBSCurve.hpp" | ||
| #include "axom/primal/geometry/NURBSPatch.hpp" |
There was a problem hiding this comment.
I know I already approved these changes, but I'm wondering now if there's something inherently circular about these includes. Currently, NURBSPatch objects call evaluate_area_integral on their trimming curves, which means NURBSPatch.hpp should technically include evaluate_integral.hpp, which seems like it would conflict with this include here.
This doesn't seem to be an issue right now, since NURBSPatch is somehow able to find the relevant definition for evaluate_area_integral without the correct include, but on my new branch #1834 something changed to make the include tree more picky, and now it can't find the function anymore. Still working on a fix there The fix was fixing a bug where CurvedPolygon included NURBSPatch, but there still might be an issue for whoever's PR gets merged second.
There was a similar issue with the winding number methods, which we resolved by having a winding_number.hpp file containing the interface to 2D and 3D methods, and then separate winding_number_2d_impl.hpp and winding_number_3d_impl.hpp files. Do you anticipate that we would eventually need something here too, with separate evaluate_integral_curve_impl.hpp and evaluate_integral_surface_impl.hpp files, either here or in a later PR?
…ezierPatches and NURBSPatches
And improves output formatting.
…r bound is inside patch Assumption is that control points can leave the patch, but the trimming curves themselves lie within the patch.
… weights There were ULP-level differences when compiling with `-march=native`.
This avoids circular dependency issue between NURBSPatch and the 2D integral functions.
b43a666 to
8055a19
Compare
Summary
primal::evaluate_surface_integralandprimal::evaluate_volume_integralfunctions for integrands over collections ofBezierPatchandNURBSPatchobjectsconnector.stepmodel