|
peclet-dem
Performance-portable XPBD Discrete Element Method (Kokkos + ArborX)
|
dem — portable (Kokkos) Simulation facade: the dem flip's host-facing driver. More...
#include <algorithm>#include <cmath>#include <cstdio>#include <fstream>#include <Kokkos_Core.hpp>#include <memory>#include <stdexcept>#include <vector>#include "broadphase_arborx.hpp"#include "contact_preprocessing.hpp"#include "integration.hpp"#include "io.hpp"#include "narrowphase.hpp"#include "output_sdf.hpp"#include "particles.hpp"#include "peclet/core/common/view.hpp"#include "periodicity.hpp"#include "shapes_portable.hpp"#include "solver_friction.hpp"#include "solver_position.hpp"#include "solver_velocity.hpp"Go to the source code of this file.
Classes | |
| class | peclet::dem::Simulation |
| Host-facing facade with std::vector setters/getters (binding-agnostic). More... | |
Namespaces | |
| namespace | peclet |
| namespace | peclet::dem |
Functions | |
| int | peclet::dem::readInt (Kokkos::View< int, CpMem > v) |
| float | peclet::dem::maxOwnedRadius (const Particles &P) |
| Largest effective particle radius over the owned set (= max scale × globalScale, growth included). | |
| int | peclet::dem::findCollisionsGrow (Particles &P, float margin) |
| Broad phase with an automatically-grown pair buffer. | |
| void | peclet::dem::demStep (Particles &P) |
| One full XPBD DEM substep over the particle SoA (mirrors simulation.cpp Simulation::step()). | |
| float | peclet::dem::computeOverlapsKokkos (Particles &P) |
| Max pair interpenetration on the committed state (faithful to CUDA Simulation::compute_overlaps): copy committed pos/quat into the predicted buffers, regenerate the periodic ghosts from that state, then run the same broad/narrow phase as demStep and return the recorded max overlap. | |
dem — portable (Kokkos) Simulation facade: the dem flip's host-facing driver.
Owns a peclet::dem::Particles SoA and runs the full XPBD DEM step by composing the ported kernels in the simulation.cpp step() order. Exposes a small std::vector-based API (binding-agnostic) so a pybind module can drive it from Python (set/get arrays, step). Sphere shapes + analytic planes for now.
Definition in file sim.hpp.