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