Discrete Calculus#
This module implements discrete differential operators on simplicial meshes using two complementary approaches:
Discrete Exterior Calculus (DEC) – a rigorous differential-geometry framework based on Desbrun, Hirani, Leok, and Marsden’s work (arXiv:math/0508341). DEC operators use the primal/dual mesh structure (circumcentric dual volumes, Hodge stars) and produce results that satisfy discrete analogues of Stokes’ theorem.
Weighted Least-Squares (LSQ) – a standard CFD/FEM approach that reconstructs derivatives by fitting polynomials to local neighborhoods. LSQ methods are more flexible (they work for any manifold/codimension) and are generally the recommended default.
Both intrinsic (manifold tangent space) and extrinsic (ambient space) derivatives are supported for manifolds embedded in higher-dimensional spaces.
import torch
from physicsnemo.mesh import Mesh
from physicsnemo.mesh.calculus import (
compute_gradient_points_lsq,
compute_divergence_points_lsq,
compute_curl_points_lsq,
)
# Linear scalar field T = x + 2y on a mesh
mesh.point_data["T"] = mesh.points[:, 0] + 2 * mesh.points[:, 1]
# Gradient via the Mesh method (wraps compute_gradient_points_lsq)
mesh = mesh.compute_point_derivatives(keys="T", method="lsq")
grad_T = mesh.point_data["T_gradient"] # (n_points, n_spatial_dims)
# Divergence and curl via standalone functions
mesh.point_data["velocity"] = mesh.points.clone()
div_v = compute_divergence_points_lsq(mesh, mesh.point_data["velocity"])
curl_v = compute_curl_points_lsq(mesh, mesh.point_data["velocity"]) # 3D only
Key Operators#
Gradient: \(\nabla\varphi\) (scalar \(\to\) vector)
Divergence: \(\operatorname{div}(\mathbf{v})\) (vector \(\to\) scalar)
Curl: \(\operatorname{curl}(\mathbf{v})\) (vector \(\to\) vector, 3D only)
Laplacian: \(\Delta\varphi\) (scalar \(\to\) scalar, Laplace-Beltrami)
API Reference#
Discrete calculus operators for simplicial meshes.
This module implements discrete differential operators using both: 1. Discrete Exterior Calculus (DEC) - rigorous differential geometry framework 2. Weighted Least-Squares (LSQ) reconstruction - standard CFD approach
The DEC implementation follows Desbrun, Hirani, Leok, and Marsden’s seminal work on discrete exterior calculus (arXiv:math/0508341v2).
Key operators: - Gradient: ∇φ (scalar → vector) - Divergence: div(v) (vector → scalar) - Curl: curl(v) (vector → vector, 3D only) - Laplacian: Δφ (scalar → scalar, Laplace-Beltrami operator)
Both intrinsic (manifold tangent space) and extrinsic (ambient space) derivatives are supported for manifolds embedded in higher-dimensional spaces.