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

dem — portable (Kokkos) particle SoA container: the storage the dem flip pivots on. More...

#include <cstdint>
#include <Kokkos_Core.hpp>
#include <vector>
#include "contact_preprocessing.hpp"
#include "integration.hpp"
#include "narrowphase.hpp"

Go to the source code of this file.

Classes

struct  peclet::dem::DebugContactCapture
 TEST-ONLY host capture of one distributed substep's contact ownership (C++ only; filled by demStepMpi when Particles::debugCapture is set, never read by the step): the owned contacts [0, ncOwned) after the partition and the owned predicted state they were detected on. More...
 
struct  peclet::dem::PhaseCopies
 One solve phase's body copies (docs/contact_solve_framework.md §4.4, §4.5, §WO-4 item 2): the hub copies of the colouring (extra slots [slotBase, slotBase + nCopies) appended to the SoA, per-edge slot overrides) and the fold GROUPS – one per body updated through more than one slot in the phase (a hub's base + copies; in demStep's position phase also the periodic images of a body). More...
 
struct  peclet::dem::SplitStats
 diagnostics.split_stats() (docs/contact_solve_framework.md §WO-4 item 4, §13.5 WO-4b): the last substep's copies. More...
 
struct  peclet::dem::Particles
 
struct  peclet::dem::Particles::MlLast
 

Namespaces

namespace  peclet
 
namespace  peclet::dem
 

Detailed Description

dem — portable (Kokkos) particle SoA container: the storage the dem flip pivots on.

Replaces ParticleSystemData's float4* arrays with Kokkos SoA Views (backend-default layout: coalesced on GPU, cache-friendly on CPU; packed .w scalars split into their own arrays). Holds the per-particle state, the predicted/delta buffers, the collision/contact/manifold buffers, the atomic counters (rank-0 Views), and the static shape/plane data — everything the ported kernels (broadphase_arborx / narrowphase / contact_preprocessing / solver_* / integration / periodicity) operate on. allocate() sizes them for a given capacity.

Definition in file particles.hpp.