3 #include <amdis/Output.hpp> 8 template <
class Mat,
class Vec>
11 using M =
typename Mat::BaseMatrix;
12 using X =
typename Vec::BaseVector;
13 using Y =
typename Vec::BaseVector;
20 virtual void init(M
const& A) = 0;
23 virtual void exit() = 0;
26 virtual void solve(X
const& x, Y& y)
const = 0;
31 error_exit(
"Must be implemented by derived class.");
void error_exit(std::string const &str, Args &&... args)
print a message and exit
Definition: Output.hpp:142
Contains all classes needed for solving linear and non linear equation systems.
Definition: AdaptBase.hpp:6
virtual ~PreconditionerInterface()=default
Virtual destructor.
virtual void adjoint_solve(X const &x, Y &y) const
Apply the transposed preconditioner to a vector x and store the result in y.
Definition: PreconditionerInterface.hpp:29
virtual void exit()=0
Is called at the end of a solution procedure.
Interface for Preconditioner y = M*x.
Definition: PreconditionerInterface.hpp:9
virtual void init(M const &A)=0
Is called a the beginning of a solution procedure.
virtual void solve(X const &x, Y &y) const =0
Apply the preconditioner to a vector x and store the result in y.