peclet-dem
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

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
 

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 59 of file narrowphase.hpp.

Member Data Documentation

◆ nx

int peclet::dem::WallSdf::nx = 0

◆ ny

int peclet::dem::WallSdf::ny = 0

Definition at line 62 of file narrowphase.hpp.

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

◆ nz

int peclet::dem::WallSdf::nz = 0

Definition at line 62 of file narrowphase.hpp.

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

◆ gridOffset

int peclet::dem::WallSdf::gridOffset = 0

Definition at line 63 of file narrowphase.hpp.

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

◆ origin

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

Definition at line 64 of file narrowphase.hpp.

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

◆ invSpacing

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

Definition at line 65 of file narrowphase.hpp.

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

◆ linVel

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

Definition at line 67 of file narrowphase.hpp.

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

◆ angVel

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

Definition at line 68 of file narrowphase.hpp.

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

◆ center

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

Definition at line 69 of file narrowphase.hpp.

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

◆ restitution

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

Definition at line 71 of file narrowphase.hpp.

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

◆ friction

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

Definition at line 72 of file narrowphase.hpp.

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


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