IntegrationInfo();
/**
- * Copy constructor, creating a
- * clone to be used by
+ * Copy constructor, creating a clone to be used by
* WorksTream::run().
*/
IntegrationInfo(const IntegrationInfo<dim, spacedim> &other);
/**
- * Build all internal
- * structures, in particular
- * the FEValuesBase objects
- * and allocate space for
- * data vectors.
+ * Build all internal structures, in particular the FEValuesBase
+ * objects and allocate space for data vectors.
*
- * @param el is the finite
- * element of the DoFHandler.
+ * @param el is the finite element of the DoFHandler.
*
- * @param mapping is the Mapping
- * object used to map the
- * mesh cells.
+ * @param mapping is the Mapping object used to map the mesh
+ * cells.
*
- * @param quadrature is a
- * Quadrature formula used in
- * the constructor of the
- * FEVALUES objects.
+ * @param quadrature is a Quadrature formula used in the
+ * constructor of the FEVALUES objects.
*
- * @param flags are the
- * UpdateFlags used in
- * the constructor of the
+ * @param flags are the UpdateFlags used in the constructor of the
* FEVALUES objects.
*
- * @param local_block_info is
- * an optional parameter for
- * systems of PDE. If it is
- * provided with reasonable
- * data, then the degrees of
- * freedom on the cells will be
- * re-ordered to reflect the
- * block structure of the system.
+ * @param local_block_info is an optional parameter for systems of
+ * PDE. If it is provided with reasonable data, then the degrees
+ * of freedom on the cells will be re-ordered to reflect the block
+ * structure of the system.
*/
template <class FEVALUES>
void initialize(const FiniteElement<dim,spacedim> &el,
const BlockInfo *local_block_info = 0);
/**
- * Initialize the data
- * vector and cache the
- * selector.
+ * Initialize the data vector and cache the selector.
*/
void initialize_data(const std_cxx1x::shared_ptr<VectorDataBase<dim,spacedim> > &data);
bool multigrid;
/// Access to finite element
/**
- * This is the access
- * function being used, if
- * the constructor for a
- * single element was
- * used. It throws an
- * exception, if applied to a
- * vector of elements.
+ * This is the access function being used, if the constructor for
+ * a single element was used. It throws an exception, if applied
+ * to a vector of elements.
*/
const FEValuesBase<dim, spacedim> &fe_values () const;
/// Access to finite elements
/**
- * This access function must
- * be used if the constructor
- * for a group of elements
- * was used.
+ * This access function must be used if the constructor for a
+ * group of elements was used.
*
* @see DGBlockSplitApplication
*/
const FEValuesBase<dim, spacedim> &fe_values (const unsigned int i) const;
/**
- * The vector containing the
- * values of finite element
- * functions in the quadrature
- * points.
+ * The vector containing the values of finite element functions in
+ * the quadrature points.
*
- * There is one vector per
- * selected finite element
- * function, containing one
- * vector for each component,
- * containing vectors with
- * values for each quadrature
- * point.
+ * There is one vector per selected finite element function,
+ * containing one vector for each component, containing vectors
+ * with values for each quadrature point.
*/
std::vector<std::vector<std::vector<double> > > values;
/**
- * The vector containing the
- * derivatives of finite
- * element functions in the
- * quadrature points.
+ * The vector containing the derivatives of finite element
+ * functions in the quadrature points.
*
- * There is one vector per
- * selected finite element
- * function, containing one
- * vector for each component,
- * containing vectors with
- * values for each quadrature
- * point.
+ * There is one vector per selected finite element function,
+ * containing one vector for each component, containing vectors
+ * with values for each quadrature point.
*/
std::vector<std::vector<std::vector<Tensor<1,dim> > > > gradients;
/**
- * The vector containing the
- * second derivatives of finite
- * element functions in the
- * quadrature points.
+ * The vector containing the second derivatives of finite element
+ * functions in the quadrature points.
*
- * There is one vector per
- * selected finite element
- * function, containing one
- * vector for each component,
- * containing vectors with
- * values for each quadrature
- * point.
+ * There is one vector per selected finite element function,
+ * containing one vector for each component, containing vectors
+ * with values for each quadrature point.
*/
std::vector<std::vector<std::vector<Tensor<2,dim> > > > hessians;
/**
- * Reinitialize internal data
- * structures for use on a cell.
+ * Reinitialize internal data structures for use on a cell.
*/
template <typename number>
void reinit(const DoFInfo<dim, spacedim, number> &i);
/**
- * Use the finite element
- * functions in #global_data
- * and fill the vectors
- * #values, #gradients and
- * #hessians.
+ * Use the finite element functions in #global_data and fill the
+ * vectors #values, #gradients and #hessians.
*/
template<typename number>
void fill_local_data(const DoFInfo<dim, spacedim, number> &info, bool split_fevalues);
/**
- * The global data vector
- * used to compute function
- * values in quadrature
- * points.
+ * The global data vector used to compute function values in
+ * quadrature points.
*/
std_cxx1x::shared_ptr<VectorDataBase<dim, spacedim> > global_data;
private:
/**
- * Use the finite element
- * functions in #global_data
- * and fill the vectors
- * #values, #gradients and
- * #hessians with values
- * according to the
- * selector.
+ * Use the finite element functions in #global_data and fill the
+ * vectors #values, #gradients and #hessians with values according
+ * to the selector.
*/
template <typename TYPE>
void fill_local_data(
VectorSelector &selector,
bool split_fevalues) const;
/**
- * Cache the number of
- * components of the system element.
+ * Cache the number of components of the system element.
*/
unsigned int n_components;
};
IntegrationInfoBox ();
/**
- * Initialize the
- * IntegrationInfo objects
- * contained.
+ * Initialize the IntegrationInfo objects contained.
*
- * Before doing so, add update
- * flags necessary to produce
- * the data needed and also
- * set uninitialized quadrature
- * rules to Gauss formulas,
- * which integrate polynomial
- * bilinear forms exactly.
+ * Before doing so, add update flags necessary to produce the data
+ * needed and also set uninitialized quadrature rules to Gauss
+ * formulas, which integrate polynomial bilinear forms exactly.
*/
void initialize(const FiniteElement<dim, spacedim> &el,
const Mapping<dim, spacedim> &mapping,
const BlockInfo *block_info = 0);
/**
- * Initialize the
- * IntegrationInfo objects
- * contained.
+ * Initialize the IntegrationInfo objects contained.
*
- * Before doing so, add update
- * flags necessary to produce
- * the data needed and also
- * set uninitialized quadrature
- * rules to Gauss formulas,
- * which integrate polynomial
- * bilinear forms exactly.
+ * Before doing so, add update flags necessary to produce the data
+ * needed and also set uninitialized quadrature rules to Gauss
+ * formulas, which integrate polynomial bilinear forms exactly.
*/
template <typename VECTOR>
void initialize(const FiniteElement<dim, spacedim> &el,
const BlockInfo *block_info = 0);
/**
- * Initialize the
- * IntegrationInfo objects
- * contained.
+ * Initialize the IntegrationInfo objects contained.
*
- * Before doing so, add update
- * flags necessary to produce
- * the data needed and also
- * set uninitialized quadrature
- * rules to Gauss formulas,
- * which integrate polynomial
- * bilinear forms exactly.
+ * Before doing so, add update flags necessary to produce the data
+ * needed and also set uninitialized quadrature rules to Gauss
+ * formulas, which integrate polynomial bilinear forms exactly.
*/
template <typename VECTOR>
void initialize(const FiniteElement<dim, spacedim> &el,
/* @{ */
/**
- * Call this function before
- * initialize() in order to
- * guess the update flags
- * needed, based on the data
- * selected.
+ * Call this function before initialize() in order to guess the
+ * update flags needed, based on the data selected.
*
- * When computing face fluxes,
- * we normally can use the
- * geometry (integration
- * weights and normal vectors)
- * from the original cell and
- * thus can avoid updating
- * these values on the
- * neighboring cell. Set
- * <tt>neighbor_geometry</tt>
- * to true in order to
- * initialize these values as
- * well.
+ * When computing face fluxes, we normally can use the geometry
+ * (integration weights and normal vectors) from the original cell
+ * and thus can avoid updating these values on the neighboring
+ * cell. Set <tt>neighbor_geometry</tt> to true in order to
+ * initialize these values as well.
*/
void initialize_update_flags(bool neighbor_geometry = false);
/**
- * Add FEValues UpdateFlags for
- * integration on all objects
- * (cells, boundary faces and
- * all interior faces).
+ * Add FEValues UpdateFlags for integration on all objects (cells,
+ * boundary faces and all interior faces).
*/
void add_update_flags_all (const UpdateFlags flags);
/**
- * Add FEValues UpdateFlags for
- * integration on cells.
+ * Add FEValues UpdateFlags for integration on cells.
*/
void add_update_flags_cell(const UpdateFlags flags);
/**
- * Add FEValues UpdateFlags for
- * integration on boundary faces.
+ * Add FEValues UpdateFlags for integration on boundary faces.
*/
void add_update_flags_boundary(const UpdateFlags flags);
/**
- * Add FEValues UpdateFlags for
- * integration on interior faces.
+ * Add FEValues UpdateFlags for integration on interior faces.
*/
void add_update_flags_face(const UpdateFlags flags);
/**
- * Add additional update flags
- * to the ones already set in
- * this program. The four
- * boolean flags indicate
- * whether the additional flags
- * should be set for cell,
- * boundary, interelement face
- * for the cell itself
- * or neighbor cell, or
- * any combination thereof.
+ * Add additional update flags to the ones already set in this
+ * program. The four boolean flags indicate whether the additional
+ * flags should be set for cell, boundary, interelement face for
+ * the cell itself or neighbor cell, or any combination thereof.
*/
void add_update_flags(const UpdateFlags flags,
const bool cell = true,
const bool neighbor = true);
/**
- * Assign n-point Gauss
- * quadratures to each of the
- * quadrature rules. Here, a
- * size of zero points means
- * that no loop over these grid
- * entities should be
- * performed.
+ * Assign n-point Gauss quadratures to each of the quadrature
+ * rules. Here, a size of zero points means that no loop over
+ * these grid entities should be performed.
*
- * If the parameter
- * <tt>force</tt> is true, then
- * all quadrature sets are
- * filled with new quadrature
- * ruels. If it is false, then
+ * If the parameter <tt>force</tt> is true, then all quadrature
+ * sets are filled with new quadrature ruels. If it is false, then
* only empty rules are changed.
*/
void initialize_gauss_quadrature(unsigned int n_cell_points,
std::size_t memory_consumption () const;
/**
- * The set of update flags
- * for boundary cell integration.
+ * The set of update flags for boundary cell integration.
*
- * Defaults to
- * #update_JxW_values.
+ * Defaults to #update_JxW_values.
*/
UpdateFlags cell_flags;
/**
- * The set of update flags
- * for boundary face integration.
+ * The set of update flags for boundary face integration.
*
- * Defaults to
- * #update_JxW_values and
- * #update_normal_vectors.
+ * Defaults to #update_JxW_values and #update_normal_vectors.
*/
UpdateFlags boundary_flags;
/**
- * The set of update flags
- * for interior face integration.
+ * The set of update flags for interior face integration.
*
- * Defaults to
- * #update_JxW_values and
- * #update_normal_vectors.
+ * Defaults to #update_JxW_values and #update_normal_vectors.
*/
UpdateFlags face_flags;
/**
- * The set of update flags
- * for interior face integration.
+ * The set of update flags for interior face integration.
*
- * Defaults to
- * #update_default, since
- * quadrature weights are
- * taken from the other cell.
+ * Defaults to #update_default, since quadrature weights are taken
+ * from the other cell.
*/
UpdateFlags neighbor_flags;
/**
- * The quadrature rule used
- * on cells.
+ * The quadrature rule used on cells.
*/
Quadrature<dim> cell_quadrature;
/**
- * The quadrature rule used
- * on boundary faces.
+ * The quadrature rule used on boundary faces.
*/
Quadrature<dim-1> boundary_quadrature;
/**
- * The quadrature rule used
- * on interior faces.
+ * The quadrature rule used on interior faces.
*/
Quadrature<dim-1> face_quadrature;
/* @} */
/* @{ */
/**
- * Initialize the
- * VectorSelector objects
- * #cell_selector,
- * #boundary_selector and
- * #face_selector in order to
- * save computational
- * effort. If no selectors
- * are used, then values for
- * all named vectors in
- * DoFInfo::global_data will be
- * computed in all quadrature
- * points.
+ * Initialize the VectorSelector objects #cell_selector,
+ * #boundary_selector and #face_selector in order to save
+ * computational effort. If no selectors are used, then values for
+ * all named vectors in DoFInfo::global_data will be computed in
+ * all quadrature points.
*
- * This function will also
- * add UpdateFlags to the
- * flags stored in this class.
+ * This function will also add UpdateFlags to the flags stored in
+ * this class.
*/
/**
- * Select the vectors from
- * DoFInfo::global_data
- * that should be computed in
- * the quadrature points on cells.
+ * Select the vectors from DoFInfo::global_data that should be
+ * computed in the quadrature points on cells.
*/
MeshWorker::VectorSelector cell_selector;
/**
- * Select the vectors from
- * DoFInfo::global_data
- * that should be computed in
- * the quadrature points on
- * boundary faces.
+ * Select the vectors from DoFInfo::global_data that should be
+ * computed in the quadrature points on boundary faces.
*/
MeshWorker::VectorSelector boundary_selector;
/**
- * Select the vectors from
- * DoFInfo::global_data
- * that should be computed in
- * the quadrature points on
- * interior faces.
+ * Select the vectors from DoFInfo::global_data that should be
+ * computed in the quadrature points on interior faces.
*/
MeshWorker::VectorSelector face_selector;
*/
/* @{ */
/**
- * A callback function which is
- * called in the loop over all
- * cells, after the action on a
- * cell has been performed and
- * before the faces are dealt
- * with.
+ * A callback function which is called in the loop over all cells,
+ * after the action on a cell has been performed and before the
+ * faces are dealt with.
*
- * In order for this function
- * to have this effect,
- * at least either of the
- * arguments
- * <tt>boundary_worker</tt> or
- * <tt>face_worker</tt>
- * arguments of loop() should
- * be nonzero. Additionally,
- * <tt>cells_first</tt> should
- * be true. If
- * <tt>cells_first</tt> is
- * false, this function is
- * called before any action on
- * a cell is taken.
+ * In order for this function to have this effect, at least either
+ * of the arguments <tt>boundary_worker</tt> or
+ * <tt>face_worker</tt> arguments of loop() should be
+ * nonzero. Additionally, <tt>cells_first</tt> should be true. If
+ * <tt>cells_first</tt> is false, this function is called before
+ * any action on a cell is taken.
*
- * And empty function in this
- * class, but can be replaced
- * in other classes given to
- * loop() instead.
+ * And empty function in this class, but can be replaced in other
+ * classes given to loop() instead.
*
- * See loop() and cell_action()
- * for more details of how this
+ * See loop() and cell_action() for more details of how this
* function can be used.
*/
template <class DOFINFO>
void post_cell(const DoFInfoBox<dim, DOFINFO> &);
/**
- * A callback function which is
- * called in the loop over all
- * cells, after the action on
- * the faces of a cell has been
- * performed and before the
- * cell itself is dealt with
- * (assumes
+ * A callback function which is called in the loop over all cells,
+ * after the action on the faces of a cell has been performed and
+ * before the cell itself is dealt with (assumes
* <tt>cells_first</tt> is false).
*
- * In order for this function
- * to have a reasonable effect,
- * at least either of the
- * arguments
- * <tt>boundary_worker</tt> or
- * <tt>face_worker</tt>
- * arguments of loop() should
- * be nonzero. Additionally,
- * <tt>cells_first</tt> should
- * be false.
+ * In order for this function to have a reasonable effect, at
+ * least either of the arguments <tt>boundary_worker</tt> or
+ * <tt>face_worker</tt> arguments of loop() should be
+ * nonzero. Additionally, <tt>cells_first</tt> should be false.
*
- * And empty function in this
- * class, but can be replaced
- * in other classes given to
- * loop() instead.
+ * And empty function in this class, but can be replaced in other
+ * classes given to loop() instead.
*
- * See loop() and cell_action()
- * for more details of how this
+ * See loop() and cell_action() for more details of how this
* function can be used.
*/
template <class DOFINFO>
*/
CellInfo cell;
/**
- * The info object for a
- * boundary face.
+ * The info object for a boundary face.
*/
CellInfo boundary;
/**
- * The info object for a
- * regular interior face, seen
- * from the first cell.
+ * The info object for a regular interior face, seen from the
+ * first cell.
*/
CellInfo face;
/**
- * The info object for the
- * refined side of an interior
- * face seen from the first
- * cell.
+ * The info object for the refined side of an interior face seen
+ * from the first cell.
*/
CellInfo subface;
/**
- * The info object for an
- * interior face, seen from the
- * other cell.
+ * The info object for an interior face, seen from the other cell.
*/
CellInfo neighbor;