25 template<
typename Matrix_>
40 template <
typename DT2_,
typename IT2_>
43 static constexpr bool is_global =
false;
44 static constexpr bool is_local =
true;
69 explicit Transfer(Matrix_&& mat_prol, Matrix_&& mat_rest) :
70 _mat_prol(std::forward<Matrix_>(mat_prol)),
71 _mat_rest(std::forward<Matrix_>(mat_rest)),
89 explicit Transfer(Matrix_&& mat_prol, Matrix_&& mat_rest, Matrix_&& mat_trunc) :
90 _mat_prol(std::forward<Matrix_>(mat_prol)),
91 _mat_rest(std::forward<Matrix_>(mat_rest)),
115 _mat_prol = std::forward<Matrix_>(other._mat_prol);
116 _mat_rest = std::forward<Matrix_>(other._mat_rest);
117 _mat_trunc = std::forward<Matrix_>(other._mat_trunc);
123 template<
typename Matrix2_>
126 if((
void*)
this == (
void*)&other)
163 Matrix_& get_mat_prol()
168 const Matrix_& get_mat_prol()
const
173 Matrix_& get_mat_rest()
178 const Matrix_& get_mat_rest()
const
183 Matrix_& get_mat_trunc()
188 const Matrix_& get_mat_trunc()
const
231 XABORTM(
"This function must not be called");
263 XABORTM(
"This function must not be called");
295 XABORTM(
"This function must not be called");
307 XABORTM(
"This function must not be called");
#define XABORTM(msg)
Abortion macro definition with custom message.
Grid-Transfer operator class template.
bool rest(const VectorType &vec_fine, VectorType &vec_coarse) const
Applies the restriction operator.
Transfer(Transfer &&other)
move-constructor
virtual ~Transfer()
virtual destructor
Matrix_ _mat_rest
the internal restriction matrix
Matrix_::DataType DataType
the data type
bool rest_send(const VectorType &vec_fine) const
Sends the restriction for a ghost operator.
void prol_cancel() const
Cancels the prolongation.
bool trunc(const VectorType &vec_fine, VectorType &vec_coarse) const
Applies the truncation operator.
Transfer(Matrix_ &&mat_prol, Matrix_ &&mat_rest, Matrix_ &&mat_trunc)
Creates the transfer from given prolongation, restriction and reduction matrices.
Transfer()
standard constructor
bool trunc_send(const VectorType &vec_fine) const
Sends the truncation for a ghost operator.
bool prol(VectorType &vec_fine, const VectorType &vec_coarse) const
Applies the prolongation operator.
void convert(const Transfer< Matrix2_ > &other)
container conversion function
Matrix_::IndexType IndexType
the index type
Transfer & operator=(Transfer &&other)
move-assignment operator
bool prol_recv(VectorType &vec_fine) const
Receives the prolongation for a ghost operator.
bool is_ghost() const
Checks whether this transfer is a ghost-operator.
Matrix_ MatrixType
the internal matrix type
Matrix_::VectorTypeL VectorType
the compatible vector type
Transfer(Matrix_ &&mat_prol, Matrix_ &&mat_rest)
Creates the transfer from given prolongation and restriction matrices.
Matrix_ _mat_prol
the internal prolongation matrix
std::size_t bytes() const
Returns the internal data size in bytes.
Transfer clone(CloneMode clone_mode=CloneMode::Weak) const
Creates a clone of this object.
Matrix_ _mat_trunc
the internal truncation matrix
LAFEM common type definitions.