This implements a Schur-decomposition based preconditioner for the mortar-elasticity system [A B] [B' ].
More...
#include <mortar_schur_precond.hpp>
|
enum | { category =Dune::SolverCategory::sequential
} |
|
|
| MortarSchurPre (const Matrix &P_, const Matrix &B_, PrecondElasticityBlock &Apre_, bool symmetric_=false) |
| Constructor. More...
|
|
virtual | ~MortarSchurPre () |
| Destructor.
|
|
virtual void | pre (Vector &x, Vector &b) |
| Preprocess preconditioner.
|
|
virtual void | apply (Vector &v, const Vector &d) |
| Applies the preconditioner. More...
|
|
virtual void | post (Vector &x) |
| Dummy post-process function.
|
|
|
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.
|
|
template<class PrecondElasticityBlock>
class Opm::Elasticity::MortarSchurPre< PrecondElasticityBlock >
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
!
template<class PrecondElasticityBlock >
Enumerator |
---|
category |
The category the preconditioner is part of.
|
template<class PrecondElasticityBlock >
Constructor.
- Parameters
-
[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 |
template<class PrecondElasticityBlock >
Applies the preconditioner.
- Parameters
-
[out] | v | The resulting vector |
[in] | d | The vector to apply the preconditioner to |
The documentation for this class was generated from the following file: