Loading...
Searching...
No Matches
Opm::Elasticity::MortarSchurPre< PrecondElasticityBlock > Class Template Reference

This implements a Schur-decomposition based preconditioner for the mortar-elasticity system [A B] [B' ]. More...

`#include <mortar_schur_precond.hpp>`

Inheritance diagram for Opm::Elasticity::MortarSchurPre< PrecondElasticityBlock >:

## Public Member Functions

| MortarSchurPre (const Matrix &P_, const Matrix &B_, PrecondElasticityBlock &Apre_, bool symmetric_=false)
| Constructor.
virtual | ~MortarSchurPre ()
| Destructor.
void | pre (Vector &x, Vector &b) override
| Preprocess preconditioner.
void | apply (Vector &v, const Vector &d) override
| Applies the preconditioner.
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.

## Detailed Description

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 !

## Constructor & Destructor Documentation

## MortarSchurPre()

template<class PrecondElasticityBlock>

Opm::Elasticity::MortarSchurPre< PrecondElasticityBlock >::MortarSchurPre | ( | const Matrix & | P_,
|  | const Matrix & | B_,
|  | PrecondElasticityBlock & | Apre_,
|  | bool | symmetric_ = false )

inline

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

## Member Function Documentation

## apply()

template<class PrecondElasticityBlock>

void Opm::Elasticity::MortarSchurPre< PrecondElasticityBlock >::apply | ( | Vector & | v,
|  | const Vector & | d )

inline override

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:

- opm/elasticity/mortar_schur_precond.hpp