|
SU2
|
Class for solving linear systems using classical and Krylov-subspace iterative methods. More...
#include <linear_solvers_structure.hpp>
Public Member Functions | |
| unsigned long | CG_LinSolver (const CSysVector &b, CSysVector &x, CMatrixVectorProduct &mat_vec, CPreconditioner &precond, su2double tol, unsigned long m, bool monitoring) |
| Conjugate Gradient method. More... | |
| unsigned long | FGMRES_LinSolver (const CSysVector &b, CSysVector &x, CMatrixVectorProduct &mat_vec, CPreconditioner &precond, su2double tol, unsigned long m, su2double *residual, bool monitoring) |
| Flexible Generalized Minimal Residual method. More... | |
| unsigned long | BCGSTAB_LinSolver (const CSysVector &b, CSysVector &x, CMatrixVectorProduct &mat_vec, CPreconditioner &precond, su2double tol, unsigned long m, su2double *residual, bool monitoring) |
| Biconjugate Gradient Stabilized Method (BCGSTAB) More... | |
| unsigned long | Solve (CSysMatrix &Jacobian, CSysVector &LinSysRes, CSysVector &LinSysSol, CGeometry *geometry, CConfig *config) |
| Solve the linear system using a Krylov subspace method. More... | |
| void | SetExternalSolve (CSysMatrix &Jacobian, CSysVector &LinSysRes, CSysVector &LinSysSol, CGeometry *geometry, CConfig *config) |
| Prepare the linear solve during the reverse interpretation of the AD tape. More... | |
Class for solving linear systems using classical and Krylov-subspace iterative methods.
The individual solvers could be stand-alone subroutines, but by creating CSysSolve objects we can more easily assign different matrix-vector products and preconditioners to different problems that may arise in a hierarchical solver (i.e. multigrid).
| unsigned long CSysSolve::BCGSTAB_LinSolver | ( | const CSysVector & | b, |
| CSysVector & | x, | ||
| CMatrixVectorProduct & | mat_vec, | ||
| CPreconditioner & | precond, | ||
| su2double | tol, | ||
| unsigned long | m, | ||
| su2double * | residual, | ||
| bool | monitoring | ||
| ) |
Biconjugate Gradient Stabilized Method (BCGSTAB)
| [in] | b | - the right hand size vector |
| [in,out] | x | - on entry the intial guess, on exit the solution |
| [in] | mat_vec | - object that defines matrix-vector product |
| [in] | precond | - object that defines preconditioner |
| [in] | tol | - tolerance with which to solve the system |
| [in] | m | - maximum size of the search subspace |
| [in] | residual | |
| [in] | monitoring | - turn on priting residuals from solver to screen. |
| unsigned long CSysSolve::CG_LinSolver | ( | const CSysVector & | b, |
| CSysVector & | x, | ||
| CMatrixVectorProduct & | mat_vec, | ||
| CPreconditioner & | precond, | ||
| su2double | tol, | ||
| unsigned long | m, | ||
| bool | monitoring | ||
| ) |
Conjugate Gradient method.
| [in] | b | - the right hand size vector |
| [in,out] | x | - on entry the intial guess, on exit the solution |
| [in] | mat_vec | - object that defines matrix-vector product |
| [in] | precond | - object that defines preconditioner |
| [in] | tol | - tolerance with which to solve the system |
| [in] | m | - maximum size of the search subspace |
| [in] | monitoring | - turn on priting residuals from solver to screen. |
| unsigned long CSysSolve::FGMRES_LinSolver | ( | const CSysVector & | b, |
| CSysVector & | x, | ||
| CMatrixVectorProduct & | mat_vec, | ||
| CPreconditioner & | precond, | ||
| su2double | tol, | ||
| unsigned long | m, | ||
| su2double * | residual, | ||
| bool | monitoring | ||
| ) |
Flexible Generalized Minimal Residual method.
| [in] | b | - the right hand size vector |
| [in,out] | x | - on entry the intial guess, on exit the solution |
| [in] | mat_vec | - object that defines matrix-vector product |
| [in] | precond | - object that defines preconditioner |
| [in] | tol | - tolerance with which to solve the system |
| [in] | m | - maximum size of the search subspace |
| [in] | residual | |
| [in] | monitoring | - turn on priting residuals from solver to screen. |
| void CSysSolve::SetExternalSolve | ( | CSysMatrix & | Jacobian, |
| CSysVector & | LinSysRes, | ||
| CSysVector & | LinSysSol, | ||
| CGeometry * | geometry, | ||
| CConfig * | config | ||
| ) |
Prepare the linear solve during the reverse interpretation of the AD tape.
| [in] | Jacobian | - Jacobian Matrix for the linear system |
| [in] | LinSysRes | - Linear system residual |
| [in] | LinSysSol | - Linear system solution |
| [in] | geometry | - Geometrical definition of the problem. |
| [in] | config | - Definition of the particular problem. |
| unsigned long CSysSolve::Solve | ( | CSysMatrix & | Jacobian, |
| CSysVector & | LinSysRes, | ||
| CSysVector & | LinSysSol, | ||
| CGeometry * | geometry, | ||
| CConfig * | config | ||
| ) |
Solve the linear system using a Krylov subspace method.
| [in] | Jacobian | - Jacobian Matrix for the linear system |
| [in] | LinSysRes | - Linear system residual |
| [in] | LinSysSol | - Linear system solution |
| [in] | geometry | - Geometrical definition of the problem. |
| [in] | config | - Definition of the particular problem. |
1.8.12