Skip to content

Conversation

@jcs15c
Copy link
Contributor

@jcs15c jcs15c commented Sep 9, 2025

This PR is ready to go (assuming cooperation with the Gitlab CI), but I'm waiting to merge it until I'm back in office on 9/30, since it isn't critical for the upcoming release.

Summary

The current 2D and 3D algorithms currently compute redundant information between evaluation at different query points, namely evaluations of the curve/surface. This PR is an algorithm refactoring/enhancement that addresses this by utilizing memoization for performance improvements. A NURBSCurveGWNCache or NURBSPatchGWNCache object stores the original NURBS object along with map(s) that stores these intermediate values as they are used in the GWN algorithm:

  • In 2D, the input NURBS curve is decomposed into Bezier curves, and necessary levels of subdivisions are stored for each Bezier curve. This implementation is considerably simpler than before, e.g. no longer constructs and checks polygons at each refinement, but avoids extra memory allocations.
  • In 3D, quadrature nodes and tangent vectors to the surface are stored for each trimming curve in a patch. Furthermore, a copy of the original patch altered to improve the robustness of the GWN algorithm, e.g. linearly extending the parameter space of the patch so that the untrimmed geometry is larger than the visible region.

These methods are compatible with user supplied cache objects, but are also constructed automatically in cases where the GWN algorithm is called on arrays of query points to simplify use.

Note that these acceleration techniques are currently not reflected in the winding number sampling shaper code in quest, namely because these methods are built on CurvedPolygon objects which contain Bezier, not NURBS curves. This will be addressed in a future PR.

Some lingering questions that can hopefully be thought about during review:

  • Is this framework of dedicated "cache objects" the implementation that is most conducive to future changes, e.g., GPU implmentation?
  • Is GWNCache the correct label for these objects? Conceivably, there could be other kinds of memoization strategies that involve curves/surfaces, but other geometric operations, such as closest point.

Performance Improvements

To evaluate the performance improvement of the 3D memoization scheme, I've executed this block of code on this branch and develop on my local laptop. On a release build, this code executed in 13.8 minutes on develop and 10.3 seconds on this branch.

TEST(primal_integral, demo_test)
{
  using Point3D = primal::Point<double, 3>;
  using Vector3D = primal::Vector<double, 3>;

  // Set up an array of points to test against
  axom::Array<Point3D> points;

  for(int i = 0; i < 1e5; ++i)
  {
    auto x = axom::utilities::random_real( -2.0, 2.0 );
    auto y = axom::utilities::random_real( -2.0, 2.0 );
    auto z = axom::utilities::random_real( -2.0, 2.0 );
    points.push_back( Point3D { x, y, z } );
  }
  
  // Get the array of points
  auto sphere_faces = make_sphere_biquintic();

  // Evaluate the winding number at the points
  auto gwn = winding_number(points, sphere_faces);
}

For 2D, we run this block of code, which takes 108ms on the current develop branch and 18ms on the current branch.

TEST(primal_integral, demo_test)
{
  primal::Point<double, 2> data[7] = {primal::Point<double, 2> {1.0, 0.0},
                                      primal::Point<double, 2> {1.0, 2.0},
                                      primal::Point<double, 2> {-1.0, 2.0},
                                      primal::Point<double, 2> {-1.0, 0.0},
                                      primal::Point<double, 2> {-1.0, -2.0},
                                      primal::Point<double, 2> {1.0, -2.0},
                                      primal::Point<double, 2> {1.0, 0.0}};
  double weights[7] = {1.0, 1. / 3., 1. / 3., 1.0, 1. / 3., 1. / 3., 1.0};
  double knots[11] = {0.0, 0.0, 0.0, 0.0, 0.5, 0.5, 0.5, 1.0, 1.0, 1.0, 1.0};

  primal::NURBSCurve<double, 2> circle(data, weights, 7, knots, 11);
  //primal::detail::NURBSCurveGWNCache circle_data(circle);

  // Set up an array of points to test against
  axom::Array<primal::Point<double, 2>> points;

  for(int i = 0; i < 1e5; ++i)
  {
    auto x = axom::utilities::random_real(-2.0, 2.0);
    auto y = axom::utilities::random_real(-2.0, 2.0);
    points.push_back(primal::Point<double, 2> {x, y});
  }

  // Evaluate the winding number at the points
  for(auto & pt : points)
    winding_number(pt, circle_data); // `circle` on develop
}

Additional changes and bugfixes

  • Updates the quest_winding_number.cpp example to utilize cached NURBS curves.
  • An additional NURBSPatch::expandParameterSpace method that allows the patch to the expanded differently along each axis.
  • Changes several internal intersection tolerances for consistency.
  • Adds isHalfOpen option for ray-bezier intersection tests.
  • Adds a method to evaluate average surface normals for trimmed surfaces.

@jcs15c jcs15c changed the title Accelerates GWN queries with memoization Accelerates 2D/3D GWN queries with memoization Sep 9, 2025
commit 0b33270
Merge: 0ea0af7 031a6d2
Author: Jacob Spainhour <[email protected]>
Date:   Thu Sep 11 13:16:37 2025 -0700

    Merge branch 'feature/spainhour/winding_number_memoization' of https://github.com/LLNL/axom into feature/spainhour/winding_number_memoization

commit 0ea0af7
Author: Jacob Spainhour <[email protected]>
Date:   Thu Sep 11 13:16:30 2025 -0700

    Remove unused branch

commit 031a6d2
Merge: 551ea55 7704e12
Author: Jacob Spainhour <[email protected]>
Date:   Thu Sep 11 13:13:47 2025 -0700

    Merge branch 'develop' into feature/spainhour/winding_number_memoization

commit 551ea55
Merge: c3bca76 856f211
Author: Jacob Spainhour <[email protected]>
Date:   Thu Sep 11 13:11:56 2025 -0700

    Merge branch 'feature/spainhour/winding_number_memoization' of https://github.com/LLNL/axom into feature/spainhour/winding_number_memoization

commit c3bca76
Author: Jacob Spainhour <[email protected]>
Date:   Thu Sep 11 11:38:54 2025 -0700

    Address warnings

commit 7704e12
Merge: a18035d 438e227
Author: Brian Han <[email protected]>
Date:   Thu Sep 11 10:58:42 2025 -0700

    Merge pull request #1634 from LLNL/feature/han12/aws_docker_2025

    AWS Docker Base Image Update

commit 438e227
Merge: b1df923 a18035d
Author: Brian Han <[email protected]>
Date:   Thu Sep 11 08:14:46 2025 -0700

    Merge branch 'develop' into feature/han12/aws_docker_2025

commit a18035d
Merge: f55dcf8 72fad3f
Author: Brad Whitlock <[email protected]>
Date:   Wed Sep 10 14:27:37 2025 -0700

    Merge pull request #1642 from LLNL/feature/whitlock/mfem_for_shaping

    Enhance SamplingShaper so it can work with contours stored in MFEM meshes

commit 72fad3f
Merge: 9b138c2 f55dcf8
Author: Brad Whitlock <[email protected]>
Date:   Wed Sep 10 12:25:19 2025 -0700

    Merge branch 'develop' into feature/whitlock/mfem_for_shaping

commit b1df923
Merge: bbdb466 f55dcf8
Author: Brian Han <[email protected]>
Date:   Wed Sep 10 08:24:40 2025 -0700

    Merge branch 'develop' into feature/han12/aws_docker_2025

commit f55dcf8
Merge: eac6b67 e646f78
Author: Max Yang <[email protected]>
Date:   Tue Sep 9 10:05:04 2025 -0700

    Merge pull request #1651 from LLNL/feature/yang39/flatmap-rehash

    FlatMap: add device-aware rehash

commit 856f211
Author: Jacob Spainhour <[email protected]>
Date:   Mon Sep 8 18:02:41 2025 -0700

    Rename NURBSPatchData class

commit 32c4c10
Author: Jacob Spainhour <[email protected]>
Date:   Mon Sep 8 17:42:27 2025 -0700

    Minor changes throughout, remove unnecessary debug stuff

commit e646f78
Author: Max Yang <[email protected]>
Date:   Fri Sep 5 14:55:35 2025 -0700

    FlatMap: add ODR check

commit 65e24ea
Author: Max Yang <[email protected]>
Date:   Fri Sep 5 10:25:44 2025 -0700

    FlatMap rehash: fixes for CUDA

commit deac2d0
Author: Max Yang <[email protected]>
Date:   Wed Sep 3 13:15:39 2025 -0700

    FlatMap: use parallel rehash method sometimes

    Currently, this is limited to rehashes where the KV pair is
    trivially-copyable, and the array is located in device-side memory.

commit 17f65a9
Author: Max Yang <[email protected]>
Date:   Tue Sep 2 17:41:47 2025 -0700

    FlatMap: add parallelRehash method for device-side rehashes

commit 7087604
Author: Max Yang <[email protected]>
Date:   Thu Aug 28 12:29:36 2025 -0700

    Add rehash performance to benchmarks

commit eac6b67
Merge: 981a7e7 2258d6c
Author: Chris White <[email protected]>
Date:   Mon Sep 8 17:08:06 2025 -0700

    Merge pull request #1601 from LLNL/feature/bergel1/lumberjack_creation_time_sorting

    Add Message creation time and sort by creation time

commit d2db8b5
Author: Jacob Spainhour <[email protected]>
Date:   Mon Sep 8 15:36:48 2025 -0700

    Add new interfaces

commit ee864cb
Author: Jacob Spainhour <[email protected]>
Date:   Mon Sep 8 11:34:40 2025 -0700

    Remove more debug statements

commit 91e004c
Author: Jacob Spainhour <[email protected]>
Date:   Mon Sep 8 11:34:18 2025 -0700

    Reorganize for memoization

commit a663ebf
Merge: ca4e0a8 981a7e7
Author: Jacob Spainhour <[email protected]>
Date:   Thu Sep 4 13:41:43 2025 -0700

    Merge branch 'develop' into feature/spainhour/winding_number_memoization

commit ca4e0a8
Author: Jacob Spainhour <[email protected]>
Date:   Thu Sep 4 13:28:41 2025 -0700

    Remove some stuff from debugging

commit 776add4
Author: Jacob Spainhour <[email protected]>
Date:   Thu Sep 4 13:07:37 2025 -0700

    last few debug updates (debugdates)

commit 2258d6c
Merge: 744a0b3 981a7e7
Author: Chris White <[email protected]>
Date:   Wed Sep 3 16:40:53 2025 -0700

    Merge branch 'develop' into feature/bergel1/lumberjack_creation_time_sorting

commit 9b138c2
Merge: 6d673eb 981a7e7
Author: Brad Whitlock <[email protected]>
Date:   Fri Aug 29 17:15:56 2025 -0700

    Merge branch 'develop' into feature/whitlock/mfem_for_shaping

commit 744a0b3
Author: Guy Bergel <[email protected]>
Date:   Fri Aug 29 12:42:47 2025 -0700

    Message class documentation

commit 11f0939
Author: Guy Bergel <[email protected]>
Date:   Fri Aug 29 12:36:29 2025 -0700

    added various documentation

commit 6d673eb
Merge: eb4ff8f 2d67843
Author: Brad Whitlock <[email protected]>
Date:   Fri Aug 29 11:24:33 2025 -0700

    Merge branch 'feature/whitlock/mfem_for_shaping' of github.com:LLNL/axom into feature/whitlock/mfem_for_shaping

commit eb4ff8f
Author: Brad Whitlock <[email protected]>
Date:   Fri Aug 29 11:24:22 2025 -0700

    Fix a comment. Remove default ctor/dtor in MFEMReader.

commit 189a765
Author: Guy Bergel <[email protected]>
Date:   Fri Aug 29 11:05:11 2025 -0700

    small fix and removed rename

commit dfe1ed9
Author: Guy Bergel <[email protected]>
Date:   Wed Aug 6 17:33:20 2025 -0700

    apply clang-format

commit c016ecf
Author: Guy Bergel <[email protected]>
Date:   Wed Aug 6 17:27:59 2025 -0700

    updated combiner comments to mention creation time

commit a076398
Author: Guy Bergel <[email protected]>
Date:   Wed Aug 6 17:16:43 2025 -0700

    restore submodules to devel state

commit c4c7334
Author: Guy Bergel <[email protected]>
Date:   Wed Aug 6 16:26:28 2025 -0700

    added start time to communicator and compute elapsed time in lumberjack

commit 22bba1c
Author: Guy Bergel <[email protected]>
Date:   Mon Jun 30 17:27:56 2025 -0700

    apply clang format

commit 5e90738
Author: Guy Bergel <[email protected]>
Date:   Mon Jun 30 17:23:53 2025 -0700

    removed unneeded includes

commit e952513
Author: Guy Bergel <[email protected]>
Date:   Mon Jun 30 17:02:43 2025 -0700

    remove lumberjack integration test and various other small fixes

commit 0c1a4e6
Author: Guy Bergel <[email protected]>
Date:   Mon Jun 30 16:48:43 2025 -0700

    moved creation time to slic LumberjackStream and added another queueMessage method that takes list of ranks and count to help with sorting multiple streams

commit 8285970
Author: Guy Bergel <[email protected]>
Date:   Thu Jun 26 10:56:57 2025 -0700

    added some testing and various other small modifications

commit 26079c7
Author: Guy Bergel <[email protected]>
Date:   Wed Jun 25 17:54:35 2025 -0700

    swapped std::time_t time with double and use MPI_Wtime() to get creation time

commit bd5ef74
Author: Guy Bergel <[email protected]>
Date:   Wed Jun 25 17:37:56 2025 -0700

    started adding creation time with std::time_t

commit 2d67843
Merge: 90dbe79 c062852
Author: Brad Whitlock <[email protected]>
Date:   Thu Aug 28 18:37:11 2025 -0700

    Merge branch 'develop' into feature/whitlock/mfem_for_shaping

commit 90dbe79
Author: Brad Whitlock <[email protected]>
Date:   Thu Aug 28 18:33:18 2025 -0700

    Test for LinearizeCurves.

commit 9d36184
Author: Brad Whitlock <[email protected]>
Date:   Thu Aug 28 15:59:03 2025 -0700

    Added make_shapes.py script that can generate some MFEM contour files for shaping.

commit 91088a1
Author: Brad Whitlock <[email protected]>
Date:   Wed Aug 27 12:47:44 2025 -0700

    make style

commit 4cf8aa7
Author: Brad Whitlock <[email protected]>
Date:   Wed Aug 27 12:47:13 2025 -0700

    Added a winding number shaping test.

commit 68bc863
Merge: 992185f 27bf56c
Author: Brad Whitlock <[email protected]>
Date:   Wed Aug 27 11:42:41 2025 -0700

    Merged develop into branch.

commit 71ab6fa
Author: Jacob Spainhour <[email protected]>
Date:   Fri Aug 22 15:41:48 2025 -0700

    Push the data temporarily to the github

commit 992185f
Merge: 50f9312 f9a7329
Author: Brad Whitlock <[email protected]>
Date:   Fri Aug 22 15:29:34 2025 -0700

    Merge branch 'feature/whitlock/mfem_for_shaping' of github.com:LLNL/axom into feature/whitlock/mfem_for_shaping

commit 50f9312
Author: Brad Whitlock <[email protected]>
Date:   Fri Aug 22 15:27:28 2025 -0700

    make style

commit 3bb6fd5
Author: Brad Whitlock <[email protected]>
Date:   Fri Aug 22 15:24:48 2025 -0700

    Enhanced SamplingShaper and samplers so projector function can be passed into computeVolumeFractionsBaseline.

commit 127a779
Author: Brad Whitlock <[email protected]>
Date:   Fri Aug 22 14:52:48 2025 -0700

    Improve template argument names and comments in QuestHelpers.

commit 51959bb
Author: Brad Whitlock <[email protected]>
Date:   Fri Aug 22 14:52:02 2025 -0700

    Improve template argument names and some documentation in MFEMReader.

commit c3ca31d
Author: Brad Whitlock <[email protected]>
Date:   Fri Aug 22 14:51:12 2025 -0700

    Use AXOM_MAYBE_UNUSED in NURBSPatch

commit 12e6d42
Author: Brad Whitlock <[email protected]>
Date:   Fri Aug 22 14:50:40 2025 -0700

    Added AXOM_MAYBE_UNUSED macro

commit 0c2ba9b
Author: Jacob Spainhour <[email protected]>
Date:   Fri Aug 22 09:13:48 2025 -0700

    update to test file

commit f9a7329
Merge: a9276c6 915db00
Author: Brad Whitlock <[email protected]>
Date:   Thu Aug 21 18:25:49 2025 -0700

    Merge branch 'develop' into feature/whitlock/mfem_for_shaping

commit a9276c6
Merge: 06c3c80 0398fe6
Author: Brad Whitlock <[email protected]>
Date:   Wed Aug 20 16:54:06 2025 -0700

    Merge branch 'develop' into feature/whitlock/mfem_for_shaping

commit 06c3c80
Author: Brad Whitlock <[email protected]>
Date:   Wed Aug 20 16:53:09 2025 -0700

    Update data submodule.

commit 67949d2
Merge: d701b06 ab615fa
Author: Brad Whitlock <[email protected]>
Date:   Wed Aug 20 12:39:04 2025 -0700

    Merge branch 'feature/whitlock/mfem_for_shaping' of github.com:LLNL/axom into feature/whitlock/mfem_for_shaping

commit d701b06
Author: Brad Whitlock <[email protected]>
Date:   Wed Aug 20 12:38:59 2025 -0700

    Unified curve creation.

commit ab615fa
Author: Brad Whitlock <[email protected]>
Date:   Wed Aug 20 11:39:11 2025 -0700

    Updated RELEASE-NOTES.md

commit 42076db
Author: Brad Whitlock <[email protected]>
Date:   Tue Aug 19 16:52:46 2025 -0700

    Fix typo and warnings.

commit 24d9b13
Merge: 981e863 abf5db8
Author: Brad Whitlock <[email protected]>
Date:   Tue Aug 19 16:34:03 2025 -0700

    Merge branch 'develop' into feature/whitlock/mfem_for_shaping

commit 981e863
Author: Brad Whitlock <[email protected]>
Date:   Tue Aug 19 16:32:50 2025 -0700

    make style, added test for shaping with mfem and winding numbers.

commit 78f21d0
Author: Brad Whitlock <[email protected]>
Date:   Tue Aug 19 15:26:04 2025 -0700

    Added a test to read an MFEM file that has multiple curved polygons built from the curves it contains.

commit 9951c50
Author: Brad Whitlock <[email protected]>
Date:   Tue Aug 19 15:04:30 2025 -0700

    Added MFEM reader test

commit 5fcb6b6
Author: Brad Whitlock <[email protected]>
Date:   Tue Aug 19 14:31:42 2025 -0700

    Removed commented-out code.

commit a431e9d
Author: Brad Whitlock <[email protected]>
Date:   Tue Aug 19 14:23:39 2025 -0700

    make style

commit 8eb2152
Author: Brad Whitlock <[email protected]>
Date:   Tue Aug 19 14:21:00 2025 -0700

    Updated data dir.

commit a8b3029
Author: Brad Whitlock <[email protected]>
Date:   Tue Aug 19 11:45:54 2025 -0700

    Add script for plotting heroic_roses with decent colors.

commit e4074d9
Author: Brad Whitlock <[email protected]>
Date:   Thu Aug 14 18:32:22 2025 -0700

    Allow .mesh file extension

commit cb2095d
Author: Brad Whitlock <[email protected]>
Date:   Thu Aug 14 18:14:08 2025 -0700

    Change MFEM reading so it can read NURBSCurve or CurvedPolygon. Hook up mfem I/O to normal InOut path in SamplingShaper so mfem files can get turned to line segments. Make it possible to select between inout and windingnumber sampling methods.

commit f97cfd5
Author: Brad Whitlock <[email protected]>
Date:   Thu Aug 14 15:30:39 2025 -0700

    Separated curve linearization from the C2C reader.

commit bbdb466
Merge: 015408e ada937a
Author: Brian Han <[email protected]>
Date:   Wed Aug 13 12:55:05 2025 -0700

    Merge branch 'develop' into feature/han12/aws_docker_2025

commit 015408e
Author: Brian Han <[email protected]>
Date:   Wed Aug 13 10:07:58 2025 -0700

    Attempt to add VisIt binary installation

commit c1f1138
Author: Brian Han <[email protected]>
Date:   Thu Aug 7 14:34:11 2025 -0700

    Reoptional optional commands

commit 12f01f5
Author: Brian Han <[email protected]>
Date:   Wed Aug 6 16:31:48 2025 -0700

    umpire+shared conflicts with +cuda so do not specify umpire+shared

commit 6bad3c7
Author: Brian Han <[email protected]>
Date:   Wed Aug 6 16:25:03 2025 -0700

    Remove unneeded fix, see if umpire+shared fix is needed

commit 4d952a8
Author: Brian Han <[email protected]>
Date:   Wed Aug 6 13:53:36 2025 -0700

    Try fix for constructor matching

commit f74bb29
Author: Brian Han <[email protected]>
Date:   Wed Aug 6 08:24:48 2025 -0700

    Disable lto for all compilers

commit 725ea26
Author: Brian Han <[email protected]>
Date:   Tue Jul 22 12:24:59 2025 -0700

    Attempt to overwrite LTO flags from MPI compiler

commit 22b4c39
Author: Brian Han <[email protected]>
Date:   Tue Jul 22 11:24:11 2025 -0700

    Disable lto, cuda compilation failures

commit 62cdae8
Author: Brian Han <[email protected]>
Date:   Tue Jul 22 10:32:41 2025 -0700

    Adjust ordering

commit edb019e
Author: Brian Han <[email protected]>
Date:   Tue Jul 22 10:22:53 2025 -0700

    raja missing cuda_arch

commit 3219343
Author: Brian Han <[email protected]>
Date:   Tue Jul 22 10:16:27 2025 -0700

    cuda minor version

commit 7377ab7
Author: Brian Han <[email protected]>
Date:   Tue Jul 22 09:26:30 2025 -0700

    Try more precised cmake path

commit d2d4262
Author: Brian Han <[email protected]>
Date:   Tue Jul 22 08:52:31 2025 -0700

    Use root permissions for openvscode download

commit 2405974
Author: Brian Han <[email protected]>
Date:   Tue Jul 22 08:46:27 2025 -0700

    bump spack env name

commit c5c4587
Author: Brian Han <[email protected]>
Date:   Tue Jul 22 08:43:22 2025 -0700

    Attempt to update to newer ubuntu (same as RAJA)

commit d33a35b
Author: Brian Han <[email protected]>
Date:   Mon Jul 21 09:20:53 2025 -0700

    Add python3 for conduit

commit bfa6202
Author: Brian Han <[email protected]>
Date:   Fri Jul 18 15:23:16 2025 -0700

    Try without umpire+shared hack

commit 4de87ae
Author: Brian Han <[email protected]>
Date:   Fri Jul 18 15:05:37 2025 -0700

    wip - cmake; spec, unzip

commit 30047f0
Author: Brad Whitlock <[email protected]>
Date:   Thu Jul 31 16:37:39 2025 -0700

    make style

commit 855c00d
Author: Brad Whitlock <[email protected]>
Date:   Thu Jul 31 16:36:01 2025 -0700

    BVH enhancements

commit c87b03e
Author: Brad Whitlock <[email protected]>
Date:   Fri Jul 25 18:10:21 2025 -0700

    Fixes that get winding number shaping to somewhat work.

commit 901c2c7
Author: Brad Whitlock <[email protected]>
Date:   Fri Jul 25 14:44:42 2025 -0700

    make style

commit 0b45eef
Merge: 2153e4b 084ce5f
Author: Brad Whitlock <[email protected]>
Date:   Fri Jul 25 14:43:16 2025 -0700

    Merged develop into branch

commit 2153e4b
Author: Brad Whitlock <[email protected]>
Date:   Fri Jul 25 14:36:09 2025 -0700

    Initial changes in support of MFEM sample-based shaping.

commit 90c2f46
Author: Kenneth Weiss <[email protected]>
Date:   Tue Jul 22 17:42:50 2025 -0700

    Updates RELEASE-NOTES

commit 662592f
Author: Kenneth Weiss <[email protected]>
Date:   Tue Jul 22 17:38:58 2025 -0700

    Update the Klee user docs with the new per-shape `geometry/dimensions` field

commit 2ed6971
Author: Kenneth Weiss <[email protected]>
Date:   Tue Jul 22 17:08:20 2025 -0700

    Adds getInputDimensions and getOutputDimensions helper functions to klee::Geometry

commit 23c1780
Author: Kenneth Weiss <[email protected]>
Date:   Fri Jul 18 19:46:35 2025 -0700

    Improves testing of the explicit "geometry/dimensions" field

commit 1fc9940
Author: Kenneth Weiss <[email protected]>
Date:   Fri Jul 18 19:36:10 2025 -0700

    Adds optional "dimensions" field to klee's "shapes/geometry"

    Allows overriding the user-provided global dimension for the shape.
    This will (eventually) allow using STL files for 2D shapes, among other things.

commit 9997287
Author: Kenneth Weiss <[email protected]>
Date:   Fri Jul 18 16:44:26 2025 -0700

    Clarity: Adds explicit `inlet` namespace within Klee implementation

commit 5f0e899
Author: Kenneth Weiss <[email protected]>
Date:   Fri Jul 18 16:25:39 2025 -0700

    Adds `Unspecified` to the klee::Dimensions enum

    Misc: Fixes some doxygen comments and line breaks when looking through
    Klee source code.

commit 4feb63c
Author: Kenneth Weiss <[email protected]>
Date:   Wed Jul 2 12:41:31 2025 -0700

    minor

commit a7c4288
Author: Kenneth Weiss <[email protected]>
Date:   Tue Jul 1 17:11:56 2025 -0700

    Reorganizes Klee source directory

    Moves IO files to `io` subdirectory.

commit 77c8559
Author: Kenneth Weiss <[email protected]>
Date:   Tue Jul 1 15:09:27 2025 -0700

    Updates CI badge to github actions CI (from Azure)

commit d2f0eef
Author: Kenneth Weiss <[email protected]>
Date:   Tue Jul 1 15:09:21 2025 -0700

    Fix typo in test name

commit 71601ce
Author: Jacob Spainhour <[email protected]>
Date:   Fri Jul 11 17:10:01 2025 -0700

    made it better

commit aa689b8
Author: Jacob Spainhour <[email protected]>
Date:   Fri Jul 11 16:08:59 2025 -0700

    Updated runner

commit 871157a
Author: Jacob Spainhour <[email protected]>
Date:   Fri Jul 11 16:08:46 2025 -0700

    Updated source

commit 2c05d15
Author: Jacob Spainhour <[email protected]>
Date:   Fri Jul 11 16:01:07 2025 -0700

    Checkpoint

commit 3bf1640
Author: Jacob Spainhour <[email protected]>
Date:   Thu Jul 10 16:26:40 2025 -0700

    Checkpoint

commit c7df55a
Author: Jacob Spainhour <[email protected]>
Date:   Thu Jul 10 15:09:43 2025 -0700

    Checkpoint

commit 057fa24
Author: Jacob Spainhour <[email protected]>
Date:   Sat Jun 28 16:13:34 2025 -0600

    update to current debug version

commit b610177
Author: Jacob Spainhour <[email protected]>
Date:   Mon Jun 2 15:47:48 2025 -0600

    Add new test

commit 4e35fee
Author: Jacob Spainhour <[email protected]>
Date:   Mon May 26 13:51:13 2025 -0600

    temp changes

commit aa9fc20
Author: Jacob Spainhour <[email protected]>
Date:   Wed May 21 13:34:40 2025 -0600

    fix style and test

commit edea269
Author: Jacob Spainhour <[email protected]>
Date:   Wed May 21 13:34:30 2025 -0600

    fix silly bug

commit 1635dee
Author: Jacob Spainhour <[email protected]>
Date:   Tue May 20 12:44:23 2025 -0600

    updates

commit 9e0c94f
Merge: e6b5844 39697c3
Author: Jacob Spainhour <[email protected]>
Date:   Mon May 19 15:16:08 2025 -0600

    Merge branch 'feature/spainhour/winding_number_3d_update' into example/spainhour/patch_winding_numbers

commit e6b5844
Author: Jacob Spainhour <[email protected]>
Date:   Thu May 15 12:52:28 2025 -0600

    update example code

commit 7cdcbb4
Author: Jacob Spainhour <[email protected]>
Date:   Mon May 12 14:52:31 2025 -0600

    Add new test

commit 8210fa8
Author: Jacob Spainhour <[email protected]>
Date:   Mon May 12 13:03:26 2025 -0600

    Resolve extra merge conflicts

commit 86cd081
Author: Jacob Spainhour <[email protected]>
Date:   Fri May 9 23:35:39 2025 -0600

    More clean merge

commit 4179151
Merge: 9b3549e e7d6482
Author: Jacob Spainhour <[email protected]>
Date:   Fri May 9 14:46:23 2025 -0600

    Merge branch 'feature/spainhour/winding_number_3d_update' into example/spainhour/patch_winding_numbers

commit 9b3549e
Merge: c30b64e c98d4ac
Author: Jacob Spainhour <[email protected]>
Date:   Fri May 9 14:39:58 2025 -0600

    Merge branch 'develop' into example/spainhour/patch_winding_numbers

commit c30b64e
Author: Jacob Spainhour <[email protected]>
Date:   Fri May 9 14:16:29 2025 -0600

    intersect_circle_bezier

commit 53917fe
Author: Jacob Spainhour <[email protected]>
Date:   Mon Apr 21 13:04:38 2025 -0600

    New debugging statements and tests

commit 53913fd
Author: Jacob Spainhour <[email protected]>
Date:   Mon Apr 21 13:02:43 2025 -0600

    Make patch expansion use cleverer formula

commit 496d9a4
Author: Jacob Spainhour <[email protected]>
Date:   Mon Apr 21 13:02:10 2025 -0600

    Fix a silly issue

