Reference documentation for deal.II version GIT 92344eb39a 2023-03-23 02:40:02+00:00
SubCellData Struct Reference

#include <deal.II/grid/tria_description.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 238 of file tria_description.h.

## ◆ 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 69 of file tria_description.cc.

## ◆ boundary_lines

 std::vector > SubCellData::boundary_lines

A vector of CellData<1> objects that describe boundary and manifold information for edges of 2d or 3d triangulations. For 2d triangulations, edges (lines) are of course the faces of the cells.

This vector must not be used in the creation of 1d triangulations.

Definition at line 247 of file tria_description.h.

## ◆ boundary_quads

 std::vector > SubCellData::boundary_quads

A vector of CellData<2> objects that describe boundary and manifold information for triangles and quads of 3d triangulations. The name of the variable is historical and dates back to a time when deal.II only supported hexahedral meshes in 3d, where then all boundary faces were necessarily quadrilaterals. However, the variable is now also used to describe boundary triangles for tetrahedral and mixed meshes.

Whether an element in this array describes a boundary triangle or a boundary quad is determined by how many elements the vertices member variable of CellData<2> stores.

This vector must not be used in the creation of 1d or 2d triangulations.

Definition at line 263 of file tria_description.h.

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