|
peclet-dem 1.1.0
Performance-portable XPBD Discrete Element Method (Kokkos + ArborX)
|
Static, world-space SDF container/geometry the particles collide against (a drum barrel, a hopper, a vibrating tray, ...). More...
#include <narrowphase.hpp>
Public Attributes | |
| peclet::core::geom::GridDesc< float > | grid |
| const peclet::core::geom::ShapeNode< float > * | nodes = nullptr |
| int | nodeCount = 0 |
| int | shapeRoot = -1 |
| float | sign = 1.0f |
| F3 | linVel {0, 0, 0} |
| F3 | angVel {0, 0, 0} |
| F3 | center {0, 0, 0} |
| float | restitution = 0.0f |
| float | friction = 0.0f |
| int | materialId = -1 |
Static, world-space SDF container/geometry the particles collide against (a drum barrel, a hopper, a vibrating tray, ...).
Unlike a particle grid SDF (canonical body space, sdfEvalShape), this field is sampled directly in WORLD coordinates, and its zero level set is the container wall.
SIGN: positive in the void where the grains live, negative inside the solid wall — so a grain surface point has SDF > 0 when clear and SDF < 0 when it has poked into the wall (the penetration depth), and the outward gradient points from the wall back into the void (the push-out normal).
The geometry never moves, but it carries a rigid-body SURFACE VELOCITY field v(x) = linVel + angVel × (x − center) evaluated at the contact point, so a grain touching the wall feels the wall's motion (a rotating drum drags grains up its rising side; a translating linVel set sinusoidally each step is a vibrating wall) even though the field itself is static. Plus a binary (particle–wall) material.
Definition at line 70 of file narrowphase.hpp.
| peclet::core::geom::GridDesc<float> peclet::dem::WallSdf::grid |
Definition at line 74 of file narrowphase.hpp.
Referenced by peclet::dem::Simulation::addSdfWall(), and peclet::dem::sampleWallSdf().
| const peclet::core::geom::ShapeNode<float>* peclet::dem::WallSdf::nodes = nullptr |
Definition at line 82 of file narrowphase.hpp.
Referenced by peclet::dem::sampleWallSdf().
| int peclet::dem::WallSdf::nodeCount = 0 |
Definition at line 83 of file narrowphase.hpp.
Referenced by peclet::dem::sampleWallSdf().
| int peclet::dem::WallSdf::shapeRoot = -1 |
Definition at line 84 of file narrowphase.hpp.
Referenced by peclet::dem::Simulation::addAnalyticWall(), and peclet::dem::sampleWallSdf().
| float peclet::dem::WallSdf::sign = 1.0f |
Definition at line 85 of file narrowphase.hpp.
Referenced by peclet::dem::sampleWallSdf().
| F3 peclet::dem::WallSdf::linVel {0, 0, 0} |
Definition at line 87 of file narrowphase.hpp.
| F3 peclet::dem::WallSdf::angVel {0, 0, 0} |
Definition at line 88 of file narrowphase.hpp.
| F3 peclet::dem::WallSdf::center {0, 0, 0} |
Definition at line 89 of file narrowphase.hpp.
| float peclet::dem::WallSdf::restitution = 0.0f |
Definition at line 91 of file narrowphase.hpp.
| float peclet::dem::WallSdf::friction = 0.0f |
Definition at line 92 of file narrowphase.hpp.
| int peclet::dem::WallSdf::materialId = -1 |
Definition at line 95 of file narrowphase.hpp.