TBCI Numerical high perf. C++ Library  2.8.0
Public Member Functions | List of all members
Preconditioner_Sig< T, MatrixType > Class Template Referenceabstract

Abstract base class for all Preconditioners. More...

#include <precond.h>

Inheritance diagram for Preconditioner_Sig< T, MatrixType >:
Inheritance graph
[legend]

Public Member Functions

 Preconditioner_Sig ()
 
 Preconditioner_Sig (const MatrixType &)
 
virtual ~Preconditioner_Sig ()
 
virtual void update (const MatrixType &)=0
 
virtual TVector< Tsolve (const Vector< T > &) const =0
 
virtual TVector< Tsolve (TVector< T >) const =0
 
virtual TVector< TtransSolve (const Vector< T > &) const =0
 
virtual TVector< TtransSolve (TVector< T >) const =0
 

Detailed Description

template<typename T, typename MatrixType = BdMatrix<T>>
class Preconditioner_Sig< T, MatrixType >

Abstract base class for all Preconditioners.

Here we actually use polymorphism: We just define an interface (signature) here and pass a reference to a real Preconditioner as Preconditioner_Sig<T,MatrixType>& to the solvers. This way, we save a template parameter.

Note: The solvers do not currently by default call the prconditioner's update member. So you have to initialize the preconditioner by passing the System Matrix to it in the constructor or the update() member function before calling the solver.

Definition at line 40 of file precond.h.

Constructor & Destructor Documentation

template<typename T, typename MatrixType = BdMatrix<T>>
Preconditioner_Sig< T, MatrixType >::Preconditioner_Sig ( )
inline

Definition at line 43 of file precond.h.

template<typename T, typename MatrixType = BdMatrix<T>>
Preconditioner_Sig< T, MatrixType >::Preconditioner_Sig ( const MatrixType )
template<typename T, typename MatrixType = BdMatrix<T>>
virtual Preconditioner_Sig< T, MatrixType >::~Preconditioner_Sig ( )
inlinevirtual

Definition at line 45 of file precond.h.

Member Function Documentation

template<typename T, typename MatrixType = BdMatrix<T>>
virtual TVector<T> Preconditioner_Sig< T, MatrixType >::solve ( const Vector< T > &  ) const
pure virtual
template<typename T, typename MatrixType = BdMatrix<T>>
virtual TVector<T> Preconditioner_Sig< T, MatrixType >::solve ( TVector< T ) const
pure virtual
template<typename T, typename MatrixType = BdMatrix<T>>
virtual TVector<T> Preconditioner_Sig< T, MatrixType >::transSolve ( const Vector< T > &  ) const
pure virtual
template<typename T, typename MatrixType = BdMatrix<T>>
virtual TVector<T> Preconditioner_Sig< T, MatrixType >::transSolve ( TVector< T ) const
pure virtual
template<typename T, typename MatrixType = BdMatrix<T>>
virtual void Preconditioner_Sig< T, MatrixType >::update ( const MatrixType )
pure virtual

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