peclet-dem 1.1.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 *, CpMem > manifolds
 
Kokkos::View< const float *, CpMem > invMass
 
Kokkos::View< const float *[3], CpMem > invInertia
 
Kokkos::View< const float *[4], CpMem > quat
 
Kokkos::View< float *[3], CpMem > velPred
 
Kokkos::View< float *[3], CpMem > angVelPred
 
Kokkos::View< const int *, CpMem > realIdx
 
float growthRate
 
float restitutionNormal
 
float restVelThreshold
 
Kokkos::View< float, CpMem > maxApproach
 
Kokkos::View< float, CpMem > maxApproachQS
 
Kokkos::View< float *, CpMem > lambdaAcc
 
Kokkos::View< const float *, CpMem > vn0
 
Kokkos::View< const unsigned char *, CpMem > sideFlag
 
Kokkos::View< float *[3], CpMem > lambdaT
 
float frictionDynamic
 
Kokkos::View< const float *[3], CpMem > vt0
 
float restitutionTangent
 
Kokkos::View< const float *, CpMem > posImpulse
 
Kokkos::View< float *, CpMem > restBank
 
Kokkos::View< float *, CpMem > restRel
 
Kokkos::View< const float *, CpMem > restVPeak
 
Kokkos::View< float *, CpMem > restOrphan
 
Kokkos::View< const float *, CpMem > restOrphanVPeak
 
SlotOverride ov {}
 

Detailed Description

One full colored PGS sweep.

Per manifold: current approach vtil = s*vn, restitution target -e*vtil0 on every closed contact (Moreau; Poisson mode: Newton's -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 1070 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 1071 of file solver_velocity.hpp.

Referenced by solveOne().

◆ invMass

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

Definition at line 1072 of file solver_velocity.hpp.

Referenced by solveOne().

◆ invInertia

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

Definition at line 1073 of file solver_velocity.hpp.

Referenced by solveOne().

◆ quat

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

Definition at line 1074 of file solver_velocity.hpp.

Referenced by solveOne().

◆ velPred

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

Definition at line 1075 of file solver_velocity.hpp.

Referenced by solveOne().

◆ angVelPred

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

Definition at line 1076 of file solver_velocity.hpp.

Referenced by solveOne().

◆ realIdx

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

Definition at line 1077 of file solver_velocity.hpp.

Referenced by solveOne().

◆ growthRate

float peclet::dem::PGSManifoldSweep::growthRate

Definition at line 1078 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restitutionNormal

float peclet::dem::PGSManifoldSweep::restitutionNormal

Definition at line 1079 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restVelThreshold

float peclet::dem::PGSManifoldSweep::restVelThreshold

Definition at line 1080 of file solver_velocity.hpp.

Referenced by solveOne().

◆ maxApproach

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

Definition at line 1081 of file solver_velocity.hpp.

Referenced by solveOne().

◆ maxApproachQS

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

Definition at line 1085 of file solver_velocity.hpp.

Referenced by solveOne().

◆ lambdaAcc

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

Definition at line 1086 of file solver_velocity.hpp.

Referenced by solveOne().

◆ vn0

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

Definition at line 1087 of file solver_velocity.hpp.

Referenced by solveOne().

◆ sideFlag

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

Definition at line 1088 of file solver_velocity.hpp.

Referenced by solveOne().

◆ lambdaT

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

Definition at line 1089 of file solver_velocity.hpp.

Referenced by solveOne().

◆ frictionDynamic

float peclet::dem::PGSManifoldSweep::frictionDynamic

Definition at line 1090 of file solver_velocity.hpp.

Referenced by solveOne().

◆ vt0

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

Definition at line 1091 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restitutionTangent

float peclet::dem::PGSManifoldSweep::restitutionTangent

Definition at line 1092 of file solver_velocity.hpp.

Referenced by solveOne().

◆ posImpulse

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

Definition at line 1093 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restBank

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

Definition at line 1105 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restRel

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

Definition at line 1106 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restVPeak

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

Definition at line 1111 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restOrphan

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

Definition at line 1116 of file solver_velocity.hpp.

Referenced by solveOne().

◆ restOrphanVPeak

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

Definition at line 1117 of file solver_velocity.hpp.

Referenced by solveOne().

◆ ov

SlotOverride peclet::dem::PGSManifoldSweep::ov {}

Definition at line 1120 of file solver_velocity.hpp.

Referenced by solveOne().


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