TBCI Numerical high perf. C++ Library  2.8.0
precond.h
Go to the documentation of this file.
1 
6 /*
7  * Kurt Garloff <K.Garloff@Phys.TUE.NL>, 08/2000
8  * $Id: precond.h,v 1.4.2.8 2019/05/28 11:13:02 garloff Exp $
9  */
10 
11 #ifndef TBCI_SOLVER_PRECOND_H
12 #define TBCI_SOLVER_PRECOND_H
13 
14 #include "tbci/basics.h"
15 #include "tbci/vector.h"
16 #include "tbci/matrix_sig.h"
17 #if !defined(NO_GD) && !defined(AUTO_DECL)
18 # include "precond_gd.h"
19 #endif
20 
22 
23 template <typename T> class BdMatrix;
24 
39 template <typename T, typename MatrixType = BdMatrix<T> >
41 {
42 public:
44  /*virtual*/ Preconditioner_Sig (const MatrixType &)/* = 0*/;
45  virtual ~Preconditioner_Sig () {}
46 
47  // update-Funktion
48  virtual void update (const MatrixType &) = 0;
49 
50  // Solve-Funktionen
51  virtual /*inline*/ TVector<T> solve (const Vector<T> &) const = 0;
52  virtual /*inline*/ TVector<T> solve (TVector<T>) const = 0;
53 
54  virtual /*inline*/ TVector<T> transSolve (const Vector<T> &) const = 0;
55  virtual /*inline*/ TVector<T> transSolve ( TVector<T>) const = 0;
56 };
57 
59 
60 #endif /* TBCI_SOLVER_PRECOND_H */
Abstract base class for all Preconditioners.
Definition: precond.h:40
The class BdMatrix is an implementation to store and do operations on sparse Matrices with a band str...
Definition: band_matrix.h:103
virtual TVector< T > transSolve(const Vector< T > &) const =0
#define NAMESPACE_TBCI
Definition: basics.h:317
virtual void update(const MatrixType &)=0
#define MatrixType
virtual ~Preconditioner_Sig()
Definition: precond.h:45
Temporary Base Class Idiom: Class TVector is used for temporary variables.
Definition: bvector.h:52
virtual TVector< T > solve(const Vector< T > &) const =0
#define NAMESPACE_END
Definition: basics.h:323
Definition: bvector.h:54