* within the constructor to be passed to the constructor of @p
* FiniteElementData.
*/
- static std::vector<unsigned int> get_dpo_vector (const unsigned int degree);
-
- /**
- * Given a set of flags indicating what quantities are requested from a @p
- * FEValues object, return which of these can be precomputed once and for
- * all. Often, the values of shape function at quadrature points can be
- * precomputed, for example, in which case the return value of this function
- * would be the logical and of the input @p flags and @p update_values.
- *
- * For the present kind of finite element, this is exactly the case.
- */
- UpdateFlags update_once (const UpdateFlags flags) const;
-
- /**
- * This is the opposite to the above function: given a set of flags
- * indicating what we want to know, return which of these need to be
- * computed each time we visit a new cell.
- *
- * If for the computation of one quantity something else is also required
- * (for example, we often need the covariant transformation when gradients
- * need to be computed), include this in the result as well.
- */
- UpdateFlags update_each (const UpdateFlags flags) const;
+ static
+ std::vector<unsigned int>
+ get_dpo_vector (const unsigned int degree);
/**
* Degree of the polynomials.
template <int dim, int spacedim>
UpdateFlags
FE_DGPNonparametric<dim,spacedim>::requires_update_flags (const UpdateFlags flags) const
-{
- return update_once(flags) | update_each(flags);
-}
-
-
-
-template <int dim, int spacedim>
-UpdateFlags
-FE_DGPNonparametric<dim,spacedim>::update_once (const UpdateFlags) const
-{
- // for this kind of elements, only
- // the values can be precomputed
- // once and for all. set this flag
- // if the values are requested at
- // all
- return update_default;
-}
-
-
-template <int dim, int spacedim>
-UpdateFlags
-FE_DGPNonparametric<dim,spacedim>::update_each (const UpdateFlags flags) const
{
UpdateFlags out = flags;
}
+
//---------------------------------------------------------------------------
// Data field initialization
//---------------------------------------------------------------------------
dealii::internal::FEValues::FiniteElementRelatedData<dim, spacedim> &/*output_data*/) const
{
// generate a new data object
- typename FiniteElement<dim,spacedim>::InternalDataBase *data = new typename FiniteElement<dim,spacedim>::InternalDataBase;
- data->update_each = update_once(update_flags) | update_each(update_flags); // FIX: only update_each required
+ typename FiniteElement<dim,spacedim>::InternalDataBase *data
+ = new typename FiniteElement<dim,spacedim>::InternalDataBase;
+ data->update_each = requires_update_flags(update_flags);
// other than that, there is nothing we can add here as discussed
// in the general documentation of this class