Reference documentation for deal.II version 9.1.1
|
#include <deal.II/grid/tria.h>
Public Member Functions | |
bool | check_consistency (const unsigned int dim) const |
Public Attributes | |
std::vector< CellData< 1 > > | boundary_lines |
std::vector< CellData< 2 > > | boundary_quads |
The SubCellData class is used to describe information about faces and edges at the boundary of a mesh when creating a triangulation via Triangulation::create_triangulation(). It contains member variables that describe boundary edges and boundary quads.
The class has no template argument and is used both in the description of boundary edges in 2d (in which case the contents of the boundary_quads
member variable are ignored), as well as in the description of boundary edges and faces in 3d (in which case both the boundary_lines
and boundary_quads
members may be used). It is also used as the argument to Triangulation::create_triangulation() in 1d, where the contents of objects of the current type are simply ignored.
By default, Triangulation::create_triangulation() simply assigns default boundary indicators and manifold indicators to edges and quads at the boundary of the mesh. (See the glossary entries on boundary ids and manifold ids for more information on what they represent.) As a consequence, it is not necessary to explicitly describe the properties of boundary objects. In all cases, these properties can also be set at a later time, once the triangulation has already been created. On the other hand, it is sometimes convenient to describe boundary indicators or manifold ids at the time of creation. In these cases, the current class can be used by filling the boundary_lines
and boundary_quads
vectors with CellData<1> and CellData<2> objects that correspond to boundary edges and quads for which properties other than the default values should be used.
Each entry in the boundary_lines
and boundary_quads
vectors then needs to correspond to an edge or quad of the cells that are described by the vector of CellData objects passed to Triangulation::create_triangulation(). I.e., the vertex indices stored in each entry need to correspond to an edge or face of the triangulation that has the same set of vertex indices, and in the same order. For these boundary edges or quads, one can then set either or both the CellData::boundary_id and CellData::manifold_id.
There are also use cases where one may want to set the manifold id of an interior edge or face. Such faces, identified by their vertex indices, may also appear in the boundary_lines
and boundary_quads
vectors (despite the names of these member variables). However, it is then obviously not allowed to set a boundary id (because the object is not actually part of the boundary). As a consequence, to be valid, the CellData::boundary_id of interior edges or faces needs to equal numbers::internal_face_boundary_id.
bool SubCellData::check_consistency | ( | const unsigned int | dim | ) | const |
Determine whether the member variables above which may not be used in a given dimension are really empty. In other words, this function returns whether both boundary_lines
and boundary_quads
are empty vectors when dim
equals one, and whether the boundary_quads
vector is empty when dim
equals two.
std::vector<CellData<1> > SubCellData::boundary_lines |
A vector of CellData<1> objects that describe boundary and manifold information for edges of 2d or 3d triangulations.
This vector may not be used in the creation of 1d triangulations.
std::vector<CellData<2> > SubCellData::boundary_quads |
A vector of CellData<2> objects that describe boundary and manifold information for quads of 3d triangulations.
This vector may not be used in the creation of 1d or 2d triangulations.