Rodin namespace
The Rodin library for finite element methods and shape optimization.
Rodin is a lightweight and modular C++20 finite element framework providing tools for solving partial differential equations and performing shape and topology optimization. Key modules include:
- Geometry — Meshes, polytopes, and connectivity
- Variational — Finite element spaces, trial/test functions, and variational problem formulation
- IO — Input/output in MFEM, MEDIT, HDF5, and XDMF formats
- Solver — Linear and iterative solvers (CG, GMRES, SparseLU)
- Assembly — Assembly of stiffness matrices and load vectors
Namespaces
- namespace Adaptation
- Mesh adaptation and deformation operations.
- namespace FormLanguage
- Typed expressions for constructing variational forms.
- namespace Advection
- Transport and advection of fields.
- namespace Alert
- Contextual exceptions and diagnostic reporting.
- namespace Assembly
- Global assembly of discrete operators.
- namespace Context
- Execution contexts for local and distributed computation.
- namespace Distance
- Distance-field computations.
- namespace Eikonal
- Eikonal equations and distance propagation.
- namespace Geometry
- Meshes, geometric transformations, and mapped evaluation.
- namespace Heart
- Cardiac models and their coupled state evolution.
- namespace Hilbert
- Hilbert-space formulations and regularization.
- namespace IO
- Reading and writing meshes, fields, and associated data.
- namespace Location
- Spatial indexing and geometric search.
- namespace Math
- Spatial arithmetic, matrix operations, and sparse linear algebra.
- namespace MMG
- Mesh adaptation through the MMG integration.
- namespace MPI
- Distributed meshes, finite element spaces, and search operations.
- namespace Variational
- Finite element spaces, fields, and variational problems.
- namespace PETSc
- PETSc integration module for Rodin.
- namespace Solver
- Solution of linear and nonlinear discrete systems.
- namespace QF
- Module for defining quadrature formulae over reference polytopes.
- namespace Scotch
- Graph partitioning through the Scotch integration.
- namespace Solid
- Constitutive laws, kinematics, and solid-mechanics integration.
- namespace Test
- Helpers for constructing numerical tests.
- namespace Utility
- Type utilities and generic programming helpers.
- namespace Tests
- Tests of the Rodin library
Classes
- struct IndexArrayCompare
- Functor for lexicographically ordering index arrays.
- struct IndexArrayEquality
- Functor for comparing two index arrays for equality.
-
template<class From, class To>class Cast
- Template class for type casting operations.
- class Copyable
- Abstract base class for objects that can be copied.
- struct IndexSetEquality
- Functor for comparing two IndexSet objects for equality.
- struct IndexSetHash
- Functor for computing a hash value for an IndexSet.
-
template<class L, class R>class Pair
- Forward declaration of the Pair template class.
-
template<class ... Ts>class Tuple
- Forward declaration of the Tuple template class.
- struct DefaultSentinelT
- Sentinel type for default-constructed iterators.
- class Identifiable
- Abstract base class for objects that can be copied.
- class Moveable
- Abstract base class for objects that can be moved.
Typedefs
-
template<class ScalarType>using Array = Eigen::ArrayX<ScalarType>
- Alias for a dynamically sized array.
- using IndexArray = Array<Index>
- Alias for an index array.
- using Integer = int
- Standard type for representing integer values.
- using Boolean = bool
- Standard type for representing boolean values.
- using Float = float
- Standard type for representing (32 bit) floating-point values.
- using Double = double
- Standard type for representing double precision (64 bit) floating-point values.
- using Index = std::size_t
- Standard type for representing indices.
- using Real = Double
- Standard type for representing scalar values.
- using Complex = std::complex<Real>
- Standard type for representing complex values.
-
template<class T>using List = boost::container::list<T>
- Standard type for representing lists.
-
template<class T>using Deque = boost::container::deque<T>
- Standard type for representing deques.
Functions
-
template<class L, class R>Pair(L lhs, R rhs) -> Pair< L, R >
- Deduction guide for the Pair class.
- Tuple() -> Tuple<>
- Deduction guide for the empty tuple.
-
template<class... Params>Tuple(Params... params) -> Tuple< Params... >
- Deduction guide for a tuple from its constructor arguments.
-
template<Index First, Index Last>static auto IndexTuple() -> auto constexpr
- Generates a tuple of indices.
- auto operator""_UZ(unsigned long long x) -> std::size_t constexpr
- User-defined literal for size_t values.
Variables
- DefaultSentinelT DefaultSentinel constexpr
- Default sentinel value.
Typedef documentation
template<class ScalarType>
using Array = Eigen::ArrayX<ScalarType>
Defined in Rodin/Array.h
Alias for a dynamically sized array.
| Template parameters | |
|---|---|
| ScalarType | The scalar type of the array. |
This template alias defines a standard array type based on Eigen::ArrayX.
using IndexArray = Array<Index>
Defined in Rodin/Array.h
Alias for an index array.
This alias defines an index array using the standard array type with a predefined index type.
using Float = float
Defined in Rodin/Types.h
Standard type for representing (32 bit) floating-point values.
using Double = double
Defined in Rodin/Types.h
Standard type for representing double precision (64 bit) floating-point values.
using Complex = std::complex<Real>
Defined in Rodin/Types.h
Standard type for representing complex values.
template<class T>
using List = boost::container::list<T>
Defined in Rodin/Types.h
Standard type for representing lists.
template<class T>
using Deque = boost::container::deque<T>
Defined in Rodin/Types.h
Standard type for representing deques.
Function documentation
Pair
Defined in Rodin/Pair.h
See declaration
Deduction guide for the Pair class.
| Template parameters | |
|---|---|
| L | Type of the first element. |
| R | Type of the second element. |
| Parameters | |
| lhs | Left element. |
| rhs | Right element. |
This guide allows the compiler to deduce the template arguments for L and R when constructing a Pair object.
Tuple
Defined in Rodin/Tuple.h
See declaration
Deduction guide for the empty tuple.
Tuple
Defined in Rodin/Tuple.h
See declaration
Deduction guide for a tuple from its constructor arguments.
| Template parameters | |
|---|---|
| Params | Element types. |
| Parameters | |
| params | Tuple element values. |
template<Index First, Index Last>
static auto IndexTuple() constexpr
Defined in Rodin/Tuple.h
Generates a tuple of indices.
| Template parameters | |
|---|---|
| First | The starting index. |
| Last | One past the last index. |
| Returns | A tuple containing indices from First to Last-1. |
std::size_t operator""_UZ(unsigned long long x) constexpr
Defined in Rodin/Types.h
User-defined literal for size_t values.
| Parameters | |
|---|---|
| x | Unsigned long long value to convert |
| Returns | size_t value |
Variable documentation
DefaultSentinelT Rodin:: DefaultSentinel constexpr
Defined in Rodin/Geometry/IndexGenerator.h
Default sentinel value.