peclet-dem
Performance-portable XPBD Discrete Element Method (Kokkos + ArborX)
Loading...
Searching...
No Matches
peclet::dem::Simulation Class Reference

Host-facing facade with std::vector setters/getters (binding-agnostic). More...

#include <sim.hpp>

Public Member Functions

 Simulation (int capacity)
 
 ~Simulation ()
 
void releaseViews ()
 
void setSphereShape (float radius)
 
void initializeShape (int shape_type, float radius, float height, float thickness)
 
void setSdfShape (const std::vector< float > &grid, int nx, int ny, int nz, F3 origin, F3 spacing, const std::vector< float > &shellFlat, F3 invInertia, float boundingRadius)
 
void setDomain (float lx, float ly, float lz, bool px, bool py, bool pz)
 
void setDomainMinMax (F3 mn, F3 mx)
 
void enablePeriodicity (bool x, bool y, bool z)
 
std::tuple< float, float, float > getDomainMin () const
 
std::tuple< float, float, float > getDomainMax () const
 
void setGravity (float gx, float gy, float gz)
 
void setThermostat (float temperature, float tau, float kB)
 
void setSolverIterations (int pos, int vel)
 
void setGlobalScale (float s)
 
void setDt (float dt)
 
void setMaterialParams (float restitution_normal, float restitution_tangent, float friction)
 
void addPlane (float px, float py, float pz, float nx, float ny, float nz)
 
int addSdfWall (const std::vector< float > &grid, int nx, int ny, int nz, F3 origin, F3 spacing, float restitution, float friction)
 
void setWallVelocity (int wallIndex, F3 linVel, F3 angVel, F3 center)
 
void setPositions (const std::vector< float > &xyz)
 
void setScalesUniform (float s)
 
void setScales (const std::vector< float > &s)
 
void setVelocities (const std::vector< float > &v)
 
void setExternalForces (const std::vector< float > &f)
 
void clearExternalForces ()
 
const V3externalForcesView () const
 
void setQuaternions (const std::vector< float > &q)
 
void setAngularVelocities (const std::vector< float > &w)
 
void setInvInertia (const std::vector< float > &ii)
 
void setInvMass (const std::vector< float > &im)
 
std::vector< float > getAngularVelocities () const
 
std::vector< float > getInvInertia () const
 
void setGrowthParams (float rate, float new_factor)
 
float growthFactor () const
 
float getGrowthRate () const
 
std::vector< float > getMasses () const
 
std::vector< float > getPositions () const
 
std::vector< float > getVelocities () const
 
std::vector< float > getQuaternions () const
 
std::vector< float > getScales () const
 
void step (float dt)
 
float computeOverlaps ()
 
void exportLammps (const std::string &filename, int step) const
 
void exportSdf (const std::string &filename, int rx, int ry, int rz)
 
std::vector< float > getSdfGrid (int rx, int ry, int rz)
 
int numParticles () const
 
const V3positionsView () const
 
const V3velocitiesView () const
 
int numContacts ()
 
int numManifolds ()
 
float maxOverlap ()
 
void writeVtp (const std::string &filename) const
 

Static Public Member Functions

static void releaseAll ()
 
static std::vector< Simulation * > & registry ()
 

Detailed Description

Host-facing facade with std::vector setters/getters (binding-agnostic).

Definition at line 393 of file sim.hpp.

Constructor & Destructor Documentation

◆ Simulation()

peclet::dem::Simulation::Simulation ( int  capacity)
inlineexplicit

Definition at line 395 of file sim.hpp.

References peclet::dem::Particles::allocate(), registry(), and setSphereShape().

◆ ~Simulation()

peclet::dem::Simulation::~Simulation ( )
inline

Definition at line 401 of file sim.hpp.

References registry().

Member Function Documentation

◆ releaseViews()

void peclet::dem::Simulation::releaseViews ( )
inline

Definition at line 410 of file sim.hpp.

◆ releaseAll()

static void peclet::dem::Simulation::releaseAll ( )
inlinestatic

Definition at line 418 of file sim.hpp.

References registry().

Referenced by NB_MODULE().

◆ registry()

static std::vector< Simulation * > & peclet::dem::Simulation::registry ( )
inlinestatic

Definition at line 422 of file sim.hpp.

Referenced by releaseAll(), Simulation(), and ~Simulation().

◆ setSphereShape()

void peclet::dem::Simulation::setSphereShape ( float  radius)
inline

Definition at line 427 of file sim.hpp.

References initializeShape(), and peclet::dem::SPHERE.

Referenced by NB_MODULE(), and Simulation().

◆ initializeShape()

void peclet::dem::Simulation::initializeShape ( int  shape_type,
float  radius,
float  height,
float  thickness 
)
inline

◆ setSdfShape()

void peclet::dem::Simulation::setSdfShape ( const std::vector< float > &  grid,
int  nx,
int  ny,
int  nz,
F3  origin,
F3  spacing,
const std::vector< float > &  shellFlat,
F3  invInertia,
float  boundingRadius 
)
inline

