template <int dim, int degree_v, typename SignedDistanceType, typename number>
void MassOperator<dim, degree_v, SignedDistanceType, number>::local_apply(
const dealii::MatrixFree<dim, number> &data,
LinearAlgebra::distributed::BlockVector<number> &dst,
const LinearAlgebra::distributed::BlockVector<number> &src,
const std::pair<unsigned int, unsigned int> &cell_range) const
{
using vector_t = VectorizedArray<number>;
FEEvaluation<dim, degree_v, degree_v*2, dim, number> velocity(data, 0);
for (unsigned int cell = cell_range.first; cell < cell_range.second; ++cell)
{
//AssertDimension(phase_field_evaluations.size(0), data.n_cell_batches());
//AssertDimension(phase_field_evaluations.size(1), velocity.n_q_points);
velocity.reinit(cell);
//std::cout << velocity.get_active_fe_index() << std::endl;
if (velocity.get_active_fe_index()==0){
// Dof are active and not FENothing
velocity.read_dof_values(src.block(0));
for (unsigned int q = 0; q < velocity.n_q_points; ++q)
{
//velocity.submit_value(phase_field_evaluations(cell, q)*velocity.get_value(q),q);
velocity.submit_value(velocity.get_value(q),q);
}
velocity.integrate(EvaluationFlags::values);
velocity.distribute_local_to_global(dst.block(0));
}
}
}