42class DummyPreconditioner
46 typedef Backend backend_type;
48 typedef typename Backend::matrix matrix;
49 typedef typename Backend::vector vector;
50 typedef typename Backend::value_type value_type;
51 typedef typename Backend::col_type col_type;
52 typedef typename Backend::ptr_type ptr_type;
53 typedef typename BuiltinBackend<value_type, col_type, ptr_type>::matrix build_matrix;
58 template <
class Matrix>
59 DummyPreconditioner([[maybe_unused]]
const AlinaContext& context,
61 const params& = params(),
62 const backend_params& bprm = backend_params())
63 : A(Backend::copy_matrix(std::make_shared<build_matrix>(M), bprm))
67 DummyPreconditioner([[maybe_unused]]
const AlinaContext& context,
68 std::shared_ptr<build_matrix> M,
69 const params& = params(),
70 const backend_params& bprm = backend_params())
71 : A(Backend::copy_matrix(M, bprm))
75 template <
class Vec1,
class Vec2>
76 void apply(
const Vec1& rhs, Vec2&& x)
const
78 backend::copy(rhs, x);
81 std::shared_ptr<matrix> system_matrix_ptr()
const
86 const matrix& system_matrix()
const
98 std::shared_ptr<matrix> A;
100 friend std::ostream& operator<<(std::ostream& os,
const DummyPreconditioner& p)
102 os <<
"identity matrix as preconditioner" << std::endl;
103 os <<
" unknowns: " << backend::nbRow(p.system_matrix()) << std::endl;
104 os <<
" nonzeros: " << backend::nonzeros(p.system_matrix()) << std::endl;