template<>
Rodin::Geometry::SubMesh<Context::Sequential> class final

A SubMesh object represents a subregion of a Mesh object.

A SubMesh object contains a reference to the parent Mesh object. It also contains information regarding the mapping of elements and vertices between the child and parent Mesh.

A Mesh which is also a SubMesh may be casted into down to access the SubMesh functionality. For example:

if (mesh.isSubMesh())
{
  // Cast is well defined
  auto& submesh = static_cast<SubMesh<Context::Sequential>&>(mesh);
}

Alternatively, you can use the asSubMesh() to access the SubMeshBase interface:

if (mesh.isSubMesh())
{
  // Cast is well defined
  auto& submesh = mesh.asSubMesh();
}

Base classes

template<>
class Mesh<Context::Sequential>
Represents the subdivision of some domain into faces of (possibly) different geometries.

Public types

template<>
class Builder
Class used to build SubMesh<Context::Sequential> instances.

Public functions

auto restriction(const Point& p) const -> std::optional<Point> override
Represents the restriction of a Point of a Mesh $ P $ into a Point of a SubMesh $ C $ .
auto isSubMesh() const -> bool override
Indicates whether the mesh is a submesh or not.
auto getParent() const -> const Mesh<Context>& override
auto getPolytopeMap(size_t d) const -> const boost::bimap<Index, Index>& override
Gets the map of polytope indices from the SubMesh to the parent Mesh.

Function documentation

template<>
bool Rodin::Geometry::SubMesh<Context::Sequential>::isSubMesh() const override

Indicates whether the mesh is a submesh or not.

Returns True if mesh is a submesh, false otherwise.

A Mesh which is also a SubMesh may be casted into down to access the SubMesh functionality. For example:

if (mesh.isSubMesh())
{
  // Cast is well defined
  auto& submesh = static_cast<SubMesh&>(mesh);
}

template<>
const Mesh<Context>& Rodin::Geometry::SubMesh<Context::Sequential>::getParent() const override

Returns Reference to the parent Mesh object