|
peclet.voro 1.0.4
Device-native moving-particle Voronoi dynamics
|
Namespaces | |
| namespace | detail |
Functions | |
| template<class Real , class Policy = Voronoi, class Sdf = NoSdf> | |
| Real | interfaceEnergyForce (const TessellationView< Real > &view, const Kokkos::View< int *, peclet::core::MemSpace > &types, const Kokkos::View< Real *, peclet::core::MemSpace > &tension, int nTypes, const Kokkos::View< Real *, peclet::core::MemSpace > &pos, const Kokkos::View< Real *, peclet::core::MemSpace > &weight, Real L, const Kokkos::View< Real *, peclet::core::MemSpace > &force, const Kokkos::View< Real *, peclet::core::MemSpace > &forceW={}, const Sdf &sdf=Sdf{}) |
| template<class Real > | |
| void | cellCentroids (const TessellationView< Real > &view, const Kokkos::View< Real *, peclet::core::MemSpace > &pos, const Kokkos::View< Real *, peclet::core::MemSpace > &out) |
Cell centroids (3N, world = seed + relative) from the facet CSR. pos supplies the seeds. | |
| template<class Real > | |
| Real | lloydEnergyForce (const TessellationView< Real > &view, const Kokkos::View< Real *, peclet::core::MemSpace > &pos, Real gamma, const Kokkos::View< Real *, peclet::core::MemSpace > &force) |
| template<class Real , class Policy = Voronoi, class Sdf = NoSdf> | |
| Real | facetTensionEnergyForce (const TessellationView< Real > &view, Real sigma, const Kokkos::View< Real *, peclet::core::MemSpace > &pos, const Kokkos::View< Real *, peclet::core::MemSpace > &weight, Real L, const Kokkos::View< Real *, peclet::core::MemSpace > &force, const Kokkos::View< Real *, peclet::core::MemSpace > &forceW={}, const Sdf &sdf=Sdf{}) |
| template<class Real > | |
| KOKKOS_INLINE_FUNCTION Real | dTargetVolume (Real V, Real Vref) |
| e(V) = (V/Vref − 1)²: e' = 2 (V/Vref − 1)/Vref. | |
| template<class Real > | |
| KOKKOS_INLINE_FUNCTION Real | dLogBarrier (Real V, Real mu) |
| e(V) = −μ log(V/Vref) (log-barrier against collapse): e' = −μ/V. | |
| template<class Real > | |
| KOKKOS_INLINE_FUNCTION Real | dFreeEnergy (Real V, Real Vref) |
| e(V) = −Vref log V (ideal-gas free energy; equilibrium at equal pressure Vref/V): e' = −Vref/V. | |
| template<class Real , class Policy = Voronoi, class Sdf = NoSdf> | |
| void | volumeGradientForce (const TessellationView< Real > &view, const Kokkos::View< Real *, peclet::core::MemSpace > &dEdV, const Kokkos::View< Real *, peclet::core::MemSpace > &pos, const Kokkos::View< Real *, peclet::core::MemSpace > &weight, Real L, const Kokkos::View< Real *, peclet::core::MemSpace > &force, const Kokkos::View< Real *, peclet::core::MemSpace > &forceW={}, const Sdf &sdf=Sdf{}) |
| template<class Real , class Policy = Voronoi, class Sdf = NoSdf> | |
| Real | wallEnergyForce (const TessellationView< Real > &view, const Kokkos::View< int *, peclet::core::MemSpace > &types, const Kokkos::View< Real *, peclet::core::MemSpace > &sigmaS, const Sdf &sdf, const Kokkos::View< Real *, peclet::core::MemSpace > &pos, const Kokkos::View< Real *, peclet::core::MemSpace > &weight, Real L, const Kokkos::View< Real *, peclet::core::MemSpace > &force, const Kokkos::View< Real *, peclet::core::MemSpace > &forceW={}) |
| void peclet::voro::energy::cellCentroids | ( | const TessellationView< Real > & | view, |
| const Kokkos::View< Real *, peclet::core::MemSpace > & | pos, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | out | ||
| ) |
Cell centroids (3N, world = seed + relative) from the facet CSR. pos supplies the seeds.
| KOKKOS_INLINE_FUNCTION Real peclet::voro::energy::dFreeEnergy | ( | Real | V, |
| Real | Vref | ||
| ) |
e(V) = −Vref log V (ideal-gas free energy; equilibrium at equal pressure Vref/V): e' = −Vref/V.
| KOKKOS_INLINE_FUNCTION Real peclet::voro::energy::dLogBarrier | ( | Real | V, |
| Real | mu | ||
| ) |
e(V) = −μ log(V/Vref) (log-barrier against collapse): e' = −μ/V.
| KOKKOS_INLINE_FUNCTION Real peclet::voro::energy::dTargetVolume | ( | Real | V, |
| Real | Vref | ||
| ) |
e(V) = (V/Vref − 1)²: e' = 2 (V/Vref − 1)/Vref.
| Real peclet::voro::energy::facetTensionEnergyForce | ( | const TessellationView< Real > & | view, |
| Real | sigma, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | pos, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | weight, | ||
| Real | L, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | force, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | forceW = {}, |
||
| const Sdf & | sdf = Sdf{} |
||
| ) |
| Real peclet::voro::energy::interfaceEnergyForce | ( | const TessellationView< Real > & | view, |
| const Kokkos::View< int *, peclet::core::MemSpace > & | types, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | tension, | ||
| int | nTypes, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | pos, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | weight, | ||
| Real | L, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | force, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | forceW = {}, |
||
| const Sdf & | sdf = Sdf{} |
||
| ) |
Interfacial energy + gradient. types per cell (N), tension nTypes×nTypes. Adds dE/dx into force (3N) and dE/dw into forceW (N; only under a weighted policy). Returns E. The view must carry the area-Jacobian CSR (build with withAreaGrad = true).
| Real peclet::voro::energy::lloydEnergyForce | ( | const TessellationView< Real > & | view, |
| const Kokkos::View< Real *, peclet::core::MemSpace > & | pos, | ||
| Real | gamma, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | force | ||
| ) |
Lloyd energy gradient dE/dx = 2 V_i (x_i − c_i) added into force (3N); returns E when the view carries facet second moments (withMoments), else −1 (gradient only).
| void peclet::voro::energy::volumeGradientForce | ( | const TessellationView< Real > & | view, |
| const Kokkos::View< Real *, peclet::core::MemSpace > & | dEdV, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | pos, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | weight, | ||
| Real | L, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | force, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | forceW = {}, |
||
| const Sdf & | sdf = Sdf{} |
||
| ) |
Gradient of Σ_i e_i(V_i) for a caller-supplied e'(V_i) per cell (dEdV, N). Adds into force / forceW. (The energy value itself is the caller's Σ e_i — it needs no geometry.)
| Real peclet::voro::energy::wallEnergyForce | ( | const TessellationView< Real > & | view, |
| const Kokkos::View< int *, peclet::core::MemSpace > & | types, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | sigmaS, | ||
| const Sdf & | sdf, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | pos, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | weight, | ||
| Real | L, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | force, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | forceW = {} |
||
| ) |
Solid–fluid (wetting) energy E = Σ_c σ_s(t_c) Σ_{wall facets f of c} |A_f| over the published view, with a PER-SPECIES wall tension σ_s(t) (sigmaS, nTypes; types per cell). A uniform σ_s on a closed wall is a constant (the wall is tiled by the wall facets), so only the difference between species does work — Young's angle emerges from σ_sg − σ_sl (plan D2). Needs the facet-edge area-Jacobian CSR (build with withAreaGrad). Adds dE/dx (and dE/dw under a weighted policy) into force / forceW. Returns E.