|
peclet.voro 1.0.4
Device-native moving-particle Voronoi dynamics
|
Track C, rung C1: the discrete operators of the staggered COVOLUME scheme on a face mesh (plan verdict V4) — face-normal fluxes as the primary velocity unknown, cell pressures, the two-point flux (exact on Voronoi orthogonality), and the reconstructions. More...


Go to the source code of this file.
Namespaces | |
| namespace | peclet |
| namespace | peclet::voro |
| Device-native Voronoi tessellation, geometry and finite-volume physics. | |
| namespace | peclet::voro::fv |
Typedefs | |
| template<class Real > | |
| using | peclet::voro::fv::DV = Kokkos::View< Real *, peclet::core::MemSpace > |
Functions | |
| template<class Real > | |
| void | peclet::voro::fv::divergence (const FaceMesh< Real > &m, const DV< Real > &u, const DV< Real > &out) |
| (div u)_i from face-normal fluxes u (nFaces; boundary faces included, along the outward normal). | |
| template<class Real > | |
| void | peclet::voro::fv::faceGradient (const FaceMesh< Real > &m, const DV< Real > &p, const DV< Real > &out, const DV< Real > &pb=DV< Real >{}) |
| template<class Real > | |
| void | peclet::voro::fv::laplacian (const FaceMesh< Real > &m, const DV< Real > &p, const DV< Real > &out, DV< Real > &scratchFace, const DV< Real > &pb=DV< Real >{}) |
L p = div(grad p): the two-point Laplacian (Neumann on boundary faces unless pb is given). | |
| template<class Real > | |
| void | peclet::voro::fv::greenGaussGradient (const FaceMesh< Real > &m, const DV< Real > &p, const DV< Real > &out) |
| Green–Gauss cell gradient (3N): distance-weighted face values, boundary faces use p_A. | |
| template<class Real > | |
| void | peclet::voro::fv::perotVelocity (const FaceMesh< Real > &m, const DV< Real > &u, const DV< Real > &out) |
| Perot reconstruction of the cell velocity (3N) from face-normal fluxes. | |
| template<class Real > | |
| KOKKOS_INLINE_FUNCTION void | peclet::voro::fv::cellSkewInverse (const FaceMesh< Real > &m, int i, Real R[9]) |
| template<class Real > | |
| void | peclet::voro::fv::vectorGreenGauss (const FaceMesh< Real > &m, const DV< Real > &U, const DV< Real > &out, const DV< Real > &Uwall=DV< Real >{}) |
| template<class Real > | |
| void | peclet::voro::fv::projectToFaces (const FaceMesh< Real > &m, const DV< Real > &ucell, const DV< Real > &out, const DV< Real > &gradU=DV< Real >{}, const DV< Real > &ub=DV< Real >{}) |
| template<class Real > | |
| Real | peclet::voro::fv::dotCells (const FaceMesh< Real > &m, const DV< Real > &a, const DV< Real > &b) |
| template<class Real > | |
| Real | peclet::voro::fv::dotFaces (const FaceMesh< Real > &m, const DV< Real > &a, const DV< Real > &b) |
| template<class Real > | |
| void | peclet::voro::fv::faceInterpTranspose (const FaceMesh< Real > &m, const DV< Real > &g, const DV< Real > &out, bool skew=false, const DV< Real > &scratch9=DV< Real >{}, bool wallPrescribed=false, const std::function< void(const DV< Real > &, int)> &exchange={}) |
| template<class Real > | |
| void | peclet::voro::fv::wallGradientLS (const FaceMesh< Real > &m, const DV< Real > &U, const DV< Real > &gradU, const DV< Real > &Uwall, const DV< Real > &out) |
| template<class Real > | |
| int | peclet::voro::fv::poissonCG (const FaceMesh< Real > &m, const DV< Real > &f, const DV< Real > &p, Real tol, int maxIter, Real &resOut) |
Track C, rung C1: the discrete operators of the staggered COVOLUME scheme on a face mesh (plan verdict V4) — face-normal fluxes as the primary velocity unknown, cell pressures, the two-point flux (exact on Voronoi orthogonality), and the reconstructions.
divergence (div u)_i = (1/V_i) Σ_{f∈i} s_if u_f A_f (u_f along the A→B normal) faceGradient (grad p)_f = (p_B − p_A)/d_f (interior), (p_b − p_A)/h_A or 0 (boundary) laplacian L p = div grad p (= Σ A_f/d_f (p_j − p_i)/V_i) greenGauss ∇p_i = (1/V_i) Σ_f s_if p_f A_f n_f, p_f distance-weighted between A and B perot u_i = (1/V_i) Σ_f s_if u_f A_f (c_f − x_i) (exact for a uniform field) plus the discrete inner products that make div and grad ADJOINT to round-off: ⟨p, div u⟩_V = −⟨grad p, u⟩_F, ⟨a,b⟩_V = Σ V_i a_i b_i, ⟨a,b⟩_F = Σ_interior A_f d_f a_f b_f.