|
peclet.voro 1.0.4
Device-native moving-particle Voronoi dynamics
|
Track C, rung C2a′ (Voronoi methods plan): the discrete-exterior-calculus (Nicolaides covolume) vector Laplacian of the face-normal flux field, Δu = grad div u − curl curl u, on the Voronoi–Delaunay pair. More...
#include <Kokkos_Core.hpp>#include "peclet/voro/fv/mesh.hpp"#include "peclet/voro/fv/operators.hpp"#include "peclet/voro/tessellation_view.hpp"

Go to the source code of this file.
Classes | |
| struct | peclet::voro::fv::DecEdges< Real > |
Namespaces | |
| namespace | peclet |
| namespace | peclet::voro |
| Device-native Voronoi tessellation, geometry and finite-volume physics. | |
| namespace | peclet::voro::fv |
Functions | |
| template<class Real > | |
| DecEdges< Real > | peclet::voro::fv::buildDecEdges (const TessellationView< Real > &view, const FaceMesh< Real > &m) |
Build the DEC edge structure. facetOfFace-style inverse maps are built here from the mesh. | |
| template<class Real > | |
| void | peclet::voro::fv::decLaplacian (const FaceMesh< Real > &m, const DecEdges< Real > &d, const DV< Real > &u, const DV< Real > &divScratch, const DV< Real > &out) |
Track C, rung C2a′ (Voronoi methods plan): the discrete-exterior-calculus (Nicolaides covolume) vector Laplacian of the face-normal flux field, Δu = grad div u − curl curl u, on the Voronoi–Delaunay pair.
The face flux u_f is the primal 1-form on the Delaunay edge e = (A, B) (value u_f d_f). Its exterior derivative lives on the Delaunay triangles t = (A, B, k), each dual to a Voronoi EDGE ε of the face f (the edge where f's plane meets the plane toward k): the circulation Γ_t = u_{AB} d_{AB} + u_{Bk} d_{Bk} + u_{kA} d_{kA} (loop A → B → k → A), so that ω·t̂ = Γ_t / |t| is the vorticity along ε, and Stokes on the face polygon gives (curl ω)·n_f = (1/A_f) Σ_{ε∈∂f} ℓ_ε Γ_t / |t| (the loop orientation A→B→k makes t̂ = (r_AB × r_Ak)/|…| the counterclockwise traversal direction of ε about n_f, so every sign is +). With the Hodge stars ⋆₁ = A_f/d_f and ⋆₂ = ℓ_ε/|t| this is exactly −⋆₁⁻¹ dᵀ ⋆₂ d: symmetric negative semidefinite in ⟨·,·⟩_F — the viscous term is dissipative to round-off, unlike the Perot-reconstructed Rᵀ Δ₂ R only approximately (C2a). grad div: the two-point face gradient of the cell divergence (C1).
Inputs: the face mesh plus the view's facet-edge CSR with edge lengths (withAreaGrad, edgeLength). Single rank (the third leg B–k needs cell B's facets; ghosts have none). Faces adjacent to walls are skipped (their triangles are undefined): the caller keeps the two-point wall treatment there.