#define __deal2__fe_update_flags_h
-//TODO:[GK] Bring docs and declarations into synch
+
/**
* Provide a set of flags which tells the @p{FEValues<>::reinit}
* function, which fields are to be updated for each cell. E.g. if you
*
* The following flags are declared:
* @begin{itemize}
- * @item @p{update_default}: Default: update nothing.
- * @item @p{update_values}: Compute the values of the shape
+ * @item @p{update_default}: Default: update nothing.
+ * @item @p{update_values}: Compute the values of the shape
* functions at the quadrature points on the real space cell. For the
* usual Lagrange elements, these values are equal to the values of
* the shape functions at the quadrature points on the unit cell, but
* they are different for more complicated elements, such as BDM or
* Raviart-Thomas elements.
- * @item @p{update_q_points}: Compute quadrature points in real
- * space (not on unit cell).
- * @item @p{update_gradients}: Transform gradients on unit cell to
+ * @item @p{update_gradients}: Transform gradients on unit cell to
* gradients on real cell.
- * @item @p{update_jacobians}: Compute jacobian matrices of the
- * transform between unit and real cell
- * in the evaluation points.
- * @item @p{update_JxW_values}: Compute the JxW values (Jacobian
+ * @item @p{update_second_derivatives}: Update the second derivatives of the
+ * shape functions on the real cell.
+ * @item @p{update_boundary_forms}: Update boundary forms on the face.
+ * This flag is only evaluated by the @ref{FEFaceValues} class.
+ * Giving this flag to the @ref{FEValues} class will result in an
+ * error, since boundary forms only exist on the boundary.
+ * @item @p{update_q_points}: Compute quadrature points in real
+ * space (not on unit cell).
+ * @item @p{update_JxW_values}: Compute the JxW values (Jacobian
* determinant at the quadrature point
* times the weight of this point).
- * @item @p{update_normal_vectors}: Update the outward normal vectors
- * to the face relative to this cell.
- * This flag is only evaluated by
- * the @p{FEFaceValues} class.
- * Giving this flag to the
- * @p{FEValues} class will result in
- * an error, since normal vectors are
- * not useful in that case.
- * @item @p{update_second_derivatives}: Update the second derivatives of the
- * shape functions on the real cell.
+ * @item @p{update_normal_vectors}: Update the outward normal vectors
+ * to the face relative to this cell. This flag is only evaluated
+ * by the @p{FEFaceValues} class. Giving this flag to the
+ * @p{FEValues} class will result in an error, since normal
+ * vectors are not useful in that case.
+ * @item @p{update_jacobians}: Compute jacobian matrices of the
+ * transform between unit and real cell
+ * in the evaluation points.
+ * @item @p{update_jacobian_grads}: Update gradients of the jacobian. These
+ * are used to compute second derivatives.
+ * @item @p{update_covariant_transformation}: Update co-variant
+ * transformation. This flag is used internally to tell Mapping
+ * objects to compute the transformation matrices for co-variant
+ * vectors.
+ * @item @p{update_contravariant_transformation}: Update contra-variant
+ * transformation. This flag is used internally to tell Mapping
+ * objects to compute the transformation matrices for contra-variant
+ * vectors.
+ * @item @p{update_transformation_values}: Update the shape function values
+ * of the transformation.
+ * @item @p{update_transformation_gradients}: Update the gradients of the shape
+ * functions of the transformation.
* @end{itemize}
*
* @author Wolfgang Bangerth, Guido Kanschat, 1998, 1999, 2000, 2001
*/
enum UpdateFlags
{
- /**
- * Default: update nothing.
- */
- update_default = 0,
- /**
- * Compute quadrature points in
- * real space (not on unit
- * cell).
- */
- update_q_points = 0x0001,
-
- /**
- * Compute the JxW values
- * (Jacobian determinant at the
- * quadrature point times the
- * weight of this point).
- */
- update_JxW_values = 0x0002,
-
- /**
- * Update boundary forms on the
- * face. This flag is only
- * evaluated by the
- * @ref{FEFaceValues} class.
- *
- * Giving this flag to the
- * @ref{FEValues} class will
- * result in an error, since
- * boundary forms only exist on
- * the boundary.
- */
- update_boundary_forms = 0x0004,
-
- /**
- * Compute the values of the
- * shape functions at the
- * quadrature points on the
- * real space cell. For the
- * usual Lagrange elements,
- * these values are equal to
- * the values of the shape
- * functions at the quadrature
- * points on the unit cell, but
- * they are different for more
- * complicated elements, such
- * as BDM or Raviart-Thomas
- * elements.
- */
- update_values = 0x0010,
- /**
- * Transform gradients on unit
- * cell to gradients on real
- * cell.
- */
- update_gradients = 0x0020,
-
- /**
- * Update the second
- * derivatives of the shape
- * functions on the real cell.
- */
- update_second_derivatives = 0x0040,
-
- /**
- * Compute jacobian matrices of
- * the transform between unit
- * and real cell in the
- * evaluation points.
- */
- update_jacobians = 0x0080,
-
- /**
- * Update co-variant
- * transformation. This flag
- * is used internally to tell
- * Mapping objects to compute
- * the transformation matrices
- * for co-variant vectors.
- */
- update_covariant_transformation = 0x0100,
-
- /**
- * Update contra-variant
- * transformation. This flag
- * is used internally to tell
- * Mapping objects to compute
- * the transformation matrices
- * for contra-variant vectors.
- */
- update_contravariant_transformation = 0x0200,
-
- /**
- * Update gradients of the
- * jacobian. These are used to
- * compute second derivatives.
- */
- update_jacobian_grads = 0x0400,
-
- /**
- * Update shape function values
- * of the transformation.
- */
-
- update_transformation_values = 0x0800,
-
- /**
- * Update gradients of
- * transformation shape
- * functions.
- */
- update_transformation_gradients = 0x1000,
-
- /**
- * Compute the points on the
- * real cell on which the trial
- * functions are located.
- *
- * Giving this flag to the
- * @ref{FESubfaceValues} class
- * will result in an error,
- * since support points are not
- * useful in that case.
- */
- update_support_points = 0x2000,
-
- /**
- * Update the outward normal
- * vectors to the face relative
- * to this cell. This flag is
- * only evaluated by the
- * @ref{FEFaceValues} class.
- *
- * Giving this flag to the
- * @ref{FEValues} class will
- * result in an error, since
- * normal vectors are not
- * useful in that case.
- */
- update_normal_vectors = 0x4000
+ update_default = 0,
+ update_values = 0x0001,
+ update_gradients = 0x0002,
+ update_second_derivatives = 0x0004,
+ update_boundary_forms = 0x0008,
+ update_q_points = 0x0010,
+ update_JxW_values = 0x0020,
+ update_normal_vectors = 0x0040,
+ update_jacobians = 0x0080,
+ update_jacobian_grads = 0x0100,
+ update_covariant_transformation = 0x0200,
+ update_contravariant_transformation = 0x0400,
+ update_transformation_values = 0x0800,
+ update_transformation_gradients = 0x1000
};