peclet.voro 1.0.0
Device-native moving-particle Voronoi dynamics
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | List of all members
peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT > Struct Template Reference

#include <distributed_moving.hpp>

Classes

struct  StepStats
 

Public Types

using Vec3 = std::array< Real, 3 >
 
using Mem = typename Kokkos::DefaultExecutionSpace::memory_space
 

Public Member Functions

void init (std::array< Real, 3 > origin, std::array< Real, 3 > size, std::array< long, 3 > gsize, std::array< bool, 3 > periodic, Real rcut, Real skin, Real tol, MPI_Comm comm, int searchWindow=4, int densityCount=-1)
 One-time setup. gsize is the ORB decomposition granularity (cells per axis).
 
int ownerOf (const Vec3 &x) const
 
void establish (const std::vector< Vec3 > &ownedPos, const std::vector< long > &ownedGid, const std::vector< Real > &ownedW)
 
StepStats step (const std::vector< Vec3 > &ownedPos)
 Advance to new owned positions (same ownership as establish; collective every step).
 
int nCombined () const
 Combined owned+ghost count and owned count of the current tessellation.
 
int nOwned () const
 
MovingTessellation< Real, MAXP, MAXT > & tess ()
 The device tessellation (cells [0, nOwned) are this rank's owned cells).
 
const Kokkos::View< Real *, Mem > & positions () const
 
const std::vector< long > & combinedGid () const
 Global ids of the combined (owned+ghost) seeds after the last (re)gather.
 
long numRegathers () const
 

Member Typedef Documentation

◆ Mem

template<class Real , int MAXP = 64, int MAXT = 112>
using peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT >::Mem = typename Kokkos::DefaultExecutionSpace::memory_space

◆ Vec3

template<class Real , int MAXP = 64, int MAXT = 112>
using peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT >::Vec3 = std::array<Real, 3>

Member Function Documentation

◆ combinedGid()

template<class Real , int MAXP = 64, int MAXT = 112>
const std::vector< long > & peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT >::combinedGid ( ) const
inline

Global ids of the combined (owned+ghost) seeds after the last (re)gather.

◆ establish()

template<class Real , int MAXP = 64, int MAXT = 112>
void peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT >::establish ( const std::vector< Vec3 > &  ownedPos,
const std::vector< long > &  ownedGid,
const std::vector< Real > &  ownedW 
)
inline

Establish the tessellation from this rank's owned seeds (collective). Call once after init and whenever ownership changes externally (e.g. after a rebalance/migration).

◆ init()

template<class Real , int MAXP = 64, int MAXT = 112>
void peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT >::init ( std::array< Real, 3 >  origin,
std::array< Real, 3 >  size,
std::array< long, 3 >  gsize,
std::array< bool, 3 >  periodic,
Real  rcut,
Real  skin,
Real  tol,
MPI_Comm  comm,
int  searchWindow = 4,
int  densityCount = -1 
)
inline

One-time setup. gsize is the ORB decomposition granularity (cells per axis).

◆ nCombined()

template<class Real , int MAXP = 64, int MAXT = 112>
int peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT >::nCombined ( ) const
inline

Combined owned+ghost count and owned count of the current tessellation.

◆ nOwned()

template<class Real , int MAXP = 64, int MAXT = 112>
int peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT >::nOwned ( ) const
inline

◆ numRegathers()

template<class Real , int MAXP = 64, int MAXT = 112>
long peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT >::numRegathers ( ) const
inline

◆ ownerOf()

template<class Real , int MAXP = 64, int MAXT = 112>
int peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT >::ownerOf ( const Vec3 x) const
inline

◆ positions()

template<class Real , int MAXP = 64, int MAXT = 112>
const Kokkos::View< Real *, Mem > & peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT >::positions ( ) const
inline

◆ step()

template<class Real , int MAXP = 64, int MAXT = 112>
StepStats peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT >::step ( const std::vector< Vec3 > &  ownedPos)
inline

Advance to new owned positions (same ownership as establish; collective every step).

◆ tess()

template<class Real , int MAXP = 64, int MAXT = 112>
MovingTessellation< Real, MAXP, MAXT > & peclet::voro::mpi::DistributedMovingTessellation< Real, MAXP, MAXT >::tess ( )
inline

The device tessellation (cells [0, nOwned) are this rank's owned cells).


The documentation for this struct was generated from the following file: