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
23template <typename T> class BdMatrix;
24
39template <typename T, typename MatrixType = BdMatrix<T> >
41{
42public:
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 */
#define NAMESPACE_END
Definition basics.h:323
#define NAMESPACE_TBCI
Definition basics.h:317
The class BdMatrix is an implementation to store and do operations on sparse Matrices with a band str...
virtual ~Preconditioner_Sig()
Definition precond.h:45
Preconditioner_Sig(const MatrixType &)
virtual TVector< T > solve(TVector< T >) const =0
virtual TVector< T > solve(const Vector< T > &) const =0
virtual void update(const MatrixType &)=0
virtual TVector< T > transSolve(const Vector< T > &) const =0
virtual TVector< T > transSolve(TVector< T >) const =0
Temporary Base Class Idiom: Class TVector is used for temporary variables.
Definition vector.h:73
#define MatrixType