KASKADE 7 development version
Public Types | Public Member Functions | List of all members
Kaskade::SymmetricTaylorHoodPreconditioner< AGOP > Class Template Referenceabstract

Symmetric Taylor-Hood constraint preconditioner. More...

#include <taylorHoodPreconditioner.hh>

Detailed Description

template<class AGOP>
class Kaskade::SymmetricTaylorHoodPreconditioner< AGOP >

Symmetric Taylor-Hood constraint preconditioner.

This works based on the non-symmetric Taylor-Hood preconditioner like symmetrizing a Gauss-Seidel preconditioner.

Template Parameters
AGOPa 2 x 2 AssembledGalerkinOperator

Definition at line 481 of file taylorHoodPreconditioner.hh.

Inheritance diagram for Kaskade::SymmetricTaylorHoodPreconditioner< AGOP >:
Kaskade::SymmetricPreconditioner< AGOP::Scalar, AGOP::Domain >

Public Types

using domain_type = typename AGOP::Domain
 
using range_type = typename AGOP::Range
 
using field_type = typename AGOP::Scalar
 

Public Member Functions

 SymmetricTaylorHoodPreconditioner (AGOP const &K_)
 Constructor. More...
 
void init (domain_type &x, range_type const &y) const
 Computes an approximate solution satisfying the constraints. More...
 
virtual void apply (domain_type &x, range_type const &y) override
 
virtual void pre (AGOP::Scalar &, AGOP::Domain &)
 Preconditioner preparation. More...
 
virtual void post (AGOP::Scalar &x)
 Preconditioner cleanup. More...
 
virtual field_type applyDp (AGOP::Scalar &x, AGOP::Domain const &y)=0
 Computes \( x \leftarrow By \) and returns \( \langle By, y \rangle \). More...
 
virtual bool requiresInitializedInput () const=0
 Returns true if the target vector x has to be initialized to zero before calling apply or applyDp. More...
 
virtual Dune::SolverCategory::Category category () const override
 returns the category of the operator More...
 

Member Typedef Documentation

◆ domain_type

template<class AGOP >
using Kaskade::SymmetricTaylorHoodPreconditioner< AGOP >::domain_type = typename AGOP::Domain

Definition at line 486 of file taylorHoodPreconditioner.hh.

◆ field_type

template<class AGOP >
using Kaskade::SymmetricTaylorHoodPreconditioner< AGOP >::field_type = typename AGOP::Scalar

Definition at line 489 of file taylorHoodPreconditioner.hh.

◆ range_type

template<class AGOP >
using Kaskade::SymmetricTaylorHoodPreconditioner< AGOP >::range_type = typename AGOP::Range

Definition at line 487 of file taylorHoodPreconditioner.hh.

Constructor & Destructor Documentation

◆ SymmetricTaylorHoodPreconditioner()

template<class AGOP >
Kaskade::SymmetricTaylorHoodPreconditioner< AGOP >::SymmetricTaylorHoodPreconditioner ( AGOP const &  K_)
inline

Constructor.

Parameters
Kthe saddle point operator. This needs to exist throughout the lifetime of the preconditioner, as it is held by reference.

Definition at line 497 of file taylorHoodPreconditioner.hh.

Member Function Documentation

◆ apply()

template<class AGOP >
virtual void Kaskade::SymmetricTaylorHoodPreconditioner< AGOP >::apply ( domain_type x,
range_type const &  y 
)
inlineoverridevirtual

Definition at line 515 of file taylorHoodPreconditioner.hh.

◆ applyDp()

virtual field_type Kaskade::SymmetricPreconditioner< AGOP::Scalar , AGOP::Domain >::applyDp ( AGOP::Scalar &  x,
AGOP::Domain const &  y 
)
pure virtualinherited

Computes \( x \leftarrow By \) and returns \( \langle By, y \rangle \).

◆ category()

virtual Dune::SolverCategory::Category Kaskade::SymmetricPreconditioner< AGOP::Scalar , AGOP::Domain >::category ( ) const
inlineoverridevirtualinherited

returns the category of the operator

From the Dune doxygen documentation it is unclear what this is supposed to mean. We return a dummy here.

Definition at line 242 of file symmetricOperators.hh.

◆ init()

template<class AGOP >
void Kaskade::SymmetricTaylorHoodPreconditioner< AGOP >::init ( domain_type x,
range_type const &  y 
) const
inline

Computes an approximate solution satisfying the constraints.

Given a right hand side \( y = [f,g] \), this computes some value \( x = [u,p] \) satisfying \( Bu = g \). The remaining constraint residual vanishes, such that \( x \) is suitable as a starting point for nullspace CG.

Definition at line 510 of file taylorHoodPreconditioner.hh.

◆ post()

virtual void Kaskade::SymmetricPreconditioner< AGOP::Scalar , AGOP::Domain >::post ( AGOP::Scalar &  x)
inlinevirtualinherited

Preconditioner cleanup.

The provided default implementation does nothing.

Definition at line 225 of file symmetricOperators.hh.

◆ pre()

virtual void Kaskade::SymmetricPreconditioner< AGOP::Scalar , AGOP::Domain >::pre ( AGOP::Scalar &  ,
AGOP::Domain &   
)
inlinevirtualinherited

Preconditioner preparation.

The provided default implementation does nothing.

Definition at line 218 of file symmetricOperators.hh.

◆ requiresInitializedInput()

virtual bool Kaskade::SymmetricPreconditioner< AGOP::Scalar , AGOP::Domain >::requiresInitializedInput ( ) const
pure virtualinherited

Returns true if the target vector x has to be initialized to zero before calling apply or applyDp.


The documentation for this class was generated from the following file: