Richardson iterative solver for linear systems. Satisfies the SolverLike concept (see solver.hpp). Implements the update rule: More...
#include <richardson.hpp>
Public Types | |
| using | OperatorType = OperatorT |
| Operator type to be solved. | |
| using | SolutionVectorType = SrcOf< OperatorType > |
| Solution vector type. | |
| using | RHSVectorType = DstOf< OperatorType > |
| Right-hand side vector type. | |
Public Member Functions | |
| Richardson (const int iterations, const double omega, const RHSVectorType &r_tmp) | |
| Construct a Richardson solver. | |
| void | solve_impl (OperatorType &A, SolutionVectorType &x, const RHSVectorType &b) |
| Solve the linear system using Richardson iteration. Applies the update rule for the specified number of iterations. | |
Richardson iterative solver for linear systems. Satisfies the SolverLike concept (see solver.hpp). Implements the update rule:
\[ x^{(k+1)} = x^{(k)} + \omega (b - Ax^{(k)}) \]
where \( \omega \) is the relaxation parameter.
| OperatorT | Operator type (must satisfy OperatorLike). |
| using terra::linalg::solvers::Richardson< OperatorT >::OperatorType = OperatorT |
Operator type to be solved.
| using terra::linalg::solvers::Richardson< OperatorT >::RHSVectorType = DstOf< OperatorType > |
Right-hand side vector type.
| using terra::linalg::solvers::Richardson< OperatorT >::SolutionVectorType = SrcOf< OperatorType > |
Solution vector type.
|
inline |
Construct a Richardson solver.
| iterations | Number of Richardson iterations to perform. |
| omega | Relaxation parameter. |
| r_tmp | Temporary vector for workspace. |
|
inline |
Solve the linear system using Richardson iteration. Applies the update rule for the specified number of iterations.
| A | Operator (matrix). |
| x | Solution vector (output). |
| b | Right-hand side vector (input). |