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

Files

 broadphase_arborx.hpp
 dem — portable (ArborX) broad-phase, the Kokkos-native replacement for the CUDA-only cuBQL broad-phase in broadphase.cu.
 
 contact_preprocessing.hpp
 dem — portable (Kokkos) contact->manifold reduction, replacing the thrust-based reduce_contacts_to_manifolds() in contact_preprocessing.cu.
 
 dem_bindings.cpp
 nanobind module dem — the Kokkos + ArborX XPBD granular-dynamics simulation.
 
 dem_portable.hpp
 dem — portable POD types + math + analytic SDFs shared by the Kokkos kernel ports.
 
 integration.hpp
 dem — portable (Kokkos) time integration kernels (integration.cu).
 
 io.hpp
 dem — portable (CUDA-free) I/O helpers for the Kokkos dem module: a LAMMPS dump writer and a scalar-SDF VTI writer.
 
 mpi_halo.hpp
 dem — portable (Kokkos) owner<->ghost particle halo for the distributed XPBD step.
 
 narrowphase.hpp
 dem — portable (Kokkos) narrow-phase: SDF point-shell collision + boundary planes.
 
 output_sdf.hpp
 dem — portable (Kokkos) SDF-grid reconstruction: the get_sdf_grid pipeline.
 
 particles.hpp
 dem — portable (Kokkos) particle SoA container: the storage the dem flip pivots on.
 
 periodicity.hpp
 dem — portable (Kokkos) periodic ghost generation (periodicity.cu / integration.cu).
 
 shape_registry.hpp
 dem — the shape registry: the host-side authoritative list of particle shapes (analytic sphere / hollow cylinder / box, grid SDF, composed analytic scene) with their surface point shells, unit-mass inverse inertias and bounding radii, and the upload that rebuilds the device Views (P_.shapes / P_.shell / P_.sdfGrid / P_.shapeNodes) from it.
 
 shapes_portable.hpp
 dem — portable (host) surface-shell point generators for the analytic shapes.
 
 sim.hpp
 dem — the Simulation facade: the host-facing, binding-agnostic std::vector API the nanobind module (dem_bindings.cpp) drives from Python.
 
 sleeping.hpp
 dem — island sleeping / freezing for the single-GPU PGS statics path.
 
 solve_copies.hpp
 dem — body copies of the contact solve (docs/contact_solve_framework.md §4.4, §4.5, §WO-4 item 2): hub copies of a colouring vertex above kHubEdgeBudget edges, the fold groups of a phase (hubs; demStep's periodic images in the position phase), the mass-split solve views, and the seed / fold / re-seed kernels demSolveContacts runs around its sweeps.
 
 solve_driver.hpp
 dem — the shared contact-solve driver: the full modern velocity + position solve sequence (warm-started colored PGS with persistent contacts, gravity statics / stabilization passes, friction, colored-GS overlap projection, adaptive stops), extracted from demStep so the single-GPU and the distributed (MPI) steps run ONE driver instead of drifting copies.
 
 solve_driver_force.hpp
 dem — the force-based DEM step driver: explicit soft-contact time stepping (the engine family that computes contact FORCES from overlap and integrates them, in contrast to the impulse/constraint XPBD engine in solve_driver.hpp).
 
 solver_friction.hpp
 dem — portable (Kokkos) Coulomb friction cluster (the single dissipative friction path).
 
 solver_fused.hpp
 dem — fused colour sweeps: one persistent kernel per sweep instead of one kernel launch per colour.
 
 solver_hertz.hpp
 Soft-sphere Hertz–Mindlin DEM (reference force model) for SPHERES.
 
 solver_multilevel.hpp
 dem — multilevel (GraphMG-style) momentum-conserving contact stabilization.
 
 solver_position.hpp
 dem — portable (Kokkos) XPBD position solve (pure overlap removal).
 
 solver_velocity.hpp
 dem — portable (Kokkos) manifold velocity solve (normal restitution impulse).
 
 step_solve.hpp
 dem — the single-rank step drivers over the particle SoA: the XPBD substep (demStep), its committed-state overlap probe (computeOverlapsKokkos), and the contact-buffer sizing the narrow phase relies on (growContactBuffers / narrowPhaseGrow).
 
 step_solve_mpi.hpp
 dem — the distributed step drivers (gated PECLET_DEM_MPI): the hook policies that turn the shared solve drivers into their processor-block forms (MpiSolveHooks, MpiForceHooks) and the two distributed substeps, demStepMpi (XPBD) and demStepHertzMpi (Hertz–Mindlin).