Discrete de Rham sequence
The FEEC layer makes the sequence explicit in code and diagnostics.
Sequence
On triangulated surfaces:
0 -> Λh0 --d0--> Λh1 --d1--> Λh2 -> 0
where:
Λh0: vertex DOFs,Λh1: oriented edge DOFs,Λh2: oriented face DOFs.
API
build_whitney_complex(mesh, geom)build_de_rham_sequence(mesh, geom)de_rham_report(complex)verify_subcomplex(complex)
What de_rham_report provides
- DOF counts (
ndofs0,ndofs1,ndofs2), - sparsity metrics (
nnz_d0,nnz_d1,nnz_M*), - exactness residual
||d1*d0||, - mass symmetry and basic positivity diagnostics.
Minimal example
using FrontIntrinsicOps
mesh = generate_torus(1.0, 0.35, 12, 10)
geom = compute_geometry(mesh)
W = build_de_rham_sequence(mesh, geom)
println(verify_subcomplex(W; atol=1e-12))
println(de_rham_report(W).exactness_residuals)Limitations and non-goals
- This is an explicit lowest-order sequence layer.
- No higher-order
P_r/P_r^-families yet. - No replacement of existing DEC core operators.