template <int dim>
void TSL_prllel<dim>::interface_gradients(Tensor<1, dim> &interface_gradients)
{
interface_gradients = 0;
QGauss<dim - 1> face_quadrature_formula(degree + 1);
FEInterfaceValues<dim> fe_iv(fe,
face_quadrature_formula,
+many_flags);
Tensor<1, dim> local_interface_gradients;
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()) //If I am at the interface
{
// I want to visit the face only once so I clear the flag
cell->face(face)->clear_user_flag();
fe_iv.get_jump_in_function_values(ghosted_solution, gradu);
for (unsigned int point = 0; point < n_face_q_points; ++point)
{
local_interface_gradients += gradu[point]xJXW ;
}
}
interface_stress = Utilities::MPI::sum(local_interface_gradients, mpi_communicator);
}