Reference documentation for deal.II version 9.0.0
Public Member Functions | Public Attributes | List of all members
SubCellData Struct Reference

#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
 

Detailed Description

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.

Definition at line 241 of file tria.h.

Member Function Documentation

◆ check_consistency()

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.

Definition at line 47 of file tria.cc.

Member Data Documentation

◆ boundary_lines

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.

Definition at line 249 of file tria.h.

◆ boundary_quads

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.

Definition at line 257 of file tria.h.


The documentation for this struct was generated from the following files: