const unsigned int n_original_q_points,
InternalData &data) const
{
- const unsigned int n_q_points = q.size();
-
- data.update_once = update_once(update_flags);
data.update_each = update_each(update_flags);
- data.update_flags = data.update_once | data.update_each;
- const UpdateFlags flags(data.update_flags);
+ const unsigned int n_q_points = q.size();
+ const UpdateFlags flags = update_once(update_flags) | update_each(update_flags);
- if (flags & update_transformation_values)
+ // see if we need the (transformation) shape function values
+ // and/or gradients and resize the necessary arrays
+ if (flags & update_quadrature_points)
data.shape_values.resize(data.n_shape_functions * n_q_points);
- if (flags & update_transformation_gradients)
+ if (flags & (update_covariant_transformation
+ | update_contravariant_transformation
+ | update_JxW_values
+ | update_boundary_forms
+ | update_normal_vectors
+ | update_jacobians
+ | update_jacobian_grads
+ | update_inverse_jacobians))
data.shape_derivatives.resize(data.n_shape_functions * n_q_points);
if (flags & update_covariant_transformation)