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

One full colored PGS sweep. More...

#include <solver_velocity.hpp>

Public Member Functions

void solveOne (int idx) const
 

Public Attributes

Kokkos::View< const ManifoldC *, CpMemmanifolds
 
Kokkos::View< const float *, CpMeminvMass
 
Kokkos::View< const float *[3], CpMeminvInertia
 
Kokkos::View< const float *[4], CpMemquat
 
Kokkos::View< float *[3], CpMemvelPred
 
Kokkos::View< float *[3], CpMemangVelPred
 
Kokkos::View< const int *, CpMemrealIdx
 
float growthRate
 
float restitutionNormal
 
float restVelThreshold
 
Kokkos::View< float, CpMemmaxApproach
 
Kokkos::View< float, CpMemmaxApproachQS
 
Kokkos::View< float *, CpMemlambdaAcc
 
Kokkos::View< const float *, CpMemvn0
 
Kokkos::View< const unsigned char *, CpMemsideFlag
 
Kokkos::View< float *[3], CpMemlambdaT
 
float frictionDynamic
 
Kokkos::View< const float *[3], CpMemvt0
 
float restitutionTangent
 
Kokkos::View< const float *, CpMemposImpulse
 
Kokkos::View< float *, CpMemrestBank
 
Kokkos::View< float *, CpMemrestRel
 
Kokkos::View< const unsigned char *, CpMemrestPersistent
 
Kokkos::View< const float *, CpMemrestVPeak
 
F3 restGHat {0, 0, 0}
 
Kokkos::View< const unsigned char *, CpMemrestGrounded
 
bool restNewtonOff = false
 
bool restOneSided = false
 
Kokkos::View< float *, CpMemrestOrphan
 
Kokkos::View< const float *, CpMemrestOrphanVPeak
 

Detailed Description

One full colored PGS sweep.

Per manifold: current approach vtil = s*vn, restitution target -e*max(vtil0,0) (e via the resting threshold on vn0), incremental impulse dp = (vtil-target)/w, accumulator projection p := max(0, p+dp), apply the applied difference in place. maxApproach records the largest applied velocity correction (physical units) for the adaptive stop.

The per-manifold solve body lives in PGSManifoldSweep so the colored sweep and the level-ordered ("multilevel") bucket sweep share it verbatim: solveOne(idx) must only run concurrently on manifolds that are body-disjoint within one launch (a colour class, or a (level, colour) bucket – a subset of a colour class).

Definition at line 985 of file solver_velocity.hpp.

Member Function Documentation

◆ solveOne()

Member Data Documentation

◆ manifolds

Kokkos::View<const ManifoldC*, CpMem> peclet::dem::PGSManifoldSweep::manifolds

Definition at line 986 of file solver_velocity.hpp.

Referenced by solveOne().

◆ invMass

Kokkos::View<const float*, CpMem> peclet::dem::PGSManifoldSweep::invMass

Definition at line 987 of file solver_velocity.hpp.

Referenced by solveOne().

◆ invInertia

Kokkos::View<const float* [3], CpMem> peclet::dem::PGSManifoldSweep::invInertia

Definition at line 988 of file solver_velocity.hpp.

Referenced by solveOne().

◆ quat

Kokkos::View<const float* [4], CpMem> peclet::dem::PGSManifoldSweep::quat

Definition at line 989 of file solver_velocity.hpp.

Referenced by solveOne().

◆ velPred

Kokkos::View<float* [3], CpMem> peclet::dem::PGSManifoldSweep::velPred

Definition at line 990 of file solver_velocity.hpp.

Referenced by solveOne().

◆ angVelPred

Kokkos::View<float* [3], CpMem> peclet::dem::PGSManifoldSweep::angVelPred

Definition at line 991 of file solver_velocity.hpp.

Referenced by solveOne().

◆ realIdx

Kokkos::View<const int*, CpMem> peclet::dem::PGSManifoldSweep::realIdx

Definition at line 992 of file solver_velocity.hpp.

Referenced by solveOne().

◆ growthRate

float peclet::dem::PGSManifoldSweep::growthRate

Definition at line 993 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restitutionNormal

float peclet::dem::PGSManifoldSweep::restitutionNormal

Definition at line 994 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restVelThreshold

float peclet::dem::PGSManifoldSweep::restVelThreshold

Definition at line 995 of file solver_velocity.hpp.

Referenced by solveOne().

◆ maxApproach

Kokkos::View<float, CpMem> peclet::dem::PGSManifoldSweep::maxApproach

Definition at line 996 of file solver_velocity.hpp.

Referenced by solveOne().

◆ maxApproachQS

Kokkos::View<float, CpMem> peclet::dem::PGSManifoldSweep::maxApproachQS

Definition at line 1000 of file solver_velocity.hpp.

Referenced by solveOne().

◆ lambdaAcc

Kokkos::View<float*, CpMem> peclet::dem::PGSManifoldSweep::lambdaAcc

Definition at line 1001 of file solver_velocity.hpp.

Referenced by solveOne().

◆ vn0

Kokkos::View<const float*, CpMem> peclet::dem::PGSManifoldSweep::vn0

Definition at line 1002 of file solver_velocity.hpp.

Referenced by solveOne().

◆ sideFlag

Kokkos::View<const unsigned char*, CpMem> peclet::dem::PGSManifoldSweep::sideFlag

Definition at line 1003 of file solver_velocity.hpp.

Referenced by solveOne().

◆ lambdaT

Kokkos::View<float* [3], CpMem> peclet::dem::PGSManifoldSweep::lambdaT

Definition at line 1004 of file solver_velocity.hpp.

Referenced by solveOne().

◆ frictionDynamic

float peclet::dem::PGSManifoldSweep::frictionDynamic

Definition at line 1005 of file solver_velocity.hpp.

Referenced by solveOne().

◆ vt0

Kokkos::View<const float* [3], CpMem> peclet::dem::PGSManifoldSweep::vt0

Definition at line 1006 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restitutionTangent

float peclet::dem::PGSManifoldSweep::restitutionTangent

Definition at line 1007 of file solver_velocity.hpp.

Referenced by solveOne().

◆ posImpulse

Kokkos::View<const float*, CpMem> peclet::dem::PGSManifoldSweep::posImpulse

Definition at line 1008 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restBank

Kokkos::View<float*, CpMem> peclet::dem::PGSManifoldSweep::restBank

Definition at line 1021 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restRel

Kokkos::View<float*, CpMem> peclet::dem::PGSManifoldSweep::restRel

Definition at line 1022 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restPersistent

Kokkos::View<const unsigned char*, CpMem> peclet::dem::PGSManifoldSweep::restPersistent

Definition at line 1023 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restVPeak

Kokkos::View<const float*, CpMem> peclet::dem::PGSManifoldSweep::restVPeak

Definition at line 1028 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restGHat

F3 peclet::dem::PGSManifoldSweep::restGHat {0, 0, 0}

Definition at line 1034 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restGrounded

Kokkos::View<const unsigned char*, CpMem> peclet::dem::PGSManifoldSweep::restGrounded

Definition at line 1035 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restNewtonOff

bool peclet::dem::PGSManifoldSweep::restNewtonOff = false

Definition at line 1037 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restOneSided

bool peclet::dem::PGSManifoldSweep::restOneSided = false

Definition at line 1038 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restOrphan

Kokkos::View<float*, CpMem> peclet::dem::PGSManifoldSweep::restOrphan

Definition at line 1043 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restOrphanVPeak

Kokkos::View<const float*, CpMem> peclet::dem::PGSManifoldSweep::restOrphanVPeak

Definition at line 1044 of file solver_velocity.hpp.

Referenced by solveOne().


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