// further adjusted if one were to use hanging nodes resulting from
// adaptive mesh refinement.
const unsigned int p = fe.degree;
- const double gamma =
+ const double gamma_over_h =
std::max((1.0 * p * (p + 1) /
cell->extent_in_direction(
GeometryInfo<dim>::unit_normal_direction[f])),
- av_hessian_j_dot_n_dot_n // - {grad^2 u n n }
* jump_grad_i_dot_n // [grad v n]
+ // +
- gamma * // gamma
+ gamma_over_h * // gamma/h
jump_grad_i_dot_n * // [grad v n]
jump_grad_j_dot_n) * // [grad u n]
fe_interface_values.JxW(qpoint); // dx
// face (as we are on the boundary), the computation of the penalty
// factor $\gamma$ is substantially simpler:
const unsigned int p = fe.degree;
- const double gamma =
+ const double gamma_over_h =
(1.0 * p * (p + 1) /
cell->extent_in_direction(
GeometryInfo<dim>::unit_normal_direction[face_no]));
- av_hessian_j_dot_n_dot_n // - {grad^2 u n n}
* jump_grad_i_dot_n // [grad v n]
//
- + gamma // gamma
+ + gamma_over_h // gamma/h
* jump_grad_i_dot_n // [grad v n]
* jump_grad_j_dot_n // [grad u n]
) *
(-av_hessian_i_dot_n_dot_n * // - {grad^2 v n n }
(exact_gradients[qpoint] * n) // (grad u_exact . n)
+ // +
- gamma // gamma
+ gamma_over_h // gamma/h
* jump_grad_i_dot_n // [grad v n]
* (exact_gradients[qpoint] * n) // (grad u_exact . n)
) *