My Project
|
This implements a Schur-decomposition based preconditioner for the mortar-elasticity system [A B] [B' ]. More...
#include <mortar_schur_precond.hpp>
Public Member Functions | |
MortarSchurPre (const Matrix &P_, const Matrix &B_, PrecondElasticityBlock &Apre_, bool symmetric_=false) | |
Constructor. More... | |
virtual | ~MortarSchurPre () |
Destructor. | |
void | pre (Vector &x, Vector &b) override |
Preprocess preconditioner. | |
void | apply (Vector &v, const Vector &d) override |
Applies the preconditioner. More... | |
void | post (Vector &x) override |
Dummy post-process function. | |
Dune::SolverCategory::Category | category () const override |
Protected Attributes | |
PrecondElasticityBlock & | Apre |
The preconditioner for the elasticity operator. | |
const Matrix & | B |
The mortar coupling matrix. | |
int | N |
Number of displacement DOFs. | |
int | M |
Number of multiplier DOFs. | |
LUSolver | Lpre |
Linear solver for the multiplier block. | |
bool | symmetric |
Whether or not to use a symmetric preconditioner. | |
This implements a Schur-decomposition based preconditioner for the mortar-elasticity system [A B] [B' ].
The preconditioner is [Apre B] [ P] Here Apre is some preconditioner for A and P some preconditioner for S = B^TA^-1B !
|
inline |
Constructor.
[in] | P | The multiplier block with diagonal A approximation |
[in] | B | The mortar coupling matrix |
[in] | Apre_ | A preconfigured preconditioner for A |
[in] | symmetric | If true, use symmetric preconditioning |
|
inlineoverride |
Applies the preconditioner.
[out] | v | The resulting vector |
[in] | d | The vector to apply the preconditioner to |