peclet-dem
Performance-portable XPBD Discrete Element Method (Kokkos + ArborX)
Loading...
Searching...
No Matches
periodicity.hpp File Reference

dem — portable (Kokkos) periodic ghost generation (periodicity.cu / integration.cu). More...

#include <Kokkos_Core.hpp>
#include "dem_portable.hpp"
#include "integration.hpp"

Go to the source code of this file.

Namespaces

namespace  peclet
 
namespace  peclet::dem
 

Functions

int peclet::dem::calculateGhostCapacity (int nReal, Domain dom, float skin)
 Padded particle-array capacity that leaves room for the periodic ghosts generateGhostsKokkos will emit: the real count plus an estimate of the boundary-shell ghost population, gated on which axes are actually periodic.
 
void peclet::dem::generateGhostsKokkos (int numReal, int capacity, Domain dom, float skin, V3 pos, Vf invMass, V3 posPred, V3 vel, V3 velPred, V4 quat, V4 quatPred, V3 angVel, V3 angVelPred, Vf scale, Vi shapeId, Vi realIndices, Kokkos::View< int, CpMem > topGhost)
 Generate periodic ghosts for particles [0,numReal).
 

Detailed Description

dem — portable (Kokkos) periodic ghost generation (periodicity.cu / integration.cu).

Per real particle near a periodic face, emit shifted ghost copies into atomically-allocated slots past num_real, copying the full per-particle state and mapping each ghost back to its real owner (real_indices) for momentum conservation. Faithful port of generate_ghosts_bitmask_kernel; ghost positions use the predicted state to align with the solver. Decoupled from any BVH (the CUDA candidate pre-pass was just an optimization; the boundary test is inlined here).

Definition in file periodicity.hpp.