New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RANFS Contact #14454
Labels
C: Modules/Contact
P: normal
A defect affecting operation with a low possibility of significantly affects.
T: task
An enhancement to the software.
Comments
lindsayad
added
T: task
An enhancement to the software.
P: normal
A defect affecting operation with a low possibility of significantly affects.
C: Modules
labels
Nov 27, 2019
lindsayad
added a commit
to lindsayad/moose
that referenced
this issue
Dec 16, 2019
A few lessons learned while implementing this algorithm: Like Barry says, you should never alter your function just because you're computing a linear vs a non-linear residual. If you are doing that, then you are doing something wrong. So I learned that I should not just do the computation of the lagrange multiplier during the nonlinear residual evaluation because then when doing JFNK there will appear to be no dependence of the master residuals on the lagrange multiplier calculation which is function of the slave node residual which is a function of all the dofs on all the connected elements The added test should always converge in two non-linear iterations because aftr the first iteration we identify the active set, and then we solve with the reduced residual set during the second non-linear iteration and then we are golden Refs idaholab#14454
lindsayad
added a commit
to lindsayad/moose
that referenced
this issue
Dec 20, 2019
lindsayad
added a commit
to lindsayad/moose
that referenced
this issue
Dec 24, 2019
dewenyushu
added a commit
to dewenyushu/moose
that referenced
this issue
Feb 7, 2020
This was referenced Feb 7, 2020
dewenyushu
added a commit
to dewenyushu/moose
that referenced
this issue
Feb 11, 2020
dewenyushu
added a commit
to dewenyushu/moose
that referenced
this issue
Feb 11, 2020
dewenyushu
added a commit
to dewenyushu/moose
that referenced
this issue
Feb 11, 2020
aeslaughter
pushed a commit
to aeslaughter/moose
that referenced
this issue
Feb 13, 2020
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
C: Modules/Contact
P: normal
A defect affecting operation with a low possibility of significantly affects.
T: task
An enhancement to the software.
Reason
The Reduced Active Set (RAS) VI method in PETSc is a very robust algorithm that in my experience has shown robust monotonic convergence, e.g. no ping-ponging of the constraint set. However, PETSc's RAS algorithm is limited in that it only supports constraints that involve one degree of freedom. For MOOSE, I propose a more general algorithm called the Reduced Active Nonlinear Function Set (RANFS), name credit to @fdkong. This algorithm supports constraint equations that involve an arbitrary number of DOFs. The idea is that when a constraint is determined to be active, the standard non-linear residual is replaced by a constraint equation residual, thus ensuring that that constraint is enforced. A Lagrange Multiplier (LM) is then applied to the other dofs involved in the constraint. The LM can also be thought of as a slack variable that is equal to the replaced non-linear residual. Because of this equality, we can actually just apply the slack non-linear residual directly to the other dofs involved in the constraint; we do not actually have to create another non-linear variable to represent the LM.
Design
The easiest way to implement this is in constraint objects. These are executed after all other computing objects so we have access to the complete unconstrained residual and Jacobian.
Impact
This algorithm exactly satisfies constraints without introducing an LM variable into the system, which avoids a saddle-point formulation. Hence algorithms like AMG can be used. Moreover, no penalty factors are employed so the conditioning of the matrix is not impacted.
Items
The text was updated successfully, but these errors were encountered: