Fix Transformation trial displacements when retained DOFs are free - #115
Merged
claudioperez merged 1 commit intoAug 11, 2026
Merged
Conversation
When needRetainedData==0, copy all retained DOFs from the retained node's trial displacement, not only SP-fixed ones. Also ignore SPs that act on DOFs already eliminated by an MP constraint.
gaaraujo
force-pushed
the
fix/transformation-enforceSPs
branch
from
August 9, 2026 23:46
b6f1f55 to
a4097c9
Compare
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.
This fixes an issue in the
Transformationconstraint handler when a retained node is only partially fixed by SP constraints.In
enforceSPs(doMP==0), whenneedRetainedData == 0, the retained data are zeroed and only SP-fixed DOFs were previously restored from the retained node’s trial displacement. Free retained DOFs therefore remained incorrectly set to zero, causing the constrained node to stop tracking the retained node correctly after the first analysis step.The fix is copying all retained DOFs from the retained node’s current trial displacement.
This PR also updates
addSP_Constraintto return early when the SP acts on a DOF already eliminated by an MP constraint, preventing unrelatedmodIDentries from being marked.MWE
Assuming you run the following file as
OpenSees test_retained_sp.tcl <partial|full>partialreproduces the issue and verifies the fix.fullprovides a sanity check with the retained node fully fixed.