Add backtracking to ElementJacobianDamper#32807
Add backtracking to ElementJacobianDamper#32807Andreas-Lepak wants to merge 1 commit intoidaholab:nextfrom
Conversation
|
Job Precheck, step Clang format on b97b5c9 wanted to post the following: Your code requires style changes. A patch was auto generated and copied here
Alternatively, with your repository up to date and in the top level of your repository:
|
b97b5c9 to
4b96447
Compare
|
Job Documentation, step Docs: sync website on 28794bd wanted to post the following: View the site here This comment will be updated on new commits. |
4b96447 to
8133965
Compare
- add opt-in backtracking parameters - retry damped trial updates after DegenerateMap - restore node coordinates after failed probes - add regression coverage and documentation refs idaholab#32806
8133965 to
28794bd
Compare
|
Job Test, step Results summary on 28794bd wanted to post the following: Framework test summaryCompared against a5a619e in job civet.inl.gov/job/3763732. No change Modules test summaryCompared against a5a619e in job civet.inl.gov/job/3763732. Added tests
|
|
Job Coverage, step Generate coverage on 28794bd wanted to post the following: Framework coverage
Modules coverageSolid mechanics
Full coverage reportsReports
This comment will be updated on new commits. |
||||||||||||||||||||||||||||||||||||||||||||||||||||
refs #32806
Reason
ElementJacobianDamperalready limits large element Jacobian changes on the displaced mesh, butits probe path can still encounter a degenerate map when the full trial Newton update inverts an
element. In that case the solve falls back to a timestep cutback instead of trying a smaller
nonlinear update first.
This change adds an opt-in backtracking mode so the damper can reduce the probed update before FE
assembly reaches a
DegenerateMap.Design
use_backtracking,backtrack_factor, andmax_backtrack_stepsparameters toElementJacobianDamper.relative
JxWchange.then iteratively reduce the trial damping until the probe succeeds and the Jacobian increment is
below
max_increment.displaced mesh in a modified state.
Impact
This is a backward-compatible enhancement to
ElementJacobianDamper.use_backtracking = true.nonlinear update due to temporary element inversion.
Testing
exception_handling.iwithout backtracking to confirm the existing negative-Jacobian path ispreserved.
exception_handling.iwithDampers/jac/use_backtracking=trueto confirm the damper nowreduces the update without emitting the negative-Jacobian error.
git diff --check.