peclet.voro 1.0.4
Device-native moving-particle Voronoi dynamics
Loading...
Searching...
No Matches
dec.hpp File Reference

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"
Include dependency graph for dec.hpp:
This graph shows which files directly or indirectly include this file:

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)
 

Detailed Description

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.