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

Distributed Voronoi halo over core (migration Phase 6). More...

#include <array>
#include <cstddef>
#include <vector>
#include "peclet/core/common/mpi.hpp"
#include "peclet/core/decomp/block_decomposer.hpp"
#include "peclet/core/halo/particle_halo_topology.hpp"
#include "peclet/core/halo/particle_migrator.hpp"
Include dependency graph for voronoi_halo.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  peclet::voro::mpi::VoronoiHalo< Real >
 
struct  peclet::voro::mpi::VoronoiHalo< Real >::Gathered
 Combined owned+ghost seeds (owned first), with global ids and weights. More...
 

Namespaces

namespace  peclet
 
namespace  peclet::voro
 Device-native Voronoi tessellation, geometry and finite-volume physics.
 
namespace  peclet::voro::mpi
 

Detailed Description

Distributed Voronoi halo over core (migration Phase 6).

A Voronoi/power cell is fully determined by its local neighbourhood, so the distributed tessellation needs ONE ghost exchange and no iteration: decompose the periodic domain into blocks, gather every seed within the security radius of the block, tessellate owned+ghost locally, and keep the owned cells (they are bit-identical to the serial cells, since all their neighbours are present).

This wrapper reuses core for all of that — exactly the infrastructure the dem distributed step uses, and the C++ counterpart of the validated Python recipe recorded in docs/distributed_voronoi.md:

  • peclet::core::decomp::BlockDecomposer<3> : ORB block ownership;
  • peclet::core::halo::ParticleMigrator<3> : ownerOf() + periodic wrap;
  • peclet::core::halo::ParticleHaloTopology<3> : gather ghost seeds within rcut and forward owner fields (global id, weight) onto the ghost copies.

Header-only host driver; requires MPI + core (PECLET_VORO_MPI build).