Skip to content

node-to-elem-map cleanup#32745

Draft
lindsayad wants to merge 9 commits intoidaholab:nextfrom
lindsayad:assert-things-built-32711
Draft

node-to-elem-map cleanup#32745
lindsayad wants to merge 9 commits intoidaholab:nextfrom
lindsayad:assert-things-built-32711

Conversation

@lindsayad
Copy link
Copy Markdown
Member

@lindsayad lindsayad commented Apr 10, 2026

Follow-on to #32711

  • Remove the map from nodes to active semilocal elements. Semilocal element use is discouraged from the libmesh-level on down since "semilocal" doesn't capture the newer, more general support from ghosting functors
  • Convert the node to elem map from a std::map to std::unordered_map
  • When adding qudrature nodes query the node to elem map method API instead of the data member directly. This will direct the node-to-elem map to be built if it hasn't been built already making it so that we don't have to do pre-requests
  • Unit test that we are indeed getting less sparsity via hash-tables than via CSR
  • Test that node-face constraints plus adaptivity plus hash table matrix assembly works and produces expected results (for symmetric secondary-primary pairs)

refs #32747

lindsayad and others added 2 commits April 10, 2026 08:21
The semilocal map's only consumers were the boundary-restricted node
integrity checks, which are diagnostic-only. The underlying libMesh
is_semilocal() method is itself discouraged in favour of the newer
ghosting functor definitions. Replace all uses with the ordinary
nodeToElemMap().

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@moosebuild
Copy link
Copy Markdown
Contributor

moosebuild commented Apr 10, 2026

Job Documentation, step Docs: sync website on a2f12ee wanted to post the following:

View the site here

This comment will be updated on new commits.

@moosebuild
Copy link
Copy Markdown
Contributor

Job Coverage, step Generate coverage on f4fdee6 wanted to post the following:

Framework coverage

41ee34 #32745 f4fdee
Total Total +/- New
Rate 85.85% 85.85% +0.00% 100.00%
Hits 131687 131686 -1 2
Misses 21706 21705 -1 0

Diff coverage report

Full coverage report

Modules coverage

Coverage did not change

Full coverage reports

Reports

This comment will be updated on new commits.

All callers use key lookup or iterate locally without requiring
MPI-consistent ordering (NodePositions sorts after allgather), so
ordered traversal is not needed. Use auto at local variable call sites.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@lindsayad lindsayad changed the title When adding quadrature nodes, ensure maps built node-to-elem-map cleanup Apr 10, 2026
@lindsayad lindsayad force-pushed the assert-things-built-32711 branch 3 times, most recently from 325058a to 09e4c02 Compare April 12, 2026 02:26
lindsayad and others added 5 commits April 12, 2026 12:44
Replace the two phase_field uses (FeatureFloodCount::expandPointHalos
and EBSDReader::buildNodeWeightMaps) with nodeToElemMap().

Rather than asserting the map is pre-built in addQuadratureNode, simply
call nodeToElemMap() there directly -- it is a no-op if already built,
and ensures a complete map before inserting the quadrature node if not.
This removes the need for the upfront pre-requests that were added to
NearestNodeLocator and PenetrationLocator in idaholab#32711, so those are
removed too.

Drop the now-gone PerfGraph timing section from the TestHarness JSON
gold and cache files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@lindsayad lindsayad force-pushed the assert-things-built-32711 branch from 09e4c02 to 9b5b101 Compare April 12, 2026 19:44
lindsayad added a commit to lindsayad/blackbear that referenced this pull request Apr 12, 2026
lindsayad added a commit to lindsayad/mastodon that referenced this pull request Apr 13, 2026
FEProblemBase::meshChanged() calls _geometric_search_data.reinit() after firing
all the MeshChangedInterface callbacks — so NNL::reinit() ->
PL::reinit() > detectPenetration() was already happening on every mesh change
before the NodeFaceConstraint::meshChanged() override existed. The override was redundant.
@lindsayad lindsayad force-pushed the assert-things-built-32711 branch from 9b5b101 to a2f12ee Compare April 28, 2026 16:05
@moosebuild
Copy link
Copy Markdown
Contributor

Job Test, step Results summary on a2f12ee wanted to post the following:

Framework test summary

Compared against 953c577 in job civet.inl.gov/job/3779372.

Added tests

Test Time (s) Memory (MB)
geomsearch/quadrature_locator_plus_constraint.adaptivity 0.70 80.09

Modules test summary

Compared against 953c577 in job civet.inl.gov/job/3779372.

No change

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants