Notation

Explanation of the notation used throughout the documentation.

Most of the notation follows the same principles as that of [5].

Notation regarding geometry

Please see the table below for a description of the symbols used for geometric objects:

NotationDescription
$ \Omega $ Denotes a domain with Lipschitz boundary.
$ \partial \Omega $ Denotes the Lipschitz boundary of the domain $ \Omega $ .
$ \Gamma_D $ The Dirichlet part of the boundary where essential conditions are imposed.
$ \Gamma_N $ The Neumann part of the boundary where natural conditions are imposed.
$ \mathcal{T}_h $ Denotes a polyhedral complex (mesh) which discretizes the domain $ \Omega $ . The subscript $ h $ refers to the mesh size parameter. In Rodin, this is represented by the Mesh class.
$ \mathcal{F}_h $ Represents the set of all faces in the mesh $ \mathcal{T}_h $ .
$ \mathcal{B}_h $ Represents the boundary faces of the mesh $ \mathcal{T}_h $ . A face is on the boundary if it belongs to exactly one cell.
$ \mathcal{I}_h $ Represents the interior faces (interfaces) of the mesh $ \mathcal{T}_h $ . An interior face belongs to exactly two cells.
$ K $ A single cell (element) of the mesh $ \mathcal{T}_h $ . Each cell is a Polytope (triangle, tetrahedron, etc.).
$ \hat{K} $ The reference element. All local computations (basis function evaluation, quadrature) are performed on $ \hat{K} $ and mapped to each physical cell $ K $ .
$ F_K $ The geometric transformation $ F_K : \hat{K} \to K $ mapping the reference element to the physical cell. Its Jacobian is accessible via Point::getJacobian().
$ h $ Mesh size parameter: the maximum diameter over all cells $ K \in \mathcal{T}_h $ .
$ d $ The topological dimension of the mesh (2 for surface meshes, 3 for volumetric). Retrieved by Mesh::getDimension().
$ \mathbf{n} $ The outward unit normal vector on $ \partial \Omega $ or on a face.

Notation regarding function spaces

NotationDescription
$ L^2(\Omega) $ The space of square-integrable functions on $ \Omega $ .
$ H^1(\Omega) $ The Sobolev space of functions in $ L^2(\Omega) $ whose gradient is also in $ L^2(\Omega) $ .
$ H^1_0(\Omega) $ The subspace of $ H^1(\Omega) $ with zero trace on $ \partial \Omega $ (homogeneous Dirichlet).
$ V_h $ A finite element space built on the mesh $ \mathcal{T}_h $ . Subscript $ h $ indicates discrete. In Rodin, created by instantiating P0, P1, or H1.
$ \mathbb{P}_k $ The space of polynomials of total degree at most $ k $ .
$ P_0 $ Piecewise constant functions on each cell. In Rodin: P0. One DOF per cell, discontinuous across cell boundaries.
$ P_1 $ Piecewise linear, globally continuous functions. In Rodin: P1. One DOF per vertex, $ H^1 $ -conforming.
$ H^1_k $ Continuous piecewise polynomials of degree $ k $ . In Rodin: H1<k>. DOFs on vertices, edges, and cell interiors.

Notation regarding variational methods

NotationDescription
$ u $ The trial function (unknown, sought solution). Corresponds to TrialFunction in Rodin.
$ v $ The test function (weighting function). Corresponds to TestFunction in Rodin.
$ u_h $ The discrete (finite element) approximation of $ u $ . After solving, its coefficients are stored in the GridFunction associated with the trial function.
$ a(u, v) $ A bilinear form: linear in both $ u $ and $ v $ . Built from Integral expressions involving both trial and test functions. Assembled into the system matrix $ A $ .
$ \ell(v) $ A linear form: linear in $ v $ only. Built from Integral expressions involving only the test function. Assembled into the right-hand side vector $ \mathbf{b} $ .
$ f $ A source term or right-hand-side function. In Rodin, represented as a RealFunction or a lambda.
$ g $ A boundary data function (Dirichlet or Neumann data).

Notation regarding differential operators

NotationRodin codeDescription
$ \nabla u $ Grad(u)Gradient of a scalar field. Returns a vector of dimension $ d $ .
$ \nabla \cdot \mathbf{u} $ Div(u)Divergence of a vector field. Returns a scalar.
$ \Delta u $ Laplacian. Not used directly; appears via integration by parts as Integral(Grad(u), Grad(v)).
$ \nabla \mathbf{u} $ Jacobian(u)Jacobian (gradient) of a vector field. Returns a $ d \times d $ matrix.
$ \nabla \mathbf{u}^T $ Transpose(Jacobian(u))Transpose of the Jacobian.
$ \varepsilon(\mathbf{u}) $ See belowSymmetric gradient (linearized strain tensor): $ \frac{1}{2}(\nabla \mathbf{u} + \nabla \mathbf{u}^T) $ .
$ \mathrm{tr}(A) $ Trace(A)Trace of a matrix: $ \mathrm{tr}(A) = \sum_i A_{ii} $ .
$ A : B $ Dot(A, B)Frobenius (double-contraction) inner product of two matrices: $ A : B = \sum_{ij} A_{ij} B_{ij} $ .
$ \|A\|_F $ Frobenius(A)Frobenius norm: $ \|A\|_F = \sqrt{A : A} $ .
$ u_i $ Component(u, i)The $ i $ -th component of a vector function (0-indexed). Shorthand: u.x(), u.y(), u.z().

Notation regarding integrals

NotationRodin codeDescription
$ \int_\Omega f \, v \, dx $ Integral(f, v)Domain integral of $ f \cdot v $ . When both arguments are scalar, this is ordinary multiplication. When both are vectors, it is the dot product.
$ \int_\Omega \nabla u \cdot \nabla v \, dx $ Integral(Grad(u), Grad(v))Stiffness integral. The dot product of the two gradient vectors is taken automatically.
$ \int_\Omega u \, v \, dx $ Integral(u, v)Mass integral.
$ \int_{\Gamma_N} g \, v \, ds $ BoundaryIntegral(g, v).over(GammaN)Boundary integral on $ \Gamma_N $ . The .over() method restricts the integration to boundary faces with the given attribute.
$ \int_{\mathcal{F}_h} h \, v \, ds $ FaceIntegral(h, v)Integral over all faces (interior and boundary).
$ \int_{\mathcal{F}_h^i} h \, v \, ds $ InterfaceIntegral(h, v)Integral over interior faces only (excluding boundary).

Notation regarding DG operators

NotationRodin codeDescription
$ [u] = u^+ - u^- $ Jump(u)Jump of $ u $ across an internal face.
$ \{u\} = \frac{1}{2}(u^+ + u^-) $ Average(u)Average of $ u $ across an internal face.

Special Functions and Operators

NotationRodin codeDescription
$ \mathbf{n} $ BoundaryNormal(mesh)Outward unit normal on $ \partial\Omega $ . Used in boundary integrals.
$ \mathbf{n}_F $ FaceNormal(mesh)Unit normal on mesh faces. Used in DG formulations for numerical fluxes.
$ x, y, z $ F::x, F::y, F::zCoordinate projection functions. E.g., F::x returns the $ x $ -coordinate at a point.
$ I_n $ IdentityMatrix(n) $ n \times n $ identity matrix function.
$ \operatorname{Re}(u) $ Re(u)Real part of a complex-valued function.
$ \operatorname{Im}(u) $ Im(u)Imaginary part of a complex-valued function.
$ \bar{u} $ Conjugate(u)Complex conjugate of a complex-valued function.
$ 0 $ Zero()Zero function (scalar or vector, deduced from context).

Notation regarding solid mechanics

NotationRodin codeDescription
$ \boldsymbol{\varepsilon}(\mathbf{u}) $ 0.5 * (Jacobian(u) + Transpose(Jacobian(u)))Infinitesimal (linearized) strain tensor.
$ \boldsymbol{\sigma} $ Cauchy stress tensor (Hooke's law).
$ \lambda, \mu $ lambda, muLamé parameters: $ \lambda = \frac{E\nu}{(1+\nu)(1-2\nu)} $ , $ \mu = \frac{E}{2(1+\nu)} $ .
$ \mathbf{F} $ KinematicState::getDeformationGradient()Deformation gradient $ \mathbf{F} = \mathbf{I} + \nabla\mathbf{u} $ .
$ J $ KinematicState::getJacobian() $ J = \det\mathbf{F} $ .
$ \mathbf{C} $ KinematicState::getRightCauchyGreenTensor()Right Cauchy-Green tensor $ \mathbf{C} = \mathbf{F}^T\mathbf{F} $ .
$ \mathbf{E} $ Green-Lagrange strain $ \mathbf{E} = \frac{1}{2}(\mathbf{C} - \mathbf{I}) $ .
$ \mathbf{P} $ Solid::FirstPiolaKirchhoffStressFirst Piola-Kirchhoff stress $ \mathbf{P} = \partial W / \partial \mathbf{F} $ .
$ I_1, I_2, I_3 $ IsotropicInvariantsPrincipal invariants of $ \mathbf{C} $ .
$ W(\mathbf{F}) $ Strain energy density function (hyperelastic stored energy).

Notation regarding integral equations

NotationRodin codeDescription
$ \int_\Omega K(\mathbf{x}, \mathbf{y}) f(\mathbf{y}) \, d\mathbf{y} $ Potential(K, f)Integral convolution with kernel $ K $ .