template <int dim>
void output_jumps<dim>::interface_jump()
{
QGauss<dim - 1> face_quadrature_formula(degree + 1);
FEInterfaceValues<dim> fe_iv(fe,
face_quadrature_formula,
UpdateFlags(update_values |
update_gradients |
update_quadrature_points |
update_normal_vectors |
update_JxW_values));
const unsigned int n_face_q_points = face_quadrature_formula.size();
std::vector<Tensor<2, dim>> gradu(n_face_q_points);
typename DoFHandler<dim>::active_cell_iterator cell = dof_handler.begin_active(), endc = dof_handler.end();
const FEValuesExtractors::Vector displacements(0);
for (; cell != endc; ++cell)
if (cell->is_locally_owned())
for (unsigned int face = 0; face < GeometryInfo<dim>::faces_per_cell; ++face)
if (cell->face(face)->user_flag_set())
{
// I want to visit the face only once
cell->face(face)->clear_user_flag();
auto cellnb = cell->neighbor(face);
int nface_number = cell->neighbor_face_no(face);
fe_iv.reinit(cell, face, numbers::invalid_unsigned_int, cellnb, nface_number, numbers::invalid_unsigned_int);
// This line breaks running code in parallel
fe_iv[displacements].get_jump_in_function_values(current_solution, jumpu);
}
}