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

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

#include <algorithm>
#include <cmath>
#include <Kokkos_Core.hpp>
#include "contact_preprocessing.hpp"
#include "integration.hpp"
#include "narrowphase.hpp"
#include "particles.hpp"
#include "periodicity.hpp"
#include "sleeping.hpp"
#include "solve_driver.hpp"

Go to the source code of this file.

Namespaces

namespace  peclet
 
namespace  peclet::dem
 

Functions

void peclet::dem::growContactBuffers (Particles &P, long nBodies, long floorWant=0)
 Grow every maxContacts-sized collision buffer to match the CURRENT particle capacity.
 
int peclet::dem::narrowPhaseGrow (Particles &P, int np, float margin)
 Narrow phase with an automatically-grown contact 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.
 

Detailed Description

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

Free functions; the Simulation facade in sim.hpp calls them, the distributed drivers in step_solve_mpi.hpp share the buffer sizing and the narrow phase.

Definition in file step_solve.hpp.