(update_jacobian_grads | update_hessians)) != 0u ||
(piola_transform &&
((update_flags_inner_faces | update_flags_boundary_faces) &
- update_gradients) != 0u)) ?
+ (update_gradients | update_contravariant_transformation)) != 0u)) ?
update_jacobian_grads :
update_default) |
update_normal_vectors | update_JxW_values | update_jacobians;
// inverse Jacobians, which is what we need)
if ((update_flags & update_hessians) != 0u ||
(update_flags & update_jacobian_grads) != 0u ||
- (piola_transform && (update_flags & update_gradients) != 0u))
+ (piola_transform &&
+ ((update_flags &
+ (update_gradients | update_contravariant_transformation)) != 0u)))
new_flags |= update_jacobian_grads;
if ((update_flags & update_quadrature_points) != 0u)
const MappingQ<dim> mapping(fe_degree + 2);
typename MatrixFree<dim, Number>::AdditionalData data;
data.tasks_parallel_scheme = MatrixFree<dim, Number>::AdditionalData::none;
- data.mapping_update_flags = update_gradients | update_hessians;
+ data.mapping_update_flags = update_gradients;
mf_data.reinit(mapping, dof, constraints, quad, data);
}
const QGaussLobatto<1> quad(n_q_points);
typename MatrixFree<dim, Number>::AdditionalData data;
data.tasks_parallel_scheme = MatrixFree<dim, Number>::AdditionalData::none;
- data.mapping_update_flags =
- (update_gradients | update_JxW_values | update_hessians);
- data.mapping_update_flags_inner_faces =
- (update_gradients | update_JxW_values | update_hessians);
- data.mapping_update_flags_boundary_faces =
- (update_gradients | update_JxW_values | update_hessians);
+ data.mapping_update_flags = update_piola;
+ data.mapping_update_flags_inner_faces = update_contravariant_transformation;
mf_data.reinit(mapping, dof, constraints, quad, data);
}