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

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)
 

Detailed Description

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.

Function Documentation

◆ to_vec()

static std::vector< float > to_vec ( nb::ndarray< float, nb::c_contig >  a)
static

Definition at line 35 of file dem_bindings.cpp.

Referenced by NB_MODULE().

◆ rows()

static nb::ndarray< nb::numpy, float > rows ( std::vector< float > &&  v,
int  cols 
)
static

Definition at line 41 of file dem_bindings.cpp.

Referenced by NB_MODULE().

◆ flat()

static nb::ndarray< nb::numpy, float > flat ( std::vector< float > &&  v)
static

Definition at line 46 of file dem_bindings.cpp.

Referenced by NB_MODULE().

◆ NB_MODULE()

NB_MODULE ( _dem  ,
 
)

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().