|
peclet-dem
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 | |
| int | nx = 0 |
| int | ny = 0 |
| int | nz = 0 |
| int | gridOffset = 0 |
| F3 | origin {0, 0, 0} |
| F3 | invSpacing {0, 0, 0} |
| F3 | linVel {0, 0, 0} |
| F3 | angVel {0, 0, 0} |
| F3 | center {0, 0, 0} |
| float | restitution = 0.0f |
| float | friction = 0.0f |
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 59 of file narrowphase.hpp.
| int peclet::dem::WallSdf::nx = 0 |
Definition at line 62 of file narrowphase.hpp.
Referenced by peclet::dem::Simulation::addSdfWall(), and peclet::dem::sampleWallSdf().
| int peclet::dem::WallSdf::ny = 0 |
Definition at line 62 of file narrowphase.hpp.
Referenced by peclet::dem::sampleWallSdf().
| int peclet::dem::WallSdf::nz = 0 |
Definition at line 62 of file narrowphase.hpp.
Referenced by peclet::dem::sampleWallSdf().
| int peclet::dem::WallSdf::gridOffset = 0 |
Definition at line 63 of file narrowphase.hpp.
Referenced by peclet::dem::sampleWallSdf().
| F3 peclet::dem::WallSdf::origin {0, 0, 0} |
Definition at line 64 of file narrowphase.hpp.
Referenced by peclet::dem::sampleWallSdf().
| F3 peclet::dem::WallSdf::invSpacing {0, 0, 0} |
Definition at line 65 of file narrowphase.hpp.
Referenced by peclet::dem::sampleWallSdf().
| F3 peclet::dem::WallSdf::linVel {0, 0, 0} |
Definition at line 67 of file narrowphase.hpp.
Referenced by peclet::dem::detectWallSdfKokkos().
| F3 peclet::dem::WallSdf::angVel {0, 0, 0} |
Definition at line 68 of file narrowphase.hpp.
Referenced by peclet::dem::detectWallSdfKokkos().
| F3 peclet::dem::WallSdf::center {0, 0, 0} |
Definition at line 69 of file narrowphase.hpp.
Referenced by peclet::dem::detectWallSdfKokkos().
| float peclet::dem::WallSdf::restitution = 0.0f |
Definition at line 71 of file narrowphase.hpp.
Referenced by peclet::dem::detectWallSdfKokkos().
| float peclet::dem::WallSdf::friction = 0.0f |
Definition at line 72 of file narrowphase.hpp.
Referenced by peclet::dem::detectWallSdfKokkos().