Geometry Module module

Mesh data structures, geometric operations, and computational geometry utilities.

The Geometry module provides comprehensive support for mesh generation, manipulation, and geometric computations in finite element analysis. It includes data structures for representing meshes, connectivity information, geometric transformations, and algorithms for mesh processing.

Key Components

Mesh Data Structures

  • Mesh: Core unstructured mesh class with support for mixed element types
  • SubMesh: Mesh representing a subregion of a parent mesh
  • Shard: Mesh shard for distributed parallel computing

Connectivity Management

  • Automatic computation of incidence relations $ d \rightarrow d' $
  • Efficient storage using sparse data structures
  • Support for arbitrary polytope dimensions

Geometric Transformations

  • Reference-to-physical element mappings
  • Isoparametric transformations
  • Jacobian computations

Mesh Generation

  • Structured mesh generation (uniform grids)
  • Support for various file formats (MFEM, GMSH, MEDIT)
  • Mesh refinement and coarsening

Partitioning

  • Domain decomposition for parallel computing
  • Ghost polytope tracking
  • Load balancing strategies

Mathematical Foundation

A mesh $ \mathcal{T}_h $ is a partition of a domain $ \Omega $ :

\[ \Omega = \bigcup_{K \in \mathcal{T}_h} K \]

where each element $ K $ is a polytope (simplex or hypercube).

Classes

class Rodin::Geometry::MeshBase
Abstract base class for all mesh implementations.
class Rodin::Geometry::Polytope
Base class for all geometric elements in finite element meshes.