AMDiS  0.3
The Adaptive Multi-Dimensional Simulation Toolbox
LinearSolverInterface< Mat, Vec > Class Template Referenceabstract

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
 

Detailed Description

template<class Mat, class Vec>
class AMDiS::LinearSolverInterface< Mat, Vec >

Abstract base class for linear solvers.

Member Function Documentation

◆ solve()

void solve ( MatrixFacade< TA, MI > const &  A,
VectorFacade< TX, VI > &  x,
VectorFacade< TY, VI > const &  b,
SolverInfo solverInfo 
)
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().


The documentation for this class was generated from the following file: