KASKADE 7 development version
Public Types | Public Member Functions | List of all members
Kaskade::SymmetricPreconditionerWrapper< X, Xstar > Class Template Reference

Wrapper class presenting a symmetric preconditioner interface for any preconditioner. More...

#include <symmetricOperators.hh>

Detailed Description

template<class X, class Xstar>
class Kaskade::SymmetricPreconditionerWrapper< X, Xstar >

Wrapper class presenting a symmetric preconditioner interface for any preconditioner.

Use this only if you know that the preconditioner is in fact symmetric.

Definition at line 288 of file symmetricOperators.hh.

Inheritance diagram for Kaskade::SymmetricPreconditionerWrapper< X, Xstar >:
Kaskade::SymmetricPreconditioner< X, Xstar >

Public Types

typedef X::field_type field_type
 

Public Member Functions

 SymmetricPreconditionerWrapper (Dune::Preconditioner< X, Xstar > &B_, DualPairing< X, Xstar > const &dualPairing_)
 Constructor. More...
 
virtual void pre (X &x, Xstar &y)
 Preconditioner preparation. More...
 
virtual void post (X &x)
 Preconditioner cleanup. More...
 
virtual void apply (X &x, Xstar const &y)
 Computes \( x \leftarrow By \) . More...
 
virtual field_type applyDp (X &x, Xstar const &y)
 Computes \( x \leftarrow By \) and returns \( \langle By, y \rangle \). More...
 
virtual bool requiresInitializedInput () const
 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

◆ field_type

template<class X , class Xstar >
typedef X::field_type Kaskade::SymmetricPreconditionerWrapper< X, Xstar >::field_type

Definition at line 291 of file symmetricOperators.hh.

Constructor & Destructor Documentation

◆ SymmetricPreconditionerWrapper()

template<class X , class Xstar >
Kaskade::SymmetricPreconditionerWrapper< X, Xstar >::SymmetricPreconditionerWrapper ( Dune::Preconditioner< X, Xstar > &  B_,
DualPairing< X, Xstar > const &  dualPairing_ 
)
inline

Constructor.

Parameters
Bthe (hopefully symmetric) preconditioner
dualPairingthe dual pairing with respect to which the operator is symmetric

Both arguments have to exist during the lifetime of the SymmetricLinearOperatorWrapper object.

Definition at line 301 of file symmetricOperators.hh.

Member Function Documentation

◆ apply()

template<class X , class Xstar >
virtual void Kaskade::SymmetricPreconditionerWrapper< X, Xstar >::apply ( X &  x,
Xstar const &  y 
)
inlinevirtual

Computes \( x \leftarrow By \) .

The default implementation evaluates both quantities sequentially, without any performance gain.

Definition at line 319 of file symmetricOperators.hh.

◆ applyDp()

template<class X , class Xstar >
virtual field_type Kaskade::SymmetricPreconditionerWrapper< X, Xstar >::applyDp ( X &  x,
Xstar const &  y 
)
inlinevirtual

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

The default implementation evaluates both quantities sequentially, without any performance gain.

Implements Kaskade::SymmetricPreconditioner< X, Xstar >.

Definition at line 329 of file symmetricOperators.hh.

◆ category()

template<class X , class Xstar >
virtual Dune::SolverCategory::Category Kaskade::SymmetricPreconditioner< X, Xstar >::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.

◆ post()

template<class X , class Xstar >
virtual void Kaskade::SymmetricPreconditionerWrapper< X, Xstar >::post ( X &  x)
inlinevirtual

Preconditioner cleanup.

The provided default implementation does nothing.

Reimplemented from Kaskade::SymmetricPreconditioner< X, Xstar >.

Definition at line 309 of file symmetricOperators.hh.

◆ pre()

template<class X , class Xstar >
virtual void Kaskade::SymmetricPreconditionerWrapper< X, Xstar >::pre ( X &  ,
Xstar &   
)
inlinevirtual

Preconditioner preparation.

The provided default implementation does nothing.

Reimplemented from Kaskade::SymmetricPreconditioner< X, Xstar >.

Definition at line 304 of file symmetricOperators.hh.

◆ requiresInitializedInput()

template<class X , class Xstar >
virtual bool Kaskade::SymmetricPreconditionerWrapper< X, Xstar >::requiresInitializedInput ( ) const
inlinevirtual

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

Does not assume anything about the preconditioner and hence returns true in any case.

Implements Kaskade::SymmetricPreconditioner< X, Xstar >.

Definition at line 340 of file symmetricOperators.hh.


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