Excuse this basic question but how is the gradient at a quadrature point on a face calculated in deal?
QGauss<1> face_quadrature_formula(fe.degree + 1);
FEFaceValues<2> fe_face_values(fe,
face_quadrature_formula,
update_values | update_quadrature_points |
update_normal_vectors | update_gradients |
update_JxW_values);
for (const auto &cell : dof_handler.active_cell_iterators())
for (const auto &face : cell->face_iterators())
{
fe_face_values.reinit(cell, face);
const auto &q_points = fe_face_values.get_quadrature_points();
const unsigned int n_q_points = q_points.size();
std::vector<Tensor<1, 2>> grads(n_q_points);
fe_face_values.get_function_gradients(solution, grads);
for (unsigned int q_point = 0; q_point < n_q_points; ++q_point)
{
std::cout << "At q_point\t" << q_points[q_point] << "\n";
std::cout << "Solution grads\t" << grads[q_point] << "\n";
std::cout << "\n";
}
}