Rodin/Geometry/Mesh.h file

Core mesh data structure for finite element computations.

This file defines the main Mesh class and related utilities for representing and manipulating unstructured finite element meshes. The Mesh class provides:

  • Topology management through connectivity relations
  • Geometry storage and access
  • Mesh generation and I/O operations
  • Iterators for traversing mesh entities
  • Support for submeshes and domain decomposition
  • Attribute-based region marking

Namespaces

namespace Rodin
The Rodin library for finite element methods and shape optimization.
namespace Rodin::FormLanguage
Typed expressions for constructing variational forms.
namespace Rodin::Geometry
Meshes, geometric transformations, and mapped evaluation.

Classes

template<class Context>
struct Rodin::FormLanguage::Traits<Geometry::Mesh<Context>>
Traits specialization for Mesh types.
class Rodin::Geometry::CCL
Mesh data structures, geometric operations, and computational geometry utilities.
class Rodin::Geometry::MeshBase
Abstract base class for all mesh implementations.
template<>
class Rodin::Geometry::Mesh<Context::Local>
Represents the subdivision of some domain into faces of (possibly) different geometries.
template<>
class Rodin::Geometry::Mesh<Context::Local>::Builder
Class used to build Mesh<Context::Local> instances.

Defines

#define RODIN_GEOMETRY_REQUIRE_INCIDENCE(mesh, d, dp)
Requires connectivity $ d \rightarrow d' $ to be computed.
#define RODIN_GEOMETRY_MESH_REQUIRE_INCIDENCE(d, dp)
Requires connectivity $ d \rightarrow d' $ (for use in member functions).
#define RODIN_GEOMETRY_MESH_REQUIRE_SUBMESH()
Requires mesh to be a SubMesh.

Define documentation

#define RODIN_GEOMETRY_REQUIRE_INCIDENCE(mesh, d, dp)

Requires connectivity $ d \rightarrow d' $ to be computed.

Parameters
mesh Mesh instance to check
d Source dimension
dp Target dimension

Throws an exception if the specified connectivity relation has not been computed for the mesh. Connectivity must be explicitly computed using mesh.getConnectivity().compute(d, dp) before operations that depend on it.

#define RODIN_GEOMETRY_MESH_REQUIRE_INCIDENCE(d, dp)

Requires connectivity $ d \rightarrow d' $ (for use in member functions).

Parameters
d Source dimension
dp Target dimension

Throws an exception if the specified connectivity relation has not been computed. This macro is for use inside mesh member functions.

#define RODIN_GEOMETRY_MESH_REQUIRE_SUBMESH()

Requires mesh to be a SubMesh.

Throws an exception if the mesh is not a SubMesh instance, preventing invalid downcasting operations.