peclet.voro 1.0.4
Device-native moving-particle Voronoi dynamics
Loading...
Searching...
No Matches
peclet::voro::detail Namespace Reference

Classes

struct  Dual
 
struct  PoreCellGather
 
struct  tangentOnly
 
struct  tangentOnly< T, std::void_t< decltype(T::kTangentOnly)> >
 

Functions

template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > dnum (Real c)
 
template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > dseed (Real c, int s)
 
template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > operator+ (const Dual< Real, K > &a, const Dual< Real, K > &b)
 
template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > operator- (const Dual< Real, K > &a, const Dual< Real, K > &b)
 
template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > operator* (const Dual< Real, K > &a, const Dual< Real, K > &b)
 
template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > operator/ (const Dual< Real, K > &a, const Dual< Real, K > &b)
 
template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > dsqrt (const Dual< Real, K > &a)
 
template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > ddot (const Dual< Real, K > a[3], const Dual< Real, K > b[3])
 
template<class Real , int K>
KOKKOS_INLINE_FUNCTION void dcross (const Dual< Real, K > a[3], const Dual< Real, K > b[3], Dual< Real, K > o[3])
 
template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > ddet3 (const Dual< Real, K > a[3], const Dual< Real, K > b[3], const Dual< Real, K > c[3])
 
template<class Real , int K>
KOKKOS_INLINE_FUNCTION void dedgeFoot (const Dual< Real, K > v[3], const Dual< Real, K > c[3], Dual< Real, K > f[3])
 
template<class Real , class Sdf >
void interfaceGradReconstruct (const std::vector< Real > &x, const std::vector< int > &type, double sigma, const Real L[3], int N, int sw, const Sdf &sdf, std::vector< double > &g, double &E)
 
template<class Real >
std::vector< Real > toHostVec (const Kokkos::View< Real *, peclet::core::MemSpace > &v)
 
template<class T >
std::vector< T > toHostVecT (const Kokkos::View< T *, peclet::core::MemSpace > &v)
 
template<class Cell >
KOKKOS_INLINE_FUNCTION bool poreCellCount (const Cell &c, int &nPts, int &nEntries, bool &wall)
 
template<class Cell , class Real >
KOKKOS_INLINE_FUNCTION void poreCellFill (const Cell &c, const Real seed[3], int64_t ptBase, int64_t fBase, Real *pts, int64_t *faces)
 
template<class Count , class Off >
void exclusiveScan (const Count &count, const Off &off, int N)
 Exclusive scan of a per-seed count into offsets (N+1 entries; the last is the total).
 
template<class Off >
Off::value_type lastOf (const Off &off, int N)
 
template<class Status >
void statusCounts (const Status &status, int N, long &overflow, long &incomplete)
 
template<class T >
Kokkos::View< T *, peclet::core::MemSpace > viewFrom (const std::vector< T > &h, const std::string &label)
 

Variables

template<class T >
constexpr bool tangentOnly_v = tangentOnly<T>::value
 

Function Documentation

◆ dcross()

template<class Real , int K>
KOKKOS_INLINE_FUNCTION void peclet::voro::detail::dcross ( const Dual< Real, K >  a[3],
const Dual< Real, K >  b[3],
Dual< Real, K >  o[3] 
)

◆ ddet3()

template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > peclet::voro::detail::ddet3 ( const Dual< Real, K >  a[3],
const Dual< Real, K >  b[3],
const Dual< Real, K >  c[3] 
)

◆ ddot()

template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > peclet::voro::detail::ddot ( const Dual< Real, K >  a[3],
const Dual< Real, K >  b[3] 
)

◆ dedgeFoot()

template<class Real , int K>
KOKKOS_INLINE_FUNCTION void peclet::voro::detail::dedgeFoot ( const Dual< Real, K >  v[3],
const Dual< Real, K >  c[3],
Dual< Real, K >  f[3] 
)

◆ dnum()

template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > peclet::voro::detail::dnum ( Real  c)

◆ dseed()

template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > peclet::voro::detail::dseed ( Real  c,
int  s 
)

◆ dsqrt()

template<class Real , int K>
KOKKOS_INLINE_FUNCTION Dual< Real, K > peclet::voro::detail::dsqrt ( const Dual< Real, K > &  a)

◆ exclusiveScan()

template<class Count , class Off >
void peclet::voro::detail::exclusiveScan ( const Count &  count,
const Off &  off,
int  N 
)
inline

Exclusive scan of a per-seed count into offsets (N+1 entries; the last is the total).

◆ interfaceGradReconstruct()

template<class Real , class Sdf >
void peclet::voro::detail::interfaceGradReconstruct ( const std::vector< Real > &  x,
const std::vector< int > &  type,
double  sigma,
const Real  L[3],
int  N,
int  sw,
const Sdf &  sdf,
std::vector< double > &  g,
double &  E 
)

The pre-A3 interfacial energy + gradient: rebuild the tessellation, then RECONSTRUCT every cell as a ConvexCell from its published neighbours and gather geomVolumeAreaGrad + chainToDofs on the host. Kept as the ORACLE for the published-Jacobian path (tests/kokkos/test_energy_layer); interfaceMinimize itself no longer uses it.

◆ lastOf()

template<class Off >
Off::value_type peclet::voro::detail::lastOf ( const Off &  off,
int  N 
)
inline

◆ operator*()

◆ operator+()

◆ operator-()

◆ operator/()

◆ poreCellCount()

template<class Cell >
KOKKOS_INLINE_FUNCTION bool peclet::voro::detail::poreCellCount ( const Cell &  c,
int &  nPts,
int &  nEntries,
bool &  wall 
)

Export rule of one finished cell (shared with the host oracle in the bindings): a cell is exported when it is neither empty nor overflowed and has at least four vertices and four polygon faces. Counts its points (alive dual triangles) and face-list entries (1 + Σ_faces (1 + m)), and whether one of its faces is a wall facet.

◆ poreCellFill()

template<class Cell , class Real >
KOKKOS_INLINE_FUNCTION void peclet::voro::detail::poreCellFill ( const Cell &  c,
const Real  seed[3],
int64_t  ptBase,
int64_t  fBase,
Real *  pts,
int64_t *  faces 
)

Write one exported cell: its points (world frame, seed + vertex) at pts[3·(ptBase + q)] and its face list at faces[fBase …) with global point ids ptBase + q.

◆ statusCounts()

template<class Status >
void peclet::voro::detail::statusCounts ( const Status &  status,
int  N,
long &  overflow,
long &  incomplete 
)
inline

◆ toHostVec()

template<class Real >
std::vector< Real > peclet::voro::detail::toHostVec ( const Kokkos::View< Real *, peclet::core::MemSpace > &  v)

◆ toHostVecT()

template<class T >
std::vector< T > peclet::voro::detail::toHostVecT ( const Kokkos::View< T *, peclet::core::MemSpace > &  v)

◆ viewFrom()

template<class T >
Kokkos::View< T *, peclet::core::MemSpace > peclet::voro::detail::viewFrom ( const std::vector< T > &  h,
const std::string &  label 
)

Variable Documentation

◆ tangentOnly_v

template<class T >
constexpr bool peclet::voro::detail::tangentOnly_v = tangentOnly<T>::value
inlineconstexpr