|
peclet.voro 1.0.0
Device-native moving-particle Voronoi dynamics
|
Classes | |
| class | ExplicitEuler |
Functions | |
| template<class Real > | |
| void | eulerPressureForce (const TessellationView< Real > &view, const Kokkos::View< int *, peclet::core::MemSpace > &recip, const Kokkos::View< int *, peclet::core::MemSpace > &cellOfFacet, Real pressEq, Real volAvg, const Kokkos::View< Real *, peclet::core::MemSpace > &force) |
| template<class Real > | |
| Real | interfaceEnergy (const TessellationView< Real > &view, const Kokkos::View< int *, peclet::core::MemSpace > &types, const Kokkos::View< Real *, peclet::core::MemSpace > &tension, int nTypes) |
| Total interfacial energy Σ γ(t_i,t_j)·area over phase-boundary facets. | |
| template<class Real > | |
| void | velocityGradient (const TessellationView< Real > &view, const Kokkos::View< int *, peclet::core::MemSpace > &recip, const Kokkos::View< int *, peclet::core::MemSpace > &cellOfFacet, const Kokkos::View< Real *, peclet::core::MemSpace > &vel, const Kokkos::View< Real *, peclet::core::MemSpace > &grad) |
| template<class Real > | |
| void | viscousStress (const Kokkos::View< Real *, peclet::core::MemSpace > &grad, const Kokkos::View< Real *, peclet::core::MemSpace > &visc, const Kokkos::View< Real *, peclet::core::MemSpace > &bulkVisc, const Kokkos::View< Real *, peclet::core::MemSpace > &stress) |
| Newtonian stress per cell from the gradient (τ stored 9-per-cell, symmetric). | |
| template<class Real > | |
| void | addViscousForce (const TessellationView< Real > &view, const Kokkos::View< Real *, peclet::core::MemSpace > &stress, const Kokkos::View< Real *, peclet::core::MemSpace > &force) |
| template<class Real > | |
| void | viscousForce (const TessellationView< Real > &view, const Kokkos::View< int *, peclet::core::MemSpace > &recip, const Kokkos::View< int *, peclet::core::MemSpace > &cellOfFacet, const Kokkos::View< Real *, peclet::core::MemSpace > &vel, const Kokkos::View< Real *, peclet::core::MemSpace > &visc, const Kokkos::View< Real *, peclet::core::MemSpace > &bulkVisc, const Kokkos::View< Real *, peclet::core::MemSpace > &force, const Kokkos::View< Real *, peclet::core::MemSpace > &grad, const Kokkos::View< Real *, peclet::core::MemSpace > &stress) |
| template<class Real > | |
| void | viscousForce (const TessellationView< Real > &view, const Kokkos::View< int *, peclet::core::MemSpace > &recip, const Kokkos::View< int *, peclet::core::MemSpace > &cellOfFacet, const Kokkos::View< Real *, peclet::core::MemSpace > &vel, const Kokkos::View< Real *, peclet::core::MemSpace > &visc, const Kokkos::View< Real *, peclet::core::MemSpace > &bulkVisc, const Kokkos::View< Real *, peclet::core::MemSpace > &force) |
| Convenience overload that allocates the two 9*N scratch Views itself (tests / one-shot callers). | |
| void peclet::voro::physics::addViscousForce | ( | const TessellationView< Real > & | view, |
| const Kokkos::View< Real *, peclet::core::MemSpace > & | stress, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | force | ||
| ) |
Atomic-free gather of the viscous force, ADDED to force (size 3*N): F_i += Σ_f (τ_nbr − τ_i) · dV_i[f].
| void peclet::voro::physics::eulerPressureForce | ( | const TessellationView< Real > & | view, |
| const Kokkos::View< int *, peclet::core::MemSpace > & | recip, | ||
| const Kokkos::View< int *, peclet::core::MemSpace > & | cellOfFacet, | ||
| Real | pressEq, | ||
| Real | volAvg, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | force | ||
| ) |
Atomic-free compressible-Euler pressure force over the published view.
| view | published tessellation (volumes, facet neighbours, dV in facetConnect). |
| recip | reciprocal-facet transpose (buildReciprocalMap), size numFacets. |
| cellOfFacet | owning cell index per packed facet, size numFacets. |
| pressEq,volAvg | EOS constants (press_i = pressEq·volAvg/vol_i). |
| force | output, size 3·numCells (x-fastest 3*i+k). Overwritten. |
| Real peclet::voro::physics::interfaceEnergy | ( | const TessellationView< Real > & | view, |
| const Kokkos::View< int *, peclet::core::MemSpace > & | types, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | tension, | ||
| int | nTypes | ||
| ) |
Total interfacial energy Σ γ(t_i,t_j)·area over phase-boundary facets.
| void peclet::voro::physics::velocityGradient | ( | const TessellationView< Real > & | view, |
| const Kokkos::View< int *, peclet::core::MemSpace > & | recip, | ||
| const Kokkos::View< int *, peclet::core::MemSpace > & | cellOfFacet, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | vel, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | grad | ||
| ) |
Per-cell velocity gradient (Green-Gauss, atomic-free). vel/grad are device Views sized 3*N and 9*N (row-major 3x3: 9*i + 3*k + m = d v_k / d x_m).
| void peclet::voro::physics::viscousForce | ( | const TessellationView< Real > & | view, |
| const Kokkos::View< int *, peclet::core::MemSpace > & | recip, | ||
| const Kokkos::View< int *, peclet::core::MemSpace > & | cellOfFacet, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | vel, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | visc, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | bulkVisc, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | force | ||
| ) |
Convenience overload that allocates the two 9*N scratch Views itself (tests / one-shot callers).
| void peclet::voro::physics::viscousForce | ( | const TessellationView< Real > & | view, |
| const Kokkos::View< int *, peclet::core::MemSpace > & | recip, | ||
| const Kokkos::View< int *, peclet::core::MemSpace > & | cellOfFacet, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | vel, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | visc, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | bulkVisc, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | force, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | grad, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | stress | ||
| ) |
Full viscous force: gradient -> stress -> gather (ADDED to force), into caller-provided grad/stress scratch (each ≥ 9*N). Lets a stepper hoist the scratch out of the per-step path (E4) instead of reallocating two 9*N Views every call.
| void peclet::voro::physics::viscousStress | ( | const Kokkos::View< Real *, peclet::core::MemSpace > & | grad, |
| const Kokkos::View< Real *, peclet::core::MemSpace > & | visc, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | bulkVisc, | ||
| const Kokkos::View< Real *, peclet::core::MemSpace > & | stress | ||
| ) |
Newtonian stress per cell from the gradient (τ stored 9-per-cell, symmetric).