Particle store
Component-major positions, velocities, weights, alive flags and int64 ids on NumPy or CuPy, with growth, compaction, sorting and checkpoints.
Particle store
Component-major positions, velocities, weights, alive flags and int64 ids on NumPy or CuPy, with growth, compaction, sorting and checkpoints.
Unique ids
An id allocator with a rank stride gives every marker a globally unique int64 id that survives migration.
Migration
Only the markers that left a rank are sent to their owner, with ids kept exact above 2^53. Serial runs make no MPI call.
Your decomposition
A small protocol says which rank owns a position; a box decomposition is included as a reference.