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

Wrapper class to present (hopefully) symmetric linear operators in the SymmetricLinearOperator interface. More...

#include <symmetricOperators.hh>

Detailed Description

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

Wrapper class to present (hopefully) symmetric linear operators in the SymmetricLinearOperator interface.

Note that the "simultaneous" evaluation of \( Ax \) and \( \langle x,Ax\rangle \) is just the sequential one, i.e. there is no performance gain.

Definition at line 158 of file symmetricOperators.hh.

Inheritance diagram for Kaskade::SymmetricLinearOperatorWrapper< X, Xstar >:
Kaskade::SymmetricLinearOperator< X, Xstar >

Public Types

typedef X::field_type field_type
 

Public Member Functions

 SymmetricLinearOperatorWrapper (Dune::LinearOperator< X, Xstar > const &A_, DualPairing< X, Xstar > const &dualPairing_)
 Constructor. More...
 
virtual void apply (X const &x, Xstar &y) const
 
virtual void applyscaleadd (field_type alpha, X const &x, Xstar &y) const
 
virtual field_type dp (X const &x, Xstar const &y) const
 returns the dual pairing \( \langle x, y \rangle \) with respect to which the operator is symmetric More...
 
virtual field_type applyDp (X const &x, Xstar &y) const
 operator application Computes \( y \leftarrow Ax \) and returns the dual pairing \( \langle x,y \rangle \). 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::SymmetricLinearOperatorWrapper< X, Xstar >::field_type

Definition at line 161 of file symmetricOperators.hh.

Constructor & Destructor Documentation

◆ SymmetricLinearOperatorWrapper()

template<class X , class Xstar >
Kaskade::SymmetricLinearOperatorWrapper< X, Xstar >::SymmetricLinearOperatorWrapper ( Dune::LinearOperator< X, Xstar > const &  A_,
DualPairing< X, Xstar > const &  dualPairing_ 
)
inline

Constructor.

Parameters
Athe (hopefully symmetric) linear operator
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 171 of file symmetricOperators.hh.

Member Function Documentation

◆ apply()

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

Definition at line 174 of file symmetricOperators.hh.

◆ applyDp()

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

operator application Computes \( y \leftarrow Ax \) and returns the dual pairing \( \langle x,y \rangle \).

The default implementation just calls dp(x,y) after the operator application. When implementing this interface in derived classes, consider a more efficient version.

Reimplemented in Kaskade::SymmetricMatrixOperator< X, Matrix >.

Definition at line 81 of file symmetricOperators.hh.

◆ applyscaleadd()

template<class X , class Xstar >
virtual void Kaskade::SymmetricLinearOperatorWrapper< X, Xstar >::applyscaleadd ( field_type  alpha,
X const &  x,
Xstar &  y 
) const
inlinevirtual

Definition at line 179 of file symmetricOperators.hh.

◆ category()

template<class X , class Xstar >
virtual Dune::SolverCategory::Category Kaskade::SymmetricLinearOperator< 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 98 of file symmetricOperators.hh.

◆ dp()

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

returns the dual pairing \( \langle x, y \rangle \) with respect to which the operator is symmetric

Implements Kaskade::SymmetricLinearOperator< X, Xstar >.

Definition at line 187 of file symmetricOperators.hh.


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