9#include <kernel/solver/base.hpp>
10#include <kernel/solver/legacy_preconditioners.hpp>
38 template<
typename,
typename>
class Precon_>
40 public SolverBase<typename Matrix_::VectorTypeR>
43 typedef Matrix_ MatrixType;
44 typedef typename MatrixType::VectorTypeR VectorType;
61 template<
typename... Args_>
64 _precond(std::forward<Args_>(args)...)
75 virtual Status apply(VectorType& vec_cor,
const VectorType& vec_def)
override
78 this->_filter.filter_cor(vec_cor);
Provisional Legacy Preconditioners Wrapper class template.
const Filter_ & _filter
the filter object
PreconWrapper(const Filter_ &filter, Args_ &&... args)
Constructor.
Precon_< MatrixType, VectorType > _precond
the actual preconditioner object
virtual String name() const override
Returns the name of the solver.
virtual Status apply(VectorType &vec_cor, const VectorType &vec_def) override
Applies the preconditioner.
Polymorphic solver interface.
String class implementation.
Status
Solver status return codes enumeration.
@ success
solving successful (convergence criterion fulfilled)