To set a preconditioner. More...
#include <Prec.h>
Public Member Functions | |
Prec () | |
Default constructor. | |
Prec (int type) | |
Constructor that chooses preconditioner. More... | |
Prec (const SpMatrix< T_ > &A, int type=DIAG_PREC) | |
Constructor using matrix of the linear system to precondition. More... | |
Prec (const Matrix< T_ > *A, int type=DIAG_PREC) | |
Constructor using matrix of the linear system to precondition. More... | |
~Prec () | |
Destructor. | |
void | setType (int type) |
Define preconditioner type. More... | |
void | setMatrix (const Matrix< T_ > *A) |
Define pointer to matrix for preconditioning (if this one is abstract) More... | |
void | setMatrix (const SpMatrix< T_ > &A) |
Define the matrix for preconditioning. More... | |
void | solve (Vect< T_ > &x) const |
Solve a linear system with preconditioning matrix. More... | |
void | solve (const Vect< T_ > &b, Vect< T_ > &x) const |
Solve a linear system with preconditioning matrix. More... | |
void | TransSolve (Vect< T_ > &x) const |
Solve a linear system with transposed preconditioning matrix. More... | |
void | TransSolve (const Vect< T_ > &b, Vect< T_ > &x) const |
Solve a linear system with transposed preconditioning matrix. More... | |
T_ & | getPivot (size_t i) const |
Return i-th pivot of preconditioning matrix. | |
Detailed Description
template<class T_>
class OFELI::Prec< T_ >
class OFELI::Prec< T_ >
To set a preconditioner.
The preconditioner type is chosen in the constructor
- Template Parameters
-
<T_> Data type (real_t, float, complex<real_t>, ...)
- Copyright
- GNU Lesser Public License
Constructor & Destructor Documentation
◆ Prec() [1/3]
Prec | ( | int | type | ) |
Constructor that chooses preconditioner.
- Parameters
-
[in] type Preconditioner type: -
IDENT_PREC
: Identity preconditioner (No preconditioning) -
DIAG_PREC
: Diagonal preconditioner -
DILU_PREC
: Diagonal Incomplete factorization preconditioner -
ILU_PREC
: Incomplete factorization preconditioner -
SSOR_PREC
: SSOR (Symmetric Successive Over Relaxation) preconditioner
-
◆ Prec() [2/3]
Constructor using matrix of the linear system to precondition.
- Parameters
-
[in] A Matrix to precondition [in] type Preconditioner type: -
IDENT_PREC
: Identity preconditioner (No preconditioning) -
DIAG_PREC
: Diagonal preconditioner -
DILU_PREC
: Diagonal Incomplete factorization preconditioner -
ILU_PREC
: Incomplete factorization preconditioner -
SSOR_PREC
: SSOR (Symmetric Successive Over Relaxation) preconditioner
-
◆ Prec() [3/3]
Constructor using matrix of the linear system to precondition.
- Parameters
-
[in] A Pointer to abstract Matrix class to precondition [in] type Preconditioner type: -
IDENT_PREC
: Identity preconditioner (No preconditioning) -
DIAG_PREC
: Diagonal preconditioner -
DILU_PREC
: Diagonal Incomplete factorization preconditioner -
ILU_PREC
: Incomplete factorization preconditioner -
SSOR_PREC
: SSOR (Symmetric Successive Over Relaxation) preconditioner
-
Member Function Documentation
◆ setMatrix() [1/2]
void setMatrix | ( | const Matrix< T_ > * | A | ) |
Define pointer to matrix for preconditioning (if this one is abstract)
- Parameters
-
[in] A Matrix to precondition
◆ setMatrix() [2/2]
void setMatrix | ( | const SpMatrix< T_ > & | A | ) |
Define the matrix for preconditioning.
- Parameters
-
[in] A Matrix to precondition (instance of class SpMatrix)
◆ setType()
void setType | ( | int | type | ) |
Define preconditioner type.
- Parameters
-
[in] type Preconditioner type: -
IDENT_PREC
: Identity preconditioner (No preconditioning) -
DIAG_PREC
: Diagonal preconditioner -
DILU_PREC
: Diagonal Incomplete factorization preconditioner -
ILU_PREC
: Incomplete factorization preconditioner -
SSOR_PREC
: SSOR (Symmetric Successive Over Relaxation) preconditioner
-
◆ solve() [1/2]
Solve a linear system with preconditioning matrix.
- Parameters
-
[in] b Right-hand side [out] x Solution vector
◆ solve() [2/2]
void solve | ( | Vect< T_ > & | x | ) | const |
Solve a linear system with preconditioning matrix.
- Parameters
-
[in,out] x Right-hand side on input and solution on output.
◆ TransSolve() [1/2]
Solve a linear system with transposed preconditioning matrix.
- Parameters
-
[in] b Right-hand side vector [out] x Solution vector
◆ TransSolve() [2/2]
void TransSolve | ( | Vect< T_ > & | x | ) | const |
Solve a linear system with transposed preconditioning matrix.
- Parameters
-
[in,out] x Right-hand side in input and solution in output.