General support for nodal constraints#877
Merged
Merged
Conversation
Contributor
Author
|
jenkins build this with downstreams please |
(or nodes) within the same patch that share location
There was a problem hiding this comment.
Pull request overview
This PR generalizes nodal constraint and node-set handling by moving it into ASMbase, enabling consistent use across different patch types and adding support for intra-patch nodal couplings/shared DOFs.
Changes:
- Centralizes node set storage/parsing in
ASMbase, adds node-set conversion to internal indices during preprocessing, and introduces APIs for nodal couplings/self-interconnection. - Updates SIM XML/HDF5 and geometry parsing to support
nodes0sets and modernizes several control-flow patterns. - Extends integer parsing to accept comma-separated lists and adds a unit test for that format.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Utility/Utilities.C | Extends parseIntegers parsing behavior (now supports commas). |
| src/Utility/Test/TestUtilities.C | Adds coverage for comma-separated integer parsing. |
| src/SIM/SIMinput.C | Refactors patch/tag parsing; adds nodes0 behavior for node sets and streamlines HDF5 reads. |
| src/SIM/SIMbase.C | Adds node-set conversion step during preprocessing; minor type update for debug helper. |
| src/ASM/ASMu2DLag.h | Removes node-set API/members from this patch type (now owned by ASMbase). |
| src/ASM/ASMu2DLag.C | Adjusts includes/ctors and boundary-node retrieval to align with node-set move. |
| src/ASM/ASMu1DLag.C | Adds missing include for ASM utilities. |
| src/ASM/ASMsupel.h | Removes node-set API/members from this patch type (now owned by ASMbase). |
| src/ASM/ASMsupel.C | Removes superseded node-set implementation. |
| src/ASM/ASMs1D.h | Removes node-set API/members from this patch type (now owned by ASMbase). |
| src/ASM/ASMs1D.C | Removes superseded node-set implementation/copying. |
| src/ASM/ASMbase.h | Adds node-set API/storage, new nodal coupling/self-interconnect APIs, and type aliases. |
| src/ASM/ASMbase.C | Implements node-set management/conversion and new nodal coupling/self-interconnect logic. |
| CMakeLists.txt | Removes an interface debug define propagation. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
placed in ASMbase such that it can be used by all sub-classes
Changed: Use utl::findIndex() instead of std::find() + std:distance(). Changed: Reduce scope of some temporaries using new if-syntax.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The handling of constraints on nodes is moved to ASMbase such that it can be used for patches of any type. Also adding functionality to have any nodes within the same patch share common DOFs and generalized linear couplings between nodal points within the patch.