commit e52246c
Author: Jacob Spainhour <[email protected]>
Date:   Thu Apr 10 15:27:17 2025 -0600

    First effort at fixing the extension thing

commit c742146
Author: Jacob Spainhour <[email protected]>
Date:   Thu Apr 3 14:13:24 2025 -0600

    get functions for testing

commit eca3d49
Author: Jacob Spainhour <[email protected]>
Date:   Thu Apr 3 13:59:50 2025 -0600

    Add an example\

commit 2ede1df
Author: Jacob Spainhour <[email protected]>
Date:   Thu Apr 3 13:59:43 2025 -0600

    Fix a bug

commit 71aa4f2
Author: Jacob Spainhour <[email protected]>
Date:   Sun Feb 2 15:53:47 2025 -0700

    Get up to current version

commit 9a8f5dc
Author: Jacob Spainhour <[email protected]>
Date:   Sun Feb 2 15:50:26 2025 -0700

    Add a strict check for BezierPatch too

commit d653c1a
Author: Jacob Spainhour <[email protected]>
Date:   Sun Feb 2 15:41:45 2025 -0700

    Add option for strict linearity

commit a9b0edc
Merge: 9a46084 9c11154
Author: Jacob Spainhour <[email protected]>
Date:   Mon Jan 27 12:46:45 2025 -0700

    Merge branch 'example/spainhour/patch_winding_numbers' of github.com:LLNL/axom into example/spainhour/patch_winding_numbers

commit 9a46084
Author: Jacob Spainhour <[email protected]>
Date:   Mon Jan 27 12:41:22 2025 -0700

    Last changes from submission

commit 9c11154
Author: Jacob Spainhour <[email protected]>
Date:   Mon Jan 27 12:41:22 2025 -0700

    Last changes from submission

commit 0ab37c2
Author: Jacob Spainhour <[email protected]>
Date:   Tue Jan 21 04:16:45 2025 -0700

    Add extra VTK stuff

commit 5a35d1f
Author: Jacob Spainhour <[email protected]>
Date:   Mon Jan 20 17:29:29 2025 -0700

    Add sample data

commit c342248
Author: Jacob Spainhour <[email protected]>
Date:   Mon Jan 20 17:22:30 2025 -0700

    Make suitable for tests

commit 2c83be6
Author: Jacob Spainhour <[email protected]>
Date:   Fri Jan 17 19:16:35 2025 -0700

    Add trimming curve example

commit 68bf3cd
Author: Jacob Spainhour <[email protected]>
Date:   Fri Jan 17 15:24:42 2025 -0700

    More examples

commit 90409bd
Author: Jacob Spainhour <[email protected]>
Date:   Thu Jan 16 00:44:17 2025 -0700

    Add example

commit 9d1d366
Author: Jacob Spainhour <[email protected]>
Date:   Wed Jan 15 23:41:07 2025 -0700

    Set up example

commit 0f1870b
Author: Jacob Spainhour <[email protected]>
Date:   Wed Jan 15 02:32:37 2025 -0700

    Minor adjustments

commit 9586a2e
Author: Jacob Spainhour <[email protected]>
Date:   Sun Jan 12 23:01:19 2025 -0700

    Add another visualization function

commit 7ced522
Author: Jacob Spainhour <[email protected]>
Date:   Sun Jan 12 23:00:33 2025 -0700

    Update with improved algorithm

commit 46aef52
Author: Jacob Spainhour <[email protected]>
Date:   Fri Jan 10 14:13:22 2025 -0700

    Add some misc debugging

commit 651f8cd
Author: Jacob Spainhour <[email protected]>
Date:   Fri Jan 10 14:08:39 2025 -0700

    Mildly cleaned up

commit 62a200e
Author: Jacob Spainhour <[email protected]>
Date:   Thu Jan 9 14:09:36 2025 -0700

    Debugging statements and files

commit 64b6e4d
Author: Jacob Spainhour <[email protected]>
Date:   Thu Jan 9 14:09:09 2025 -0700

    Make more flexible to trimming curves

commit 3f5e8f7
Author: Jacob Spainhour <[email protected]>
Date:   Thu Jan 9 14:08:45 2025 -0700

    Improve trimming curve access methods

commit b443295
Author: Jacob Spainhour <[email protected]>
Date:   Thu Jan 9 14:08:30 2025 -0700

    Loosen tolerances on knot space validity

commit cc469b2
Merge: b11da2c 9b2a9eb
Author: Jacob Spainhour <[email protected]>
Date:   Wed Jan 8 12:04:06 2025 -0700

    Merge branch 'feature/kweiss/opencascade-example' into feature/spainhour/trimming_curve_support

commit b11da2c
Author: Jacob Spainhour <[email protected]>
Date:   Tue Jan 7 22:33:03 2025 -0700

    Initial commit of trimming curve nonsense

commit 6c12bb1
Author: Jacob Spainhour <[email protected]>
Date:   Thu Dec 19 15:10:15 2024 -0700

    Compatible (but incorrect) version with new intersect routines

commit 8f48fdb
Author: Jacob Spainhour <[email protected]>
Date:   Mon Dec 16 15:09:11 2024 -0700

    Fix a typo!

commit 0ad8233
Author: Jacob Spainhour <[email protected]>
Date:   Mon Oct 7 14:27:29 2024 -0600

    Simplify jump condition checking

commit 32f6a8c
Author: Jacob Spainhour <[email protected]>
Date:   Mon Oct 7 14:26:12 2024 -0600

    Update debug statements

commit b7d083b
Author: Jacob Spainhour <[email protected]>
Date:   Thu Oct 3 01:59:58 2024 -0600

    Make working version on current test

commit 8fd1ac7
Author: Jacob Spainhour <[email protected]>
Date:   Thu Oct 3 01:59:12 2024 -0600

    Add buffer region to intersect

commit f776928
Author: Jacob Spainhour <[email protected]>
Date:   Mon Sep 30 17:41:06 2024 -0600

    Add subdivision to account for coincident points

commit dc47419
Author: Jacob Spainhour <[email protected]>
Date:   Fri Sep 27 14:29:44 2024 -0600

    Adjust some numerical tolerances

commit 40bcce7
Author: Jacob Spainhour <[email protected]>
Date:   Fri Sep 27 14:28:46 2024 -0600

    Update with reasonable confidence

commit f97e575
Author: Jacob Spainhour <[email protected]>
Date:   Fri Sep 20 12:28:14 2024 -0600

    Make consistent with new methods

commit d5bea15
Author: Jacob Spainhour <[email protected]>
Date:   Fri Sep 20 12:27:38 2024 -0600

    Add "isBilinear", make tolerances absolute

commit 132e8f1
Author: Jacob Spainhour <[email protected]>
Date:   Fri Sep 20 12:27:20 2024 -0600

    Add a "line" class for ease of implementation

commit 07cc186
Author: Jacob Spainhour <[email protected]>
Date:   Thu Sep 19 17:30:58 2024 -0600

    Correct subpatch intersection routines

commit fa776d3
Author: Jacob Spainhour <[email protected]>
Date:   Thu Sep 19 10:04:42 2024 -0600

    Add GARP algorithm (ray-bilinear intersection)

commit 6ad7e2d
Author: Jacob Spainhour <[email protected]>
Date:   Tue Sep 17 21:24:58 2024 -0600

    Debugging updates

commit 16e3708
Author: Jacob Spainhour <[email protected]>
Date:   Tue Sep 17 21:24:33 2024 -0600

    Greatly consolidate casting WN algorithm

commit 80896f9
Author: Jacob Spainhour <[email protected]>
Date:   Tue Sep 17 15:21:10 2024 -0600

    Temporary recreation of PR

commit 2aba29f
Author: Jacob Spainhour <[email protected]>
Date:   Mon Sep 16 17:38:42 2024 -0600

    Debugging print statements

commit e742610
Author: Jacob Spainhour <[email protected]>
Date:   Mon Sep 16 17:38:05 2024 -0600

    Add simple intersection routine

commit 79a70df
Author: Jacob Spainhour <[email protected]>
Date:   Thu Sep 5 08:50:31 2024 -0600

    Begin adding new 3D GWN algorithm

commit 425ab6e
Author: Jacob Spainhour <[email protected]>
Date:   Thu Sep 5 08:32:52 2024 -0600

    Start bezier-patch intersection (not working)

commit c8b71de
Author: Jacob Spainhour <[email protected]>
Date:   Mon Sep 2 23:13:57 2024 -0600

    Add the ray-bezier intersection routine from the paper

commit 50a98fa
Author: Jacob Spainhour <[email protected]>
Date:   Mon Sep 2 22:52:47 2024 -0600

    Actual, real bugfix

commit 91801f7
Author: Jacob Spainhour <[email protected]>
Date:   Mon Sep 2 22:52:34 2024 -0600

    Temporary debug printing

commit 20977ac
Author: Jacob Spainhour <[email protected]>
Date:   Thu Aug 8 00:06:45 2024 -0600

    Initial vtk tests
@jcs15c jcs15c force-pushed the feature/spainhour/winding_number_memoization branch from 0b33270 to 043e8a8 Compare September 11, 2025 21:09
@kennyweiss kennyweiss added Primal Issues related to Axom's 'primal component Reviewed labels Sep 15, 2025
Copy link
Member

@kennyweiss kennyweiss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really nice improvements @jcs15c and great performance numbers!

Please update the RELEASE_NOTES.

Copy link
Member

@BradWhitlock BradWhitlock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice speedups.

*
* \param [in] query The query point to test
* \param [in] nurbs_cache The NURBS curve cache data object containing memoized values
* \param [in] isOnCurve Set to true is the query point is on the curve
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isOnCurve should be [out] or [inout]

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suspect all the Doxygen should be reviewed for this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very true. There's a couple of places where the [in]/[out]/[inout] labels are missing altogether. I'll go through and double-check everything.

@jcs15c jcs15c merged commit cf4c904 into develop Oct 1, 2025
15 checks passed
@jcs15c jcs15c deleted the feature/spainhour/winding_number_memoization branch October 1, 2025 16:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Primal Issues related to Axom's 'primal component Reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants