template<int dim, int spacedim, class VECTOR, class DH>
UpdateFlags
-MappingFEField<dim,spacedim,VECTOR,DH>::update_once (const UpdateFlags in) const
+MappingFEField<dim,spacedim,VECTOR,DH>::update_once (const UpdateFlags) const
{
- UpdateFlags out = UpdateFlags(in & (update_transformation_values
- | update_transformation_gradients));
-
- // Shape function values
- if (in & update_quadrature_points)
- out |= update_transformation_values;
-
- // Shape function gradients
- if (in & (update_covariant_transformation
- | update_contravariant_transformation
- | update_JxW_values
- | update_boundary_forms
- | update_normal_vectors
- | update_jacobians
- | update_jacobian_grads
- | update_inverse_jacobians))
- out |= update_transformation_gradients;
-
- return out;
+ // nothing here
+ return update_default;
}
const UpdateFlags flags(data.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)
const std::vector<unsigned int> &fe_to_real,
std::vector<Point<spacedim> > &quadrature_points)
{
- const UpdateFlags update_flags(data.current_update_flags());
+ const UpdateFlags update_flags = data.update_each;
if (update_flags & update_quadrature_points)
{
const ComponentMask &fe_mask,
const std::vector<unsigned int> &fe_to_real)
{
- const UpdateFlags update_flags(data.current_update_flags());
+ const UpdateFlags update_flags = data.update_each;
// then Jacobians
if (update_flags & update_contravariant_transformation)
const std::vector<unsigned int> &fe_to_real,
std::vector<DerivativeForm<2,dim,spacedim> > &jacobian_grads)
{
- const UpdateFlags update_flags(data.current_update_flags());
+ const UpdateFlags update_flags = data.update_each;
if (update_flags & update_jacobian_grads)
{
const unsigned int n_q_points = jacobian_grads.size();
const typename dealii::MappingFEField<dim,spacedim>::InternalData &data,
internal::FEValues::MappingRelatedData<dim,spacedim> &output_data)
{
- const UpdateFlags update_flags(data.current_update_flags());
+ const UpdateFlags update_flags = data.update_each;
if (update_flags & update_boundary_forms)
{
QProjector<dim>::DataSetDescriptor::cell (),
data, *fe, fe_mask, fe_to_real);
- const UpdateFlags update_flags(data.current_update_flags());
+ const UpdateFlags update_flags = data.update_each;
const std::vector<double> &weights=quadrature.get_weights();
// Multiply quadrature weights by absolute value of Jacobian determinants or
// the right size and transformation shape values already computed at point
// p.
const Quadrature<dim> point_quadrature(p);
- std_cxx11::unique_ptr<InternalData>
- mdata (get_data(update_transformation_values, point_quadrature));
+ std_cxx11::unique_ptr<InternalData> mdata (get_data(update_quadrature_points | update_jacobians,
+ point_quadrature));
update_internal_dofs(cell, *mdata);
const Quadrature<dim> point_quadrature(initial_p_unit);
- UpdateFlags update_flags = update_transformation_values|update_transformation_gradients;
+ UpdateFlags update_flags = update_quadrature_points | update_jacobians;
if (spacedim>dim)
update_flags |= update_jacobian_grads;
std_cxx11::unique_ptr<InternalData>
}
-
template<int dim, int spacedim, class VECTOR, class DH>
unsigned int
MappingFEField<dim,spacedim,VECTOR,DH>::get_degree() const