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

The per-contact overlap-projection body lives in PositionContactSweep so the colored launch loop and the fused colour sweep (solver_fused.hpp) share it verbatim: solveOne(idx) must only run concurrently on contacts that are body-disjoint within one launch (a colour class). More...

#include <solver_position.hpp>

Public Member Functions

void solveOne (int u) const
 One work item: every contact of position unit u, sequentially in ascending contact index (a pair's points are a serial Gauss-Seidel sweep inside one item; §4.3).
 
void solveContact (int idx, int u) const
 

Public Attributes

Kokkos::View< const ContactC *, CpMem > contacts
 
Kokkos::View< const float *, CpMem > invMass
 
Kokkos::View< float *[3], CpMem > posPred
 
Kokkos::View< const float *[4], CpMem > quatPred
 
Kokkos::View< const float *[4], CpMem > quatStatic
 
Kokkos::View< const float *[3], CpMem > invInertia
 
Kokkos::View< float, CpMem > maxOverlap
 
Kokkos::View< float *, CpMem > posLambdaAcc
 
PosUnits units
 
SlotOverride ov {}
 
Kokkos::View< float, CpMem > posResidual {}
 
float omega = 1.0f
 

Detailed Description

The per-contact overlap-projection body lives in PositionContactSweep so the colored launch loop and the fused colour sweep (solver_fused.hpp) share it verbatim: solveOne(idx) must only run concurrently on contacts that are body-disjoint within one launch (a colour class).

Definition at line 504 of file solver_position.hpp.

Member Function Documentation

◆ solveOne()

void peclet::dem::PositionContactSweep::solveOne ( int  u) const
inline

One work item: every contact of position unit u, sequentially in ascending contact index (a pair's points are a serial Gauss-Seidel sweep inside one item; §4.3).

A one-point unit is today's per-contact arithmetic on today's contact.

Definition at line 531 of file solver_position.hpp.

References peclet::dem::PosUnits::begin(), peclet::dem::PosUnits::contact(), peclet::dem::PosUnits::end(), solveContact(), and units.

◆ solveContact()

Member Data Documentation

◆ contacts

Kokkos::View<const ContactC*, CpMem> peclet::dem::PositionContactSweep::contacts

Definition at line 505 of file solver_position.hpp.

Referenced by solveContact().

◆ invMass

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

Definition at line 506 of file solver_position.hpp.

Referenced by solveContact().

◆ posPred

Kokkos::View<float* [3], CpMem> peclet::dem::PositionContactSweep::posPred

Definition at line 507 of file solver_position.hpp.

Referenced by solveContact().

◆ quatPred

Kokkos::View<const float* [4], CpMem> peclet::dem::PositionContactSweep::quatPred

Definition at line 508 of file solver_position.hpp.

Referenced by solveContact().

◆ quatStatic

Kokkos::View<const float* [4], CpMem> peclet::dem::PositionContactSweep::quatStatic

Definition at line 509 of file solver_position.hpp.

Referenced by solveContact().

◆ invInertia

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

Definition at line 510 of file solver_position.hpp.

◆ maxOverlap

Kokkos::View<float, CpMem> peclet::dem::PositionContactSweep::maxOverlap

Definition at line 511 of file solver_position.hpp.

Referenced by solveContact().

◆ posLambdaAcc

Kokkos::View<float*, CpMem> peclet::dem::PositionContactSweep::posLambdaAcc

Definition at line 512 of file solver_position.hpp.

Referenced by solveContact().

◆ units

PosUnits peclet::dem::PositionContactSweep::units

Definition at line 514 of file solver_position.hpp.

Referenced by solveContact(), and solveOne().

◆ ov

SlotOverride peclet::dem::PositionContactSweep::ov {}

Definition at line 517 of file solver_position.hpp.

Referenced by solveContact().

◆ posResidual

Kokkos::View<float, CpMem> peclet::dem::PositionContactSweep::posResidual {}

Definition at line 525 of file solver_position.hpp.

Referenced by solveContact().

◆ omega

float peclet::dem::PositionContactSweep::omega = 1.0f

Definition at line 526 of file solver_position.hpp.

Referenced by solveContact().


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