#include <voronoi_halo.hpp>
|
| struct | Gathered |
| | Combined owned+ghost seeds (owned first), with global ids and weights. More...
|
| |
|
| using | Vec3 = std::array< Real, 3 > |
| |
|
| void | init (std::array< Real, 3 > origin, std::array< Real, 3 > size, std::array< long, 3 > gsize, std::array< bool, 3 > periodic, MPI_Comm comm=MPI_COMM_WORLD) |
| |
| int | rank () const |
| |
| int | size () const |
| |
| int | ownerOf (const Vec3 &x) const |
| | Rank that owns position x.
|
| |
| Gathered | gather (const std::vector< Vec3 > &ownedPos, const std::vector< long > &ownedGid, const std::vector< Real > &ownedWeight, double rcut) |
| |
| int | numGhost () const |
| | Number of ghosts in the last gather() (the established topology).
|
| |
| void | refreshPositions (const std::vector< Vec3 > &ownedPos, std::vector< Vec3 > &out) |
| |
◆ Vec3
◆ gather()
Build the owner<->ghost topology over this rank's owned seeds and gather the ghost seeds within rcut, forwarding their global ids and weights.
◆ init()
template<class Real >
| void peclet::voro::mpi::VoronoiHalo< Real >::init |
( |
std::array< Real, 3 > |
origin, |
|
|
std::array< Real, 3 > |
size, |
|
|
std::array< long, 3 > |
gsize, |
|
|
std::array< bool, 3 > |
periodic, |
|
|
MPI_Comm |
comm = MPI_COMM_WORLD |
|
) |
| |
|
inline |
- Parameters
-
| origin,size | physical box (origin + extent L); seeds live in [origin, origin+size). |
| gsize | ORB cell grid (decomposition granularity). |
| periodic | per-axis periodicity. |
◆ numGhost()
Number of ghosts in the last gather() (the established topology).
◆ ownerOf()
Rank that owns position x.
◆ rank()
◆ refreshPositions()
Position-only halo refresh: re-forward the CURRENT owned positions onto the EXISTING ghost topology (the one built by the last gather()), WITHOUT re-decomposing or re-selecting ghosts. Returns the combined owned+ghost positions in the SAME order as that gather() — so a resident per-cell topology (whose neighbour ids are combined-local indices) stays valid across the step. The periodic-native (minimal-image) tessellator recovers the right relative vectors from these raw in-[0,L) positions, so no periodic shift is applied here. This is the moving-point fast path: while no owned seed has moved beyond the Verlet skin (so no neighbour crossed the gathered shell undetected) the driver refreshes positions + repairs locally; on a skin trip it calls gather() again to re-establish the topology. out is resized to nOwned + numGhost().
◆ size()
The documentation for this class was generated from the following file: