Class to solve systems of linear equations by iterative methods. More...
Public Member Functions | |
| LinearSolver () | |
| Default Constructor. More... | |
| LinearSolver (int max_it, real_t tolerance) | |
| Constructor with iteration parameters. More... | |
| LinearSolver (SpMatrix< T_ > &A, const Vect< T_ > &b, Vect< T_ > &x) | |
| Constructor using matrix, right-hand side and solution vector. More... | |
| LinearSolver (SkMatrix< T_ > &A, const Vect< T_ > &b, Vect< T_ > &x) | |
| Constructor using skyline-stored matrix, right-hand side and solution vector. More... | |
| LinearSolver (TrMatrix< T_ > &A, const Vect< T_ > &b, Vect< T_ > &x) | |
| Constructor using a tridiagonal matrix, right-hand side and solution vector. More... | |
| LinearSolver (BMatrix< T_ > &A, const Vect< T_ > &b, Vect< T_ > &x) | |
| Constructor using a banded matrix, right-hand side and solution vector. More... | |
| LinearSolver (DMatrix< T_ > &A, const Vect< T_ > &b, Vect< T_ > &x) | |
| Constructor using a dense matrix, right-hand side and solution vector. More... | |
| LinearSolver (DSMatrix< T_ > &A, const Vect< T_ > &b, Vect< T_ > &x) | |
| Constructor using a dense symmetric matrix, right-hand side and solution vector. More... | |
| LinearSolver (SkSMatrix< T_ > &A, const Vect< T_ > &b, Vect< T_ > &x) | |
| Constructor using skyline-stored symmetric matrix, right-hand side and solution vector. More... | |
| LinearSolver (SkMatrix< T_ > &A, Vect< T_ > &b, Vect< T_ > &x) | |
| Constructor using matrix, right-hand side. More... | |
| virtual | ~LinearSolver () |
| Destructor. | |
| void | setMaxIter (int m) |
| Set Maximum number of iterations. More... | |
| void | setTolerance (real_t tol) |
| Set tolerance value. | |
| void | setSolution (Vect< T_ > &x) |
| Set solution vector. | |
| void | setRHS (Vect< T_ > &b) |
| Set right-hand side vector. | |
| void | setMatrix (OFELI::Matrix< T_ > *A) |
| Set matrix in the case of a pointer to Matrix. More... | |
| void | setMatrix (SpMatrix< T_ > &A) |
| Set matrix in the case of a pointer to matrix. More... | |
| void | setMatrix (SkMatrix< T_ > &A) |
| Set matrix in the case of a skyline matrix. More... | |
| void | set (SpMatrix< T_ > &A, const Vect< T_ > &b, Vect< T_ > &x) |
| Set matrix, right-hand side and initial guess. More... | |
| void | setSolver (Iteration s, Preconditioner p=DIAG_PREC) |
| Set solver and preconditioner. More... | |
| Iteration | getSolver () const |
| Return solver code. | |
| Preconditioner | getPreconditioner () const |
| Return solver preconditioner. | |
| int | solve (SpMatrix< T_ > &A, const Vect< T_ > &b, Vect< T_ > &x, Iteration s, Preconditioner p=DIAG_PREC) |
| Solve equations using system data, prescribed solver and preconditioner. More... | |
| int | solve (Iteration s, Preconditioner p=DIAG_PREC) |
| Solve equations using prescribed solver and preconditioner. More... | |
| int | solve () |
| Solve equations all arguments must have been given by other member functions. More... | |
| void | setFact () |
| Factorize matrix. | |
| void | setNoFact () |
| Do not factorize matrix. | |
| int | getNbIter () const |
| Get number of performed iterations. | |
Detailed Description
template<class T_>
class OFELI::LinearSolver< T_ >
Class to solve systems of linear equations by iterative methods.
Constructor & Destructor Documentation
| LinearSolver | ( | ) |
Default Constructor.
Initializes default parameters and pointers to 0.
| LinearSolver | ( | int | max_it, |
| real_t | tolerance | ||
| ) |
Constructor with iteration parameters.
- Parameters
-
[in] max_it Maximal number of iterations [in] tolerance Tolerance for convergence (measured in relative weighted 2-Norm) in input, effective discrepancy in output.
- Author
- Rachid Touzani
- Copyright
- GNU Lesser Public License
| LinearSolver | ( | SpMatrix< T_ > & | A, |
| const Vect< T_ > & | b, | ||
| Vect< T_ > & | x | ||
| ) |
| LinearSolver | ( | SkMatrix< T_ > & | A, |
| const Vect< T_ > & | b, | ||
| Vect< T_ > & | x | ||
| ) |
| LinearSolver | ( | TrMatrix< T_ > & | A, |
| const Vect< T_ > & | b, | ||
| Vect< T_ > & | x | ||
| ) |
| LinearSolver | ( | BMatrix< T_ > & | A, |
| const Vect< T_ > & | b, | ||
| Vect< T_ > & | x | ||
| ) |
| LinearSolver | ( | DMatrix< T_ > & | A, |
| const Vect< T_ > & | b, | ||
| Vect< T_ > & | x | ||
| ) |
| LinearSolver | ( | DSMatrix< T_ > & | A, |
| const Vect< T_ > & | b, | ||
| Vect< T_ > & | x | ||
| ) |
| LinearSolver | ( | SkSMatrix< T_ > & | A, |
| const Vect< T_ > & | b, | ||
| Vect< T_ > & | x | ||
| ) |
| LinearSolver | ( | SkMatrix< T_ > & | A, |
| Vect< T_ > & | b, | ||
| Vect< T_ > & | x | ||
| ) |
Member Function Documentation
| void setMaxIter | ( | int | m | ) |
Set Maximum number of iterations.
Default value is 1000
| void setMatrix | ( | OFELI::Matrix< T_ > * | A | ) |
| void setMatrix | ( | SpMatrix< T_ > & | A | ) |
Set matrix in the case of a pointer to matrix.
- Parameters
-
[in] A Pointer to abstract Matrix class
| void setMatrix | ( | SkMatrix< T_ > & | A | ) |
Set matrix in the case of a skyline matrix.
- Parameters
-
[in] A Matrix as instance of class SkMatrix
Set matrix, right-hand side and initial guess.
- Parameters
-
[in] A Reference to matrix as a SpMatrix instance [in] b Vector containing right-hand side [in,out] x Vector containing initial guess on input and solution on output
| void setSolver | ( | Iteration | s, |
| Preconditioner | p = DIAG_PREC |
||
| ) |
Set solver and preconditioner.
- Parameters
-
[in] s Solver identification parameter. To be chosen in the enumeration variable Iteration:
DIRECT_SOLVER,CG_SOLVER,CGS_SOLVER,BICG_SOLVER,BICG_STAB_SOLVER,GMRES_SOLVER,QMR_SOLVER[in] p Preconditioner identification parameter. By default, the diagonal preconditioner is used. To be chosen in the enumeration variable Preconditioner:
IDENT_PREC,DIAG_PREC,SSOR_PREC,ILU_PREC[Default:ILU_PREC]
- Note
- The argument
phas no effect if the solver isDIRECT_SOLVER
| int solve | ( | SpMatrix< T_ > & | A, |
| const Vect< T_ > & | b, | ||
| Vect< T_ > & | x, | ||
| Iteration | s, | ||
| Preconditioner | p = DIAG_PREC |
||
| ) |
Solve equations using system data, prescribed solver and preconditioner.
- Parameters
-
[in] A Reference to matrix as a SpMatrix instance [in] b Vector containing right-hand side [in,out] x Vector containing initial guess on input and solution on output [in] s Solver identification parameter To be chosen in the enumeration variable Iteration:
DIRECT_SOLVER,CG_SOLVER,CGS_SOLVER,BICG_SOLVER,BICG_STAB_SOLVER,GMRES_SOLVER,QMR_SOLVER[Default:CGS_SOLVER][in] p Preconditioner identification parameter. To be chosen in the enumeration variable Preconditioner:
IDENT_PREC,DIAG_PREC,SSOR_PREC,ILU_PREC,DILU_PREC[Default:DIAG_PREC]
- Remarks
- The argument
phas no effect if the solver isDIRECT_SOLVER
- Warning
- If the library
eigenis used, only the preconditionersIDENT_PREC,DIAG_PRECandILU_PRECare available.
| int solve | ( | Iteration | s, |
| Preconditioner | p = DIAG_PREC |
||
| ) |
Solve equations using prescribed solver and preconditioner.
- Parameters
-
[in] s Solver identification parameter To be chosen in the enumeration variable Iteration:
DIRECT_SOLVER,CG_SOLVER,CGS_SOLVER,BICG_SOLVER,BICG_STAB_SOLVER,GMRES_SOLVER,QMR_SOLVER[Default:CGS_SOLVER][in] p Preconditioner identification parameter. To be chosen in the enumeration variable Preconditioner:
IDENT_PREC,DIAG_PREC,SSOR_PREC,DILU_PREC,ILU_PREC[Default:DIAG_PREC]
- Note
- The argument
phas no effect if the solver isDIRECT_SOLVER
| int solve | ( | ) |
Solve equations all arguments must have been given by other member functions.
Solver and preconditioner parameters must have been set by function setSolver. Otherwise, default values are set.