9#include <kernel/lafem/dense_vector.hpp> 
   20    template<
typename DT_, 
typename IT_>
 
   32      template <
typename DT2_ = DT_, 
typename IT2_ = IT_>
 
   36      template <
typename DataType2_, 
typename IndexType2_>
 
   76          XASSERTM(
_volume > Math::eps<DataType>(), 
"domain volume must not be zero");
 
  100          XASSERTM(
_volume > Math::eps<DataType>(), 
"domain volume must not be zero");
 
  118          _vec_prim = std::forward<VectorType>(other._vec_prim);
 
  119          _vec_dual = std::forward<VectorType>(other._vec_dual);
 
  153      template<
typename DT2_, 
typename IT2_>
 
  162          XASSERTM(
_volume > Math::eps<DataType>(), 
"domain volume must not be zero");
 
  270      template<
typename MT_>
 
#define XASSERTM(expr, msg)
Assertion macro definition with custom message.
bool empty() const
Checks whether the container is empty.
virtual void clear()
Free all allocated arrays.
Dense data vector class template.
void convert(const DenseVector< DT2_, IT2_ > &other)
Conversion method.
DataType dot(const DenseVector &x) const
Calculate .
DT_ DataType
Our datatype.
IT_ IndexType
Our indextype.
void axpy(const DenseVector &x, const DT_ alpha=DT_(1))
Calculate .
DenseVector clone(CloneMode clone_mode=CloneMode::Deep) const
Clone operation.
Mean Filter class template.
VectorType _vec_prim
primal weighting vector
MeanFilter clone(CloneMode clone_mode=CloneMode::Deep) const
Creates a clone of itself.
VectorType::DataType DataType
data-type typedef
void filter_sol(VectorType &vector) const
Applies the filter onto the solution vector.
void filter_mat(MT_ &matrix) const
Applies the filter onto a system matrix.
MeanFilter(MeanFilter &&other)
move ctor
DataType _sol_mean
desired solution vector mean
void filter_rhs(VectorType &vector) const
Applies the filter onto the right-hand-side vector.
void filter_cor(VectorType &vector) const
Applies the filter onto a correction vector.
MeanFilter(VectorType &&vec_prim, VectorType &&vec_dual, DataType sol_mean, DataType volume)
Constructor.
MeanFilter & operator=(MeanFilter &&other)
move-assign operator
DenseVector< DT_, IT_ > VectorType
vector-type typedef
virtual ~MeanFilter()
virtual destructor
void clear()
Clears this filter.
DataType _volume
weight volume
void convert(const MeanFilter< DT2_, IT2_ > &other)
Conversion method.
MeanFilter(VectorType &&vec_prim, VectorType &&vec_dual, DataType sol_mean=DataType(0))
Constructor.
void clone(const MeanFilter &other, CloneMode clone_mode=CloneMode::Deep)
Clones data from another MeanFilter.
void filter_def(VectorType &vector) const
Applies the filter onto a defect vector.
VectorType::IndexType IndexType
index-type typedef
VectorType _vec_dual
dual weighting vector