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