|
peclet-dem
Performance-portable XPBD Discrete Element Method (Kokkos + ArborX)
|
#include <particles.hpp>
Public Member Functions | |
| void | allocate (int cap, int maxPairs_, int maxContacts_, int nShapes, int nShell, int nPlanes) |
| void | ensureCapacity (int newCap) |
| Kokkos::View< const float *[3], CpMem > | cpos () const |
| Kokkos::View< const float *, CpMem > | crad () const |
Public Attributes | |
| V3 | pos |
| Vf | invMass |
| V4 | quat |
| V3 | vel |
| V3 | angVel |
| V3 | invInertia |
| Vf | scale |
| Vf | targetScale |
| Vi | shapeId |
| V3 | posPred |
| V4 | quatPred |
| V3 | velPred |
| V3 | angVelPred |
| V3 | deltaPos |
| V4 | deltaQuat |
| V3 | deltaVel |
| V3 | deltaAngVel |
| Vi | constraintCounts |
| Vi | realIndices |
| Kokkos::View< float *[2], CpMem > | planeFriction |
| Vf | rad |
| V3 | extForce |
| Kokkos::View< int *[2], CpMem > | pairs |
| Kokkos::View< ContactC *, CpMem > | contacts |
| Kokkos::View< ManifoldC *, CpMem > | manifolds |
| Kokkos::View< int, CpMem > | pairCount |
| Kokkos::View< int, CpMem > | contactCount |
| Kokkos::View< int, CpMem > | manifoldCount |
| Kokkos::View< int, CpMem > | topGhost |
| Kokkos::View< float, CpMem > | maxOverlap |
| Kokkos::View< ShapeDesc *, CpMem > | shapes |
| Kokkos::View< float *[3], CpMem > | shell |
| Kokkos::View< PlaneP *, CpMem > | planes |
| Kokkos::View< float *, CpMem > | sdfGrid |
| Kokkos::View< WallSdf *, CpMem > | walls |
| Kokkos::View< float *, CpMem > | wallGrid |
| int | capacity = 0 |
| int | numReal = 0 |
| int | numParticles = 0 |
| int | maxPairs = 0 |
| int | maxContacts = 0 |
| int | numPlanes = 0 |
| int | numWalls = 0 |
| float | wallFrictionMax = 0.0f |
| Domain | domain {} |
| F3 | gravity {0, 0, 0} |
| float | dt = 1e-3f |
| float | globalScale = 1.0f |
| float | growthRate = 0.0f |
| float | growthFactor = -1.0f |
| float | baseRadius = 1.0f |
| float | thermostatTau = 0.0f |
| float | thermostatTemp = 0.0f |
| float | thermostatKB = 1.0f |
| float | frictionDynamic = 0.0f |
| float | restitutionNormal = 0.0f |
| float | skin = 0.1f |
| int | positionIterations = 10 |
| int | velocityIterations = 0 |
Definition at line 21 of file particles.hpp.
|
inline |
Definition at line 80 of file particles.hpp.
References angVel, angVelPred, capacity, constraintCounts, contactCount, contacts, deltaAngVel, deltaPos, deltaQuat, deltaVel, extForce, invInertia, invMass, manifoldCount, manifolds, maxContacts, maxOverlap, maxPairs, numPlanes, numWalls, pairCount, pairs, planeFriction, planes, pos, posPred, quat, quatPred, rad, realIndices, scale, sdfGrid, shapeId, shapes, shell, targetScale, topGhost, vel, velPred, wallGrid, and walls.
Referenced by peclet::dem::Simulation::Simulation().
|
inline |
Definition at line 131 of file particles.hpp.
References angVel, angVelPred, capacity, constraintCounts, deltaAngVel, deltaPos, deltaQuat, deltaVel, extForce, invInertia, invMass, planeFriction, pos, posPred, quat, quatPred, rad, realIndices, scale, shapeId, targetScale, vel, and velPred.
Referenced by peclet::dem::computeOverlapsKokkos(), and peclet::dem::demStep().
|
inline |
Definition at line 160 of file particles.hpp.
References pos.
|
inline |
Definition at line 161 of file particles.hpp.
References rad.
Referenced by peclet::dem::findCollisionsGrow().
| V3 peclet::dem::Particles::pos |
Definition at line 23 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), cpos(), peclet::dem::demStep(), ensureCapacity(), peclet::dem::Simulation::getPositions(), peclet::dem::Simulation::getSdfGrid(), peclet::dem::Simulation::positionsView(), peclet::dem::Simulation::setPositions(), and peclet::dem::Simulation::writeVtp().
| Vf peclet::dem::Particles::invMass |
Definition at line 24 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), ensureCapacity(), peclet::dem::Simulation::getMasses(), peclet::dem::Simulation::setInvMass(), and peclet::dem::Simulation::setPositions().
| V4 peclet::dem::Particles::quat |
Definition at line 25 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), ensureCapacity(), peclet::dem::Simulation::getQuaternions(), peclet::dem::Simulation::getSdfGrid(), peclet::dem::Simulation::setPositions(), and peclet::dem::Simulation::setQuaternions().
| V3 peclet::dem::Particles::vel |
Definition at line 26 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), ensureCapacity(), peclet::dem::Simulation::getVelocities(), peclet::dem::Simulation::setPositions(), peclet::dem::Simulation::setVelocities(), peclet::dem::Simulation::velocitiesView(), and peclet::dem::Simulation::writeVtp().
| V3 peclet::dem::Particles::angVel |
Definition at line 27 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), ensureCapacity(), peclet::dem::Simulation::getAngularVelocities(), peclet::dem::Simulation::setAngularVelocities(), and peclet::dem::Simulation::setPositions().
| V3 peclet::dem::Particles::invInertia |
Definition at line 28 of file particles.hpp.
Referenced by allocate(), peclet::dem::demStep(), ensureCapacity(), peclet::dem::Simulation::getInvInertia(), peclet::dem::Simulation::setInvInertia(), and peclet::dem::Simulation::setPositions().
| Vf peclet::dem::Particles::scale |
Definition at line 29 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), ensureCapacity(), peclet::dem::Simulation::exportLammps(), peclet::dem::Simulation::getScales(), peclet::dem::Simulation::getSdfGrid(), peclet::dem::maxOwnedRadius(), peclet::dem::Simulation::setGrowthParams(), peclet::dem::Simulation::setPositions(), peclet::dem::Simulation::setScales(), peclet::dem::Simulation::setScalesUniform(), and peclet::dem::Simulation::writeVtp().
| Vf peclet::dem::Particles::targetScale |
Definition at line 30 of file particles.hpp.
Referenced by allocate(), peclet::dem::demStep(), ensureCapacity(), peclet::dem::Simulation::setGrowthParams(), peclet::dem::Simulation::setPositions(), peclet::dem::Simulation::setScales(), and peclet::dem::Simulation::setScalesUniform().
| Vi peclet::dem::Particles::shapeId |
Definition at line 31 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), ensureCapacity(), peclet::dem::Simulation::getSdfGrid(), and peclet::dem::Simulation::setPositions().
| V3 peclet::dem::Particles::posPred |
Definition at line 32 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), ensureCapacity(), and peclet::dem::findCollisionsGrow().
| V4 peclet::dem::Particles::quatPred |
Definition at line 33 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), and ensureCapacity().
| V3 peclet::dem::Particles::velPred |
Definition at line 34 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), and ensureCapacity().
| V3 peclet::dem::Particles::angVelPred |
Definition at line 35 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), and ensureCapacity().
| V3 peclet::dem::Particles::deltaPos |
Definition at line 36 of file particles.hpp.
Referenced by allocate(), peclet::dem::demStep(), and ensureCapacity().
| V4 peclet::dem::Particles::deltaQuat |
Definition at line 37 of file particles.hpp.
Referenced by allocate(), peclet::dem::demStep(), and ensureCapacity().
| V3 peclet::dem::Particles::deltaVel |
Definition at line 38 of file particles.hpp.
Referenced by allocate(), peclet::dem::demStep(), and ensureCapacity().
| V3 peclet::dem::Particles::deltaAngVel |
Definition at line 39 of file particles.hpp.
Referenced by allocate(), peclet::dem::demStep(), and ensureCapacity().
| Vi peclet::dem::Particles::constraintCounts |
Definition at line 40 of file particles.hpp.
Referenced by allocate(), peclet::dem::demStep(), and ensureCapacity().
| Vi peclet::dem::Particles::realIndices |
Definition at line 41 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), and ensureCapacity().
| Kokkos::View<float* [2], CpMem> peclet::dem::Particles::planeFriction |
Definition at line 42 of file particles.hpp.
Referenced by allocate(), peclet::dem::demStep(), and ensureCapacity().
| Vf peclet::dem::Particles::rad |
Definition at line 43 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), crad(), peclet::dem::demStep(), and ensureCapacity().
| V3 peclet::dem::Particles::extForce |
Definition at line 44 of file particles.hpp.
Referenced by allocate(), peclet::dem::Simulation::clearExternalForces(), peclet::dem::demStep(), ensureCapacity(), peclet::dem::Simulation::externalForcesView(), and peclet::dem::Simulation::setExternalForces().
| Kokkos::View<int* [2], CpMem> peclet::dem::Particles::pairs |
Definition at line 47 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), and peclet::dem::findCollisionsGrow().
Definition at line 48 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), and peclet::dem::demStep().
Definition at line 49 of file particles.hpp.
Referenced by allocate(), and peclet::dem::demStep().
| Kokkos::View<int, CpMem> peclet::dem::Particles::pairCount |
Definition at line 52 of file particles.hpp.
Referenced by allocate(), and peclet::dem::findCollisionsGrow().
| Kokkos::View<int, CpMem> peclet::dem::Particles::contactCount |
Definition at line 52 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), and peclet::dem::Simulation::numContacts().
| Kokkos::View<int, CpMem> peclet::dem::Particles::manifoldCount |
Definition at line 52 of file particles.hpp.
Referenced by allocate(), peclet::dem::demStep(), and peclet::dem::Simulation::numManifolds().
| Kokkos::View<int, CpMem> peclet::dem::Particles::topGhost |
Definition at line 52 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), and peclet::dem::demStep().
| Kokkos::View<float, CpMem> peclet::dem::Particles::maxOverlap |
Definition at line 53 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), and peclet::dem::Simulation::maxOverlap().
Definition at line 56 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), peclet::dem::Simulation::getSdfGrid(), peclet::dem::Simulation::initializeShape(), and peclet::dem::Simulation::setSdfShape().
| Kokkos::View<float* [3], CpMem> peclet::dem::Particles::shell |
Definition at line 57 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), peclet::dem::Simulation::initializeShape(), and peclet::dem::Simulation::setSdfShape().
Definition at line 58 of file particles.hpp.
Referenced by peclet::dem::Simulation::addPlane(), allocate(), peclet::dem::computeOverlapsKokkos(), and peclet::dem::demStep().
| Kokkos::View<float*, CpMem> peclet::dem::Particles::sdfGrid |
Definition at line 59 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), peclet::dem::Simulation::getSdfGrid(), and peclet::dem::Simulation::setSdfShape().
Definition at line 61 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), and peclet::dem::demStep().
| Kokkos::View<float*, CpMem> peclet::dem::Particles::wallGrid |
Definition at line 62 of file particles.hpp.
Referenced by peclet::dem::Simulation::addSdfWall(), allocate(), peclet::dem::computeOverlapsKokkos(), and peclet::dem::demStep().
| int peclet::dem::Particles::capacity = 0 |
Definition at line 65 of file particles.hpp.
Referenced by allocate(), peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), and ensureCapacity().
| int peclet::dem::Particles::numReal = 0 |
Definition at line 65 of file particles.hpp.
Referenced by peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), peclet::dem::Simulation::exportLammps(), peclet::dem::findCollisionsGrow(), peclet::dem::Simulation::getAngularVelocities(), 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::maxOwnedRadius(), peclet::dem::Simulation::numParticles(), peclet::dem::Simulation::setAngularVelocities(), peclet::dem::Simulation::setExternalForces(), peclet::dem::Simulation::setGrowthParams(), peclet::dem::Simulation::setInvInertia(), peclet::dem::Simulation::setInvMass(), peclet::dem::Simulation::setPositions(), peclet::dem::Simulation::setQuaternions(), peclet::dem::Simulation::setScales(), peclet::dem::Simulation::setScalesUniform(), peclet::dem::Simulation::setVelocities(), and peclet::dem::Simulation::writeVtp().
| int peclet::dem::Particles::numParticles = 0 |
Definition at line 65 of file particles.hpp.
Referenced by peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), peclet::dem::findCollisionsGrow(), and peclet::dem::Simulation::setPositions().
| int peclet::dem::Particles::maxPairs = 0 |
Definition at line 66 of file particles.hpp.
Referenced by allocate(), and peclet::dem::findCollisionsGrow().
| int peclet::dem::Particles::maxContacts = 0 |
Definition at line 66 of file particles.hpp.
Referenced by allocate().
| int peclet::dem::Particles::numPlanes = 0 |
Definition at line 66 of file particles.hpp.
Referenced by peclet::dem::Simulation::addPlane(), allocate(), peclet::dem::computeOverlapsKokkos(), and peclet::dem::demStep().
| int peclet::dem::Particles::numWalls = 0 |
Definition at line 66 of file particles.hpp.
Referenced by peclet::dem::Simulation::addSdfWall(), allocate(), peclet::dem::computeOverlapsKokkos(), and peclet::dem::demStep().
| float peclet::dem::Particles::wallFrictionMax = 0.0f |
Definition at line 69 of file particles.hpp.
Referenced by peclet::dem::Simulation::addSdfWall(), and peclet::dem::demStep().
| Domain peclet::dem::Particles::domain {} |
Definition at line 70 of file particles.hpp.
Referenced by peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), peclet::dem::Simulation::enablePeriodicity(), peclet::dem::Simulation::exportLammps(), peclet::dem::Simulation::exportSdf(), peclet::dem::findCollisionsGrow(), peclet::dem::Simulation::getDomainMax(), peclet::dem::Simulation::getDomainMin(), peclet::dem::Simulation::getSdfGrid(), peclet::dem::Simulation::setDomain(), and peclet::dem::Simulation::setDomainMinMax().
| F3 peclet::dem::Particles::gravity {0, 0, 0} |
Definition at line 71 of file particles.hpp.
Referenced by peclet::dem::demStep(), and peclet::dem::Simulation::setGravity().
| float peclet::dem::Particles::dt = 1e-3f |
Definition at line 72 of file particles.hpp.
Referenced by peclet::dem::demStep(), peclet::dem::Simulation::setDt(), and peclet::dem::Simulation::step().
| float peclet::dem::Particles::globalScale = 1.0f |
Definition at line 72 of file particles.hpp.
Referenced by peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), peclet::dem::Simulation::exportLammps(), peclet::dem::maxOwnedRadius(), peclet::dem::Simulation::setDomain(), peclet::dem::Simulation::setDomainMinMax(), peclet::dem::Simulation::setGlobalScale(), and peclet::dem::Simulation::writeVtp().
| float peclet::dem::Particles::growthRate = 0.0f |
Definition at line 72 of file particles.hpp.
Referenced by peclet::dem::demStep(), peclet::dem::Simulation::getGrowthRate(), and peclet::dem::Simulation::setGrowthParams().
| float peclet::dem::Particles::growthFactor = -1.0f |
Definition at line 72 of file particles.hpp.
Referenced by peclet::dem::demStep(), peclet::dem::Simulation::growthFactor(), and peclet::dem::Simulation::setGrowthParams().
| float peclet::dem::Particles::baseRadius = 1.0f |
Definition at line 73 of file particles.hpp.
Referenced by peclet::dem::computeOverlapsKokkos(), peclet::dem::demStep(), peclet::dem::Simulation::initializeShape(), peclet::dem::maxOwnedRadius(), and peclet::dem::Simulation::setSdfShape().
| float peclet::dem::Particles::thermostatTau = 0.0f |
Definition at line 74 of file particles.hpp.
Referenced by peclet::dem::demStep(), and peclet::dem::Simulation::setThermostat().
| float peclet::dem::Particles::thermostatTemp = 0.0f |
Definition at line 74 of file particles.hpp.
Referenced by peclet::dem::demStep(), and peclet::dem::Simulation::setThermostat().
| float peclet::dem::Particles::thermostatKB = 1.0f |
Definition at line 75 of file particles.hpp.
Referenced by peclet::dem::demStep(), and peclet::dem::Simulation::setThermostat().
| float peclet::dem::Particles::frictionDynamic = 0.0f |
Definition at line 76 of file particles.hpp.
Referenced by peclet::dem::demStep(), and peclet::dem::Simulation::setMaterialParams().
| float peclet::dem::Particles::restitutionNormal = 0.0f |
Definition at line 76 of file particles.hpp.
Referenced by peclet::dem::demStep(), and peclet::dem::Simulation::setMaterialParams().
| float peclet::dem::Particles::skin = 0.1f |
Definition at line 76 of file particles.hpp.
Referenced by peclet::dem::Simulation::setDomain(), peclet::dem::Simulation::setDomainMinMax(), and peclet::dem::Simulation::setGlobalScale().
| int peclet::dem::Particles::positionIterations = 10 |
Definition at line 77 of file particles.hpp.
Referenced by peclet::dem::demStep(), and peclet::dem::Simulation::setSolverIterations().
| int peclet::dem::Particles::velocityIterations = 0 |
Definition at line 77 of file particles.hpp.
Referenced by peclet::dem::demStep(), and peclet::dem::Simulation::setSolverIterations().