Abstract base class for linear solvers. More...
#include <LinearSolverInterface.hpp>
Inherited by ISTLSolver< Mat, Vec >, and LinearSolver< Mat, Vec, Runner >.
Public Member Functions | |
virtual | ~LinearSolverInterface ()=default |
Destructor. | |
template<class TA , class TX , class TY , template< class > class MI, template< class > class VI> | |
void | solve (MatrixFacade< TA, MI > const &A, VectorFacade< TX, VI > &x, VectorFacade< TY, VI > const &b, SolverInfo &solverInfo) |
Public method to call in order to solve a linear system Ax = b. More... | |
virtual RunnerInterface< Mat, Vec > * | runner () |
Protected Member Functions | |
virtual void | solveImpl (Mat const &A, Vec &x, Vec const &b, SolverInfo &solverInfo)=0 |
main methods that all solvers must implement | |
Abstract base class for linear solvers.
|
inline |
Public method to call in order to solve a linear system Ax = b.
The method redirects to the specific linear solver and prints statistics and error estimations at the end.
The parameters correspond to A
A [block-]matrix that represents the system-matrix. x
A [block-]vector for the unknown components. b
A [block-]vector for the right-hand side of the linear system.
References AMDiS::error_exit(), MatrixFacade< T, MatrixImpl >::impl(), VectorFacade< T, VectorImpl >::impl(), and LinearSolverInterface< Mat, Vec >::solveImpl().