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

Rung A3: route a cell's per-facet geometry gradient to the seed DOFs on the PUBLISHED view — the one combiner every energy term uses (no cell reconstruction). More...

#include <Kokkos_Core.hpp>
#include <type_traits>
#include "peclet/core/common/view.hpp"
#include "peclet/voro/plane_policy.hpp"
#include "peclet/voro/sdf.hpp"
#include "peclet/voro/tessellation_view.hpp"
Include dependency graph for route.hpp:
This graph shows which files directly or indirectly include this file:

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::energy
 
namespace  peclet::voro::energy::detail
 

Functions

template<class Real , class Policy , class Sdf >
KOKKOS_INLINE_FUNCTION void peclet::voro::energy::detail::routeCellGradient (const TessellationView< Real > &view, int i, const Real *gl, int nf, const Kokkos::View< Real *, peclet::core::MemSpace > &pos, const Kokkos::View< Real *, peclet::core::MemSpace > &weight, Real L, const Sdf &sdf, const Kokkos::View< Real *, peclet::core::MemSpace > &force, const Kokkos::View< Real *, peclet::core::MemSpace > &forceW)
 

Variables

constexpr int peclet::voro::energy::detail::kMaxLocalFacets = 50
 Facets one cell may publish (CellBuilder::MAXF_TMP); bounds the per-thread gradient array.
 

Detailed Description

Rung A3: route a cell's per-facet geometry gradient to the seed DOFs on the PUBLISHED view — the one combiner every energy term uses (no cell reconstruction).

Given, for cell i, g_k = ∂E/∂n_k for each published facet k (SoA, local facet index), the neighbour facets go through the plane policy's chain (Voronoi: ∓½ g; Power: the radical-plane Jacobians from the current positions + weights) onto the cell's own seed and the neighbour seed (atomic scatter), the SDF wall facets are aggregated and routed through the seed-foot wall chain (energy/wall.hpp) onto the own seed, and the box facets carry no DOF dependence. This is chainToDofs + addSdfWallForce expressed on TessellationView data.