|
peclet-dem
Performance-portable XPBD Discrete Element Method (Kokkos + ArborX)
|
nanobind module dem — the Kokkos + ArborX XPBD granular-dynamics simulation.
More...
#include <nanobind/nanobind.h>#include <nanobind/ndarray.h>#include <nanobind/stl/optional.h>#include <nanobind/stl/string.h>#include <nanobind/stl/tuple.h>#include <nanobind/stl/vector.h>#include <cstdint>#include <Kokkos_Core.hpp>#include <optional>#include <tuple>#include <vector>#include "peclet/core/python/ndarray_interop.hpp"#include "sim.hpp"Go to the source code of this file.
Functions | |
| static std::vector< float > | to_vec (nb::ndarray< float, nb::c_contig > a) |
| static nb::ndarray< nb::numpy, float > | rows (std::vector< float > &&v, int cols) |
| static nb::ndarray< nb::numpy, float > | flat (std::vector< float > &&v) |
| NB_MODULE (_dem, m) | |
nanobind module dem — the Kokkos + ArborX XPBD granular-dynamics simulation.
Exposes peclet::dem::Simulation (the portable Kokkos+ArborX pipeline) with the essential sphere-packing API. Kokkos is initialized at import and left initialized for the interpreter's lifetime. Particle arrays cross the boundary through the shared peclet::core::python bridge (transport-core): inputs read as flat C-order buffers, getters move the result into the NumPy array's backing store (no extra copy), and under a GPU backend the bridge's device path lets CuPy arrays flow in/out zero-copy.
Definition in file dem_bindings.cpp.
|
static |
Definition at line 35 of file dem_bindings.cpp.
Referenced by NB_MODULE().
|
static |
Definition at line 41 of file dem_bindings.cpp.
Referenced by NB_MODULE().
|
static |
Definition at line 46 of file dem_bindings.cpp.
Referenced by NB_MODULE().
| NB_MODULE | ( | _dem | , |
| m | |||
| ) |
Definition at line 51 of file dem_bindings.cpp.
References peclet::dem::Simulation::addPlane(), peclet::dem::Simulation::addSdfWall(), peclet::dem::Simulation::clearExternalForces(), peclet::dem::Simulation::computeOverlaps(), peclet::dem::Simulation::enablePeriodicity(), peclet::dem::Simulation::exportLammps(), peclet::dem::Simulation::exportSdf(), peclet::dem::Simulation::externalForcesView(), flat(), peclet::dem::Simulation::getAngularVelocities(), peclet::dem::Simulation::getDomainMax(), peclet::dem::Simulation::getDomainMin(), peclet::dem::Simulation::getGrowthRate(), peclet::dem::Simulation::getInvInertia(), peclet::dem::Simulation::getMasses(), peclet::dem::Simulation::getPositions(), peclet::dem::Simulation::getQuaternions(), peclet::dem::Simulation::getScales(), peclet::dem::Simulation::getSdfGrid(), peclet::dem::Simulation::getVelocities(), peclet::dem::Simulation::growthFactor(), peclet::dem::Simulation::initializeShape(), peclet::dem::Simulation::maxOverlap(), peclet::dem::Simulation::numContacts(), peclet::dem::Simulation::numManifolds(), peclet::dem::Simulation::numParticles(), peclet::dem::Simulation::positionsView(), peclet::dem::Simulation::releaseAll(), rows(), peclet::dem::Simulation::setAngularVelocities(), peclet::dem::Simulation::setDomain(), peclet::dem::Simulation::setDomainMinMax(), peclet::dem::Simulation::setDt(), peclet::dem::Simulation::setExternalForces(), peclet::dem::Simulation::setGlobalScale(), peclet::dem::Simulation::setGravity(), peclet::dem::Simulation::setGrowthParams(), peclet::dem::Simulation::setInvInertia(), peclet::dem::Simulation::setInvMass(), peclet::dem::Simulation::setMaterialParams(), peclet::dem::Simulation::setPositions(), peclet::dem::Simulation::setQuaternions(), peclet::dem::Simulation::setScales(), peclet::dem::Simulation::setScalesUniform(), peclet::dem::Simulation::setSdfShape(), peclet::dem::Simulation::setSolverIterations(), peclet::dem::Simulation::setSphereShape(), peclet::dem::Simulation::setThermostat(), peclet::dem::Simulation::setVelocities(), peclet::dem::Simulation::setWallVelocity(), peclet::dem::Simulation::step(), to_vec(), peclet::dem::Simulation::velocitiesView(), peclet::dem::writeLammpsDump(), and peclet::dem::Simulation::writeVtp().