![]() |
Classes | |
class | Boundary< dim, spacedim > |
class | StraightBoundary< dim, spacedim > |
class | CylinderBoundary< dim > |
class | HyperBallBoundary< dim, spacedim > |
class | HalfHyperBallBoundary< dim > |
class | HyperShellBoundary< dim > |
class | HalfHyperShellBoundary< dim > |
On the other hand, if one deals with curved boundaries, this is not the appropriate thing to do. The classes derived from the Boundary base class therefore describe the geometry of a domain. One can then attach an object of a class derived from this base class to the Triangulation object using the Triangulation::set_boundary() function. Several classes exist to support the most common geometries.
In the context of triangulations, each face of a cell that is located at the boundary of the domain stores a number called boundary_id
that uniquely identifies which part of the boundary this face is on. If nothing is specified at creation time, each boundary face has a zero boundary id. On the other hand, the boundary id of faces can be set either at creation time or later by looping over all cells and querying their faces.
It is then possible to associate objects describing the boundary to certain boundary_id values used in a triangulation. Note that this is not necessary: in some cases one may want to use the default straight boundary approximation, and use non-zero boundary indicators for completely different purposes, for example to indicate that a part of the boundary has a different kind of boundary condition in the partial differential equation.