◆ setDomain()

void peclet::dem::Simulation::setDomain ( float  lx,
float  ly,
float  lz,
bool  px,
bool  py,
bool  pz 
)
inline

◆ setDomainMinMax()

◆ enablePeriodicity()

void peclet::dem::Simulation::enablePeriodicity ( bool  x,
bool  y,
bool  z 
)
inline

◆ getDomainMin()

std::tuple< float, float, float > peclet::dem::Simulation::getDomainMin ( ) const
inline

◆ getDomainMax()

std::tuple< float, float, float > peclet::dem::Simulation::getDomainMax ( ) const
inline

◆ setGravity()

void peclet::dem::Simulation::setGravity ( float  gx,
float  gy,
float  gz 
)
inline

Definition at line 595 of file sim.hpp.

References peclet::dem::Particles::gravity.

Referenced by NB_MODULE().

◆ setThermostat()

void peclet::dem::Simulation::setThermostat ( float  temperature,
float  tau,
float  kB 
)
inline

◆ setSolverIterations()

void peclet::dem::Simulation::setSolverIterations ( int  pos,
int  vel 
)
inline

◆ setGlobalScale()

void peclet::dem::Simulation::setGlobalScale ( float  s)
inline

Definition at line 605 of file sim.hpp.

References peclet::dem::Particles::globalScale, and peclet::dem::Particles::skin.

Referenced by NB_MODULE().

◆ setDt()

void peclet::dem::Simulation::setDt ( float  dt)
inline

Definition at line 609 of file sim.hpp.

References peclet::dem::Particles::dt.

Referenced by NB_MODULE().

◆ setMaterialParams()

void peclet::dem::Simulation::setMaterialParams ( float  restitution_normal,
float  restitution_tangent,
float  friction 
)
inline

◆ addPlane()

void peclet::dem::Simulation::addPlane ( float  px,
float  py,
float  pz,
float  nx,
float  ny,
float  nz 
)
inline

Definition at line 618 of file sim.hpp.

References peclet::dem::Particles::numPlanes, and peclet::dem::Particles::planes.

Referenced by NB_MODULE().

◆ addSdfWall()

int peclet::dem::Simulation::addSdfWall ( const std::vector< float > &  grid,
int  nx,
int  ny,
int  nz,
F3  origin,
F3  spacing,
float  restitution,
float  friction 
)
inline

◆ setWallVelocity()

void peclet::dem::Simulation::setWallVelocity ( int  wallIndex,
F3  linVel,
F3  angVel,
F3  center 
)
inline

Definition at line 672 of file sim.hpp.

Referenced by NB_MODULE().

◆ setPositions()

◆ setScalesUniform()

void peclet::dem::Simulation::setScalesUniform ( float  s)
inline

◆ setScales()

void peclet::dem::Simulation::setScales ( const std::vector< float > &  s)
inline

◆ setVelocities()

void peclet::dem::Simulation::setVelocities ( const std::vector< float > &  v)
inline

Definition at line 737 of file sim.hpp.

References peclet::dem::Particles::numReal, and peclet::dem::Particles::vel.

Referenced by NB_MODULE().

◆ setExternalForces()

void peclet::dem::Simulation::setExternalForces ( const std::vector< float > &  f)
inline

Definition at line 748 of file sim.hpp.

References peclet::dem::Particles::extForce, and peclet::dem::Particles::numReal.

Referenced by NB_MODULE().

◆ clearExternalForces()

void peclet::dem::Simulation::clearExternalForces ( )
inline

Definition at line 757 of file sim.hpp.

References peclet::dem::Particles::extForce.

Referenced by NB_MODULE().

◆ externalForcesView()

const V3 & peclet::dem::Simulation::externalForcesView ( ) const
inline

Definition at line 758 of file sim.hpp.

References peclet::dem::Particles::extForce.

Referenced by NB_MODULE().

◆ setQuaternions()

void peclet::dem::Simulation::setQuaternions ( const std::vector< float > &  q)
inline

Definition at line 761 of file sim.hpp.

References peclet::dem::Particles::numReal, and peclet::dem::Particles::quat.

Referenced by NB_MODULE().

◆ setAngularVelocities()

void peclet::dem::Simulation::setAngularVelocities ( const std::vector< float > &  w)
inline

Definition at line 771 of file sim.hpp.

References peclet::dem::Particles::angVel, and peclet::dem::Particles::numReal.

Referenced by NB_MODULE().

◆ setInvInertia()

void peclet::dem::Simulation::setInvInertia ( const std::vector< float > &  ii)
inline

Definition at line 780 of file sim.hpp.

References peclet::dem::Particles::invInertia, and peclet::dem::Particles::numReal.

Referenced by NB_MODULE().

◆ setInvMass()

void peclet::dem::Simulation::setInvMass ( const std::vector< float > &  im)
inline

Definition at line 789 of file sim.hpp.

References peclet::dem::Particles::invMass, and peclet::dem::Particles::numReal.

Referenced by NB_MODULE().

◆ getAngularVelocities()

std::vector< float > peclet::dem::Simulation::getAngularVelocities ( ) const
inline

Definition at line 795 of file sim.hpp.

References peclet::dem::Particles::angVel, and peclet::dem::Particles::numReal.

Referenced by NB_MODULE().

◆ getInvInertia()

std::vector< float > peclet::dem::Simulation::getInvInertia ( ) const
inline

Definition at line 799 of file sim.hpp.

References peclet::dem::Particles::invInertia, and peclet::dem::Particles::numReal.

Referenced by NB_MODULE().

◆ setGrowthParams()

void peclet::dem::Simulation::setGrowthParams ( float  rate,
float  new_factor 
)
inline

◆ growthFactor()

float peclet::dem::Simulation::growthFactor ( ) const
inline

Definition at line 814 of file sim.hpp.

References peclet::dem::Particles::growthFactor.

Referenced by NB_MODULE().

◆ getGrowthRate()

float peclet::dem::Simulation::getGrowthRate ( ) const
inline

Definition at line 815 of file sim.hpp.

References peclet::dem::Particles::growthRate.

Referenced by NB_MODULE().

◆ getMasses()

std::vector< float > peclet::dem::Simulation::getMasses ( ) const
inline

Definition at line 818 of file sim.hpp.

References peclet::dem::Particles::invMass, and peclet::dem::Particles::numReal.

Referenced by NB_MODULE().

◆ getPositions()

std::vector< float > peclet::dem::Simulation::getPositions ( ) const
inline

Definition at line 827 of file sim.hpp.

References peclet::dem::Particles::numReal, and peclet::dem::Particles::pos.

Referenced by exportLammps(), and NB_MODULE().

◆ getVelocities()

std::vector< float > peclet::dem::Simulation::getVelocities ( ) const
inline

Definition at line 831 of file sim.hpp.

References peclet::dem::Particles::numReal, and peclet::dem::Particles::vel.

Referenced by exportLammps(), and NB_MODULE().

◆ getQuaternions()

std::vector< float > peclet::dem::Simulation::getQuaternions ( ) const
inline

Definition at line 835 of file sim.hpp.

References peclet::dem::Particles::numReal, and peclet::dem::Particles::quat.

Referenced by exportLammps(), and NB_MODULE().

◆ getScales()

std::vector< float > peclet::dem::Simulation::getScales ( ) const
inline

Definition at line 839 of file sim.hpp.

References peclet::dem::Particles::numReal, and peclet::dem::Particles::scale.

Referenced by NB_MODULE().

◆ step()

void peclet::dem::Simulation::step ( float  dt)
inline

Definition at line 845 of file sim.hpp.

References peclet::dem::demStep(), and peclet::dem::Particles::dt.

Referenced by exportLammps(), and NB_MODULE().

◆ computeOverlaps()

float peclet::dem::Simulation::computeOverlaps ( )
inline

Definition at line 851 of file sim.hpp.

References peclet::dem::computeOverlapsKokkos().

Referenced by NB_MODULE().

◆ exportLammps()

◆ exportSdf()

void peclet::dem::Simulation::exportSdf ( const std::string &  filename,
int  rx,
int  ry,
int  rz 
)
inline

◆ getSdfGrid()

◆ numParticles()

int peclet::dem::Simulation::numParticles ( ) const
inline

Definition at line 933 of file sim.hpp.

References peclet::dem::Particles::numReal.

Referenced by NB_MODULE().

◆ positionsView()

const V3 & peclet::dem::Simulation::positionsView ( ) const
inline

Definition at line 937 of file sim.hpp.

References peclet::dem::Particles::pos.

Referenced by NB_MODULE().

◆ velocitiesView()

const V3 & peclet::dem::Simulation::velocitiesView ( ) const
inline

Definition at line 938 of file sim.hpp.

References peclet::dem::Particles::vel.

Referenced by NB_MODULE().

◆ numContacts()

int peclet::dem::Simulation::numContacts ( )
inline

Definition at line 939 of file sim.hpp.

References peclet::dem::Particles::contactCount, and peclet::dem::readInt().

Referenced by NB_MODULE().

◆ numManifolds()

int peclet::dem::Simulation::numManifolds ( )
inline

Definition at line 940 of file sim.hpp.

References peclet::dem::Particles::manifoldCount, and peclet::dem::readInt().

Referenced by NB_MODULE().

◆ maxOverlap()

float peclet::dem::Simulation::maxOverlap ( )
inline

Definition at line 941 of file sim.hpp.

References peclet::dem::Particles::maxOverlap.

Referenced by NB_MODULE().

◆ writeVtp()

void peclet::dem::Simulation::writeVtp ( const std::string &  filename) const
inline

The documentation for this class was generated from the following file: