21 #ifndef mia_core_sparse_solver_hh 22 #define mia_core_sparse_solver_hh 91 A_mult_x(
const dimsize_type& size):m_size(size){};
105 virtual value_type
operator () (const_field_iterator ix)
const = 0;
134 virtual int solve(
const Field& rhs, Field& x,
const A_mult_x& mult)
const = 0;
137 template <
typename F>
141 template <
typename F>
154 template <
typename F>
162 static void apply(F& MIA_PARAM_UNUSED(result),
164 static_assert(
sizeof(F)==0,
"This operation needs to be specialized");
177 template <
typename F>
180 F result(x.get_size());
Field::value_type value_type
type of the values stored in Field
A class that implements the multiplication of a cell of the matrix A with the field x...
static const char *const type_descr
plugin type component of plugin path descriptor
virtual int solve(const Field &rhs, Field &x, const A_mult_x &mult) const =0
static const char *const type_descr
plugin type component of plugin path descriptor
Field::iterator field_iterator
type of the field random access iterator
dim_traits< F >::dimsize_type dimsize_type
typeef of the dimension type
Class template to implement a matrix - field multiplication.
solver for sparse systems of equations
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
TSparseSolver< F > plugin_type
helper for the plug-in handling
Field::const_iterator const_field_iterator
type of the field random access const_iterator
F operator*(const typename TSparseSolver< F >::A_mult_x &A, const F &x)
A_mult_x(const dimsize_type &size)
virtual int get_boundary_size() const =0
F Field
typedef for the field the solver works on
A trait to obtaine information about of dimensions of a class.
The base class for all plug-in created object.
F plugin_data
helper typedef for the plug-in handling
static void apply(F &result, const typename TSparseSolver< F >::A_mult_x &A, const F &x)
A_mult_x plugin_type
helper typedef for the plug-in handling
virtual value_type operator()(const_field_iterator ix) const =0
dimsize_type get_size() const
F plugin_data
helper typedef for the plug-in handling
#define NS_MIA_END
conveniance define to end the mia namespace