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

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
 

Detailed Description

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.

Member Data Documentation

◆ grid

peclet::core::geom::GridDesc<float> peclet::dem::WallSdf::grid

◆ nodes

const peclet::core::geom::ShapeNode<float>* peclet::dem::WallSdf::nodes = nullptr

Definition at line 82 of file narrowphase.hpp.

Referenced by peclet::dem::sampleWallSdf().

◆ nodeCount

int peclet::dem::WallSdf::nodeCount = 0

Definition at line 83 of file narrowphase.hpp.

Referenced by peclet::dem::sampleWallSdf().

◆ shapeRoot

int peclet::dem::WallSdf::shapeRoot = -1

◆ sign

float peclet::dem::WallSdf::sign = 1.0f

Definition at line 85 of file narrowphase.hpp.

Referenced by peclet::dem::sampleWallSdf().

◆ linVel

F3 peclet::dem::WallSdf::linVel {0, 0, 0}

Definition at line 87 of file narrowphase.hpp.

◆ angVel

F3 peclet::dem::WallSdf::angVel {0, 0, 0}

Definition at line 88 of file narrowphase.hpp.

◆ center

F3 peclet::dem::WallSdf::center {0, 0, 0}

Definition at line 89 of file narrowphase.hpp.

◆ restitution

float peclet::dem::WallSdf::restitution = 0.0f

Definition at line 91 of file narrowphase.hpp.

◆ friction

float peclet::dem::WallSdf::friction = 0.0f

Definition at line 92 of file narrowphase.hpp.

◆ materialId

int peclet::dem::WallSdf::materialId = -1

Definition at line 95 of file narrowphase.hpp.


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