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

Rung A3: interfacial (surface-tension) energy between cells of different species on the published view, with its exact gradient — no cell reconstruction. More...

#include <Kokkos_Core.hpp>
#include "peclet/voro/energy/route.hpp"
#include "peclet/voro/tessellation_view.hpp"
Include dependency graph for interface.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
 

Functions

template<class Real , class Policy = Voronoi, class Sdf = NoSdf>
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{})
 

Detailed Description

Rung A3: interfacial (surface-tension) energy between cells of different species on the published view, with its exact gradient — no cell reconstruction.

E = Σ_{facets (i,j), t_i != t_j} σ(t_i, t_j) A_ij           (each interface counted once)

Per cell the energy is taken as ½ σ A per interface facet (both cells see it), and the gradient uses the facet-edge area Jacobians the build publishes (withAreaGrad): a facet's area depends on its own plane and on the planes of the facets it shares an edge with, so g_l = Σ_{interface facets f} ½ σ_f ∂A_f/∂n_l over the cell's facets l, then routed to the DOFs by energy/route.hpp (Voronoi or Power chain; wall planes through the seed-foot chain). The tension table is row-major nTypes × nTypes and must be symmetric.