* in the case of an FEFaceValues or FESubfaceValues object.
*
* @param q_point Number of the quadrature point at which function is to
- * be evaluated
+ * be evaluated.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
value_type
value (const unsigned int shape_function,
*
* @note The meaning of the arguments is as documented for the value()
* function.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
gradient_type
gradient (const unsigned int shape_function,
*
* @note The meaning of the arguments is as documented for the value()
* function.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
hessian_type
hessian (const unsigned int shape_function,
* This function is the equivalent of the
* FEValuesBase::get_function_values function but it only works on the
* selected scalar component.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
template <class InputVector>
void get_function_values (const InputVector &fe_function,
* This function is the equivalent of the
* FEValuesBase::get_function_gradients function but it only works on the
* selected scalar component.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
template <class InputVector>
void get_function_gradients (const InputVector &fe_function,
* This function is the equivalent of the
* FEValuesBase::get_function_hessians function but it only works on the
* selected scalar component.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
template <class InputVector>
void get_function_hessians (const InputVector &fe_function,
* This function is the equivalent of the
* FEValuesBase::get_function_laplacians function but it only works on the
* selected scalar component.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
template <class InputVector>
void get_function_laplacians (const InputVector &fe_function,
* in the case of an FEFaceValues or FESubfaceValues object.
*
* @param q_point Number of the quadrature point at which function is to
- * be evaluated
+ * be evaluated.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
value_type
value (const unsigned int shape_function,
*
* @note The meaning of the arguments is as documented for the value()
* function.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
gradient_type
gradient (const unsigned int shape_function,
*
* @note The meaning of the arguments is as documented for the value()
* function.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
symmetric_gradient_type
symmetric_gradient (const unsigned int shape_function,
*
* @note The meaning of the arguments is as documented for the value()
* function.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
divergence_type
divergence (const unsigned int shape_function,
*
* @note The meaning of the arguments is as documented for the value()
* function.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
curl_type
curl (const unsigned int shape_function,
*
* @note The meaning of the arguments is as documented for the value()
* function.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
hessian_type
hessian (const unsigned int shape_function,
* This function is the equivalent of the
* FEValuesBase::get_function_values function but it only works on the
* selected vector components.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
template <class InputVector>
void get_function_values (const InputVector &fe_function,
* This function is the equivalent of the
* FEValuesBase::get_function_gradients function but it only works on the
* selected vector components.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
template <class InputVector>
void get_function_gradients (const InputVector &fe_function,
* FEValuesBase::get_function_symmetric_gradients in the FEValues classes
* but the information can be obtained from
* FEValuesBase::get_function_gradients, of course.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
template <class InputVector>
void
* FEValuesBase::get_function_divergences in the FEValues classes but the
* information can be obtained from FEValuesBase::get_function_gradients,
* of course.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
template <class InputVector>
void get_function_divergences (const InputVector &fe_function,
* FEValuesBase::get_function_curls in the FEValues classes but the
* information can be obtained from FEValuesBase::get_function_gradients,
* of course.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
template <class InputVector>
void get_function_curls (const InputVector &fe_function,
* This function is the equivalent of the
* FEValuesBase::get_function_hessians function but it only works on the
* selected vector components.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
template <class InputVector>
void get_function_hessians (const InputVector &fe_function,
* This function is the equivalent of the
* FEValuesBase::get_function_laplacians function but it only works on the
* selected vector components.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
template <class InputVector>
void get_function_laplacians (const InputVector &fe_function,
* in the case of an FEFaceValues or FESubfaceValues object.
*
* @param q_point Number of the quadrature point at which function is to
- * be evaluated
+ * be evaluated.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
value_type
value (const unsigned int shape_function,
*
* @note The meaning of the arguments is as documented for the value()
* function.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
divergence_type
divergence (const unsigned int shape_function,
* This function is the equivalent of the
* FEValuesBase::get_function_values function but it only works on the
* selected vector components.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
template <class InputVector>
void get_function_values (const InputVector &fe_function,
*
* See the general discussion of this class for a definition of the
* divergence.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
template <class InputVector>
void get_function_divergences (const InputVector &fe_function,
* in the case of an FEFaceValues or FESubfaceValues object.
*
* @param q_point Number of the quadrature point at which function is to
- * be evaluated
+ * be evaluated.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
value_type
value (const unsigned int shape_function,
*
* @note The meaning of the arguments is as documented for the value()
* function.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
divergence_type
divergence (const unsigned int shape_function,
* This function is the equivalent of the
* FEValuesBase::get_function_values function but it only works on the
* selected vector components.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
template <class InputVector>
void get_function_values (const InputVector &fe_function,
*
* See the general discussion of this class for a definition of the
* divergence.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
template <class InputVector>
void get_function_divergences (const InputVector &fe_function,
*
* @param point_no Number of the quadrature point at which function is to be
* evaluated
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
const double &shape_value (const unsigned int function_no,
const unsigned int point_no) const;
* shape function is not primitive, but then it is necessary since the other
* function cannot be used.
*
- * @param function_no Number of the shape function to be evaluated
+ * @param function_no Number of the shape function to be evaluated.
*
* @param point_no Number of the quadrature point at which function is to be
- * evaluated
+ * evaluated.
+ *
+ * @param component vector component to be evaluated.
*
- * @param component vector component to be evaluated
+ * @dealiiRequiresUpdateFlags{update_values}
*/
double shape_value_component (const unsigned int function_no,
const unsigned int point_no,
*
* The same holds for the arguments of this function as for the
* shape_value() function.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
const Tensor<1,spacedim> &
shape_grad (const unsigned int function_no,
*
* The same holds for the arguments of this function as for the
* shape_value_component() function.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
Tensor<1,spacedim>
shape_grad_component (const unsigned int function_no,
*
* The same holds for the arguments of this function as for the
* shape_value() function.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
const Tensor<2,spacedim> &
shape_hessian (const unsigned int function_no,
*
* The same holds for the arguments of this function as for the
* shape_value_component() function.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
Tensor<2,spacedim>
shape_hessian_component (const unsigned int function_no,
* object was last initialized. Alternatively, if the vector argument is of
* type IndexSet, then the function is represented as one that is either
* zero or one, depending on whether a DoF index is in the set or not.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
template <class InputVector, typename number>
void get_function_values (const InputVector &fe_function,
* accessed by <code>values[q]</code> equals the number of components of the
* finite element, i.e. <code>values[q](c)</code> returns the value of the
* $c$th vector component at the $q$th quadrature point.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
template <class InputVector, typename number>
void get_function_values (const InputVector &fe_function,
* You may want to use this function, if you want to access just a single
* block from a BlockVector, if you have a multi-level vector or if you
* already have a local representation of your finite element data.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
template <class InputVector, typename number>
void get_function_values (const InputVector &fe_function,
*
* Since this function allows for fairly general combinations of argument
* sizes, be aware that the checks on the arguments may not detect errors.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
template <class InputVector, typename number>
void get_function_values (const InputVector &fe_function,
*
* Since this function allows for fairly general combinations of argument
* sizes, be aware that the checks on the arguments may not detect errors.
+ *
+ * @dealiiRequiresUpdateFlags{update_values}
*/
template <class InputVector>
void get_function_values (const InputVector &fe_function,
* object was last initialized. Alternatively, if the vector argument is of
* type IndexSet, then the function is represented as one that is either
* zero or one, depending on whether a DoF index is in the set or not.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
template <class InputVector>
void get_function_gradients (const InputVector &fe_function,
* quadrature point. Consequently, <code>gradients[q][c][d]</code> is the
* derivative in coordinate direction $d$ of the $c$th vector component of
* the vector field at quadrature point $q$ of the current cell.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
template <class InputVector>
void get_function_gradients (const InputVector &fe_function,
std::vector<std::vector<Tensor<1,spacedim> > > &gradients) const;
/**
- * Function gradient access with more flexibility. see get_function_values()
+ * Function gradient access with more flexibility. See get_function_values()
* with corresponding arguments.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
template <class InputVector>
void get_function_gradients (const InputVector &fe_function,
std::vector<Tensor<1,spacedim> > &gradients) const;
/**
- * Function gradient access with more flexibility. see get_function_values()
+ * Function gradient access with more flexibility. See get_function_values()
* with corresponding arguments.
+ *
+ * @dealiiRequiresUpdateFlags{update_gradients}
*/
template <class InputVector>
void get_function_gradients (const InputVector &fe_function,
* object was last initialized. Alternatively, if the vector argument is of
* type IndexSet, then the function is represented as one that is either
* zero or one, depending on whether a DoF index is in the set or not.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
template <class InputVector>
void
* component of the matrix of second derivatives of the $c$th vector
* component of the vector field at quadrature point $q$ of the current
* cell.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
template <class InputVector>
void
bool quadrature_points_fastest = false) const;
/**
- * Access to the second derivatives of a function with more flexibility. see
+ * Access to the second derivatives of a function with more flexibility. See
* get_function_values() with corresponding arguments.
*/
template <class InputVector>
std::vector<Tensor<2,spacedim> > &hessians) const;
/**
- * Access to the second derivatives of a function with more flexibility. see
+ * Access to the second derivatives of a function with more flexibility. See
* get_function_values() with corresponding arguments.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
template <class InputVector>
void get_function_hessians (
* object was last initialized. Alternatively, if the vector argument is of
* type IndexSet, then the function is represented as one that is either
* zero or one, depending on whether a DoF index is in the set or not.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
template <class InputVector, typename number>
void
* <code>laplacians[q][c]=trace(hessians[q][c])</code>, where
* <tt>hessians</tt> would be the output of the get_function_hessians()
* function.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
template <class InputVector, typename number>
void
std::vector<Vector<number> > &laplacians) const;
/**
- * Access to the second derivatives of a function with more flexibility. see
+ * Access to the second derivatives of a function with more flexibility. See
* get_function_values() with corresponding arguments.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
template <class InputVector, typename number>
void get_function_laplacians (
std::vector<number> &laplacians) const;
/**
- * Access to the second derivatives of a function with more flexibility. see
+ * Access to the second derivatives of a function with more flexibility. See
* get_function_values() with corresponding arguments.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
template <class InputVector, typename number>
void get_function_laplacians (
std::vector<Vector<number> > &laplacians) const;
/**
- * Access to the second derivatives of a function with more flexibility. see
+ * Access to the second derivatives of a function with more flexibility. See
* get_function_values() with corresponding arguments.
+ *
+ * @dealiiRequiresUpdateFlags{update_hessians}
*/
template <class InputVector, typename number>
void get_function_laplacians (
/**
* Position of the <tt>q</tt>th quadrature point in real space.
+ *
+ * @dealiiRequiresUpdateFlags{update_quadrature_points}
*/
const Point<spacedim> &
quadrature_point (const unsigned int q) const;
/**
- * Return a pointer to the vector of quadrature points in real space.
+ * Return a reference to the vector of quadrature points in real space.
+ *
+ * @dealiiRequiresUpdateFlags{update_quadrature_points}
*/
const std::vector<Point<spacedim> > &get_quadrature_points () const;
* You can think of the quantity returned by this function as the volume or
* surface element $dx, ds$ in the integral that we implement here by
* quadrature.
+ *
+ * @dealiiRequiresUpdateFlags{update_JxW_values}
*/
double JxW (const unsigned int quadrature_point) const;
/**
- * Pointer to the array holding the values returned by JxW().
+ * Return a reference to the array holding the values returned by JxW().
*/
const std::vector<double> &get_JxW_values () const;
/**
* Return the Jacobian of the transformation at the specified quadrature
* point, i.e. $J_{ij}=dx_i/d\hat x_j$
+ *
+ * @dealiiRequiresUpdateFlags{update_jacobians}
*/
const DerivativeForm<1,dim,spacedim> &jacobian (const unsigned int quadrature_point) const;
/**
- * Pointer to the array holding the values returned by jacobian().
+ * Return a reference to the array holding the values returned by jacobian().
+ *
+ * @dealiiRequiresUpdateFlags{update_jacobians}
*/
const std::vector<DerivativeForm<1,dim,spacedim> > &get_jacobians () const;
* Return the second derivative of the transformation from unit to real
* cell, i.e. the first derivative of the Jacobian, at the specified
* quadrature point, i.e. $G_{ijk}=dJ_{jk}/d\hat x_i$.
+ *
+ * @dealiiRequiresUpdateFlags{update_jacobian_grads}
*/
const DerivativeForm<2,dim,spacedim> &jacobian_grad (const unsigned int quadrature_point) const;
/**
- * Pointer to the array holding the values returned by jacobian_grads().
+ * Return a reference to the array holding the values returned by jacobian_grads().
+ *
+ * @dealiiRequiresUpdateFlags{update_jacobian_grads}
*/
const std::vector<DerivativeForm<2,dim,spacedim> > &get_jacobian_grads () const;
/**
* Return the inverse Jacobian of the transformation at the specified
* quadrature point, i.e. $J_{ij}=d\hat x_i/dx_j$
+ *
+ * @dealiiRequiresUpdateFlags{update_inverse_jacobians}
*/
const DerivativeForm<1,spacedim,dim> &inverse_jacobian (const unsigned int quadrature_point) const;
/**
- * Pointer to the array holding the values returned by inverse_jacobian().
+ * Return a reference to the array holding the values returned by inverse_jacobian().
+ *
+ * @dealiiRequiresUpdateFlags{update_inverse_jacobians}
*/
const std::vector<DerivativeForm<1,spacedim,dim> > &get_inverse_jacobians () const;
+
/**
* For a face, return the outward normal vector to the cell at the
* <tt>i</tt>th quadrature point.
* specified by the numbering of the vertices.
*
* The length of the vector is normalized to one.
+ *
+ * @dealiiRequiresUpdateFlags{update_normal_vectors}
*/
const Point<spacedim> &normal_vector (const unsigned int i) const;
* Return the normal vectors at the quadrature points. For a face, these are
* the outward normal vectors to the cell. For a cell of codimension one,
* the orientation is given by the numbering of vertices.
+ *
+ * @dealiiRequiresUpdateFlags{update_normal_vectors}
*/
const std::vector<Point<spacedim> > &get_normal_vectors () const;
/**
* Boundary form of the transformation of the cell at the <tt>i</tt>th
* quadrature point. See @ref GlossBoundaryForm .
+ *
+ * @dealiiRequiresUpdateFlags{update_boundary_forms}
*/
const Tensor<1,spacedim> &boundary_form (const unsigned int i) const;
/**
* Return the list of outward normal vectors times the Jacobian of the
* surface mapping.
+ *
+ * @dealiiRequiresUpdateFlags{update_boundary_forms}
*/
const std::vector<Tensor<1,spacedim> > &get_boundary_forms () const;
// an adaptation of the FEValuesBase::shape_value_component function
// except that here we know the component as fixed and we have
- // pre-computed and cached a bunch of information. see the comments there
+ // pre-computed and cached a bunch of information. See the comments there.
if (shape_function_data[shape_function].is_nonzero_shape_function_component)
return fe_values.shape_values(shape_function_data[shape_function]
.row_index,
// function except that here we know the
// component as fixed and we have
// pre-computed and cached a bunch of
- // information. see the comments there
+ // information. See the comments there.
if (shape_function_data[shape_function].is_nonzero_shape_function_component)
return fe_values.shape_gradients[shape_function_data[shape_function]
.row_index][q_point];
// function except that here we know the
// component as fixed and we have
// pre-computed and cached a bunch of
- // information. see the comments there
+ // information. See the comments there.
if (shape_function_data[shape_function].is_nonzero_shape_function_component)
return fe_values.shape_hessians[shape_function_data[shape_function].row_index][q_point];
else