idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.72k stars 1.04k forks source link

Enable FieldSplit preconditioner for mortar contact #14791

Open dewenyushu opened 4 years ago

dewenyushu commented 4 years ago

Reason

Mortar contact formulations generally results in ill-conditioned saddle point systems that are numerically difficult to converge (see e.g. Computational Contact Mechanics by Peter Wiggers). The FieldSplit preconditioner allows to separate the entire problem into sub-systems and apply different preconditioners per sub-system. For the ill-conditioned sub-system (usually corresponds to the contact interface), it is recommended to use a direct solver because of its relatively small problem size. For the rest of the system, an iterative preconditioner (or solver) is recommended because it has nice scaling property and requires low memory for large-scale problems. However, the current FieldSplit preconditioner is not compatible with mortar contact.

Design

Impact

Have a robust iterative preconditioner for the mortar contact problems.

lindsayad commented 4 years ago

Mortar contact results in ill-conditioned saddle point systems that are numerically difficult to converge.

I don't know that ill-conditioned is necessarily true. A well-scaled mortar problem with Lagrange Multipliers will have a good condition number. It's just that the existence of the saddle point which the LMs introduce limits the kinds of preconditioners that you can use, e.g. we are definitely not positive definite anymore so multi-grid doesn't work well. Going to field-split restores the positive definiteness of the primal problem so that you have a more flexible choice of preconditioners.

dewenyushu commented 4 years ago

I don't know that ill-conditioned is necessarily true.

The ill-conditioned issue brought by mortar has been pointed out in text books such as Computational Contact Mechanics by Peter Wriggers. This issue extensively/generally exists for mortar formulations with Lagrange multipliers (I need to point this out). This is also why specially designed robust solvers/preconditioners are essential for these problems.

A well-scaled mortar problem with Lagrange Multipliers will have a good condition number.

I agree. The reason we need scaling is just because we originally have an ill-conditioned problem.