33 #ifndef __H__LIB_ALGEBRA__PARALLELIZATION__PARALLEL_MATRIX__
34 #define __H__LIB_ALGEBRA__PARALLELIZATION__PARALLEL_MATRIX__
63 template <
typename TMatrix>
128 template<
typename TPVector>
129 bool apply(TPVector &res,
const TPVector &x)
const;
132 template<
typename TPVector>
136 template<
typename TPVector>
137 bool matmul_minus(TPVector &res,
const TPVector &x)
const;
Definition: smart_pointer.h:296
Definition: smart_pointer.h:108
Extends the HorizontalAlgebraLayouts by vertical layouts.
Definition: algebra_layouts.h:121
Wrapper for sequential matrices to handle them in parallel.
Definition: parallel_matrix.h:65
bool has_storage_type(uint type) const
returns if the current storage type has a given representation
Definition: parallel_matrix.h:116
bool apply_transposed(TPVector &res, const TPVector &x) const
calculate res = A.T x
Definition: parallel_matrix_impl.h:125
void set_storage_type(uint type)
sets the storage type
Definition: parallel_matrix.h:101
void set_layouts(ConstSmartPtr< AlgebraLayouts > layouts)
sets the algebra layouts
Definition: parallel_matrix.h:97
bool matmul_minus(TPVector &res, const TPVector &x) const
calculate res -= A x
Definition: parallel_matrix_impl.h:167
ParallelStorageType get_storage_type() const
Definition: parallel_matrix.h:121
ParallelMatrix(SmartPtr< AlgebraLayouts > layouts)
Constructor setting the layouts.
Definition: parallel_matrix.h:85
uint m_type
type of storage (i.e. consistent, additiv, additiv unique)
Definition: parallel_matrix.h:144
ConstSmartPtr< AlgebraLayouts > m_spAlgebraLayouts
algebra layouts and communicators
Definition: parallel_matrix.h:147
bool apply(TPVector &res, const TPVector &x) const
calculate res = A x
Definition: parallel_matrix_impl.h:83
ParallelMatrix(const ParallelMatrix &)
void add_storage_type(uint type)
adds a storage type
Definition: parallel_matrix.h:105
ConstSmartPtr< AlgebraLayouts > layouts() const
returns the algebra layouts
Definition: parallel_matrix.h:94
uint get_storage_mask() const
returns storage type mask
Definition: parallel_matrix.h:120
@ rows_sorted
Definition: parallel_matrix.h:67
bool change_storage_type(ParallelStorageType type)
changes to the requested storage type if possible
Definition: parallel_matrix_impl.h:59
ParallelMatrix< TMatrix > this_type
own type
Definition: parallel_matrix.h:76
void remove_storage_type(uint type)
removes a storage type
Definition: parallel_matrix.h:109
this_type & operator=(const this_type &M)
assignment
Definition: parallel_matrix_impl.h:43
ParallelMatrix()
Default Constructor.
Definition: parallel_matrix.h:80
ParallelStorageType
Definition: parallel_storage_type.h:66
@ PST_UNDEFINED
Definition: parallel_storage_type.h:67
PrandtlReuss< TDomain > this_type
unsigned int uint
Definition: types.h:114
@ MATRIX_USE_GLOBAL_FUNCTIONS
Definition: matrix_algebra_types.h:69
Definition: matrix_algebra_types.h:79
static const int type
Definition: matrix_algebra_types.h:80
function ProblemDisc new(problemDesc, dom)