|
peclet-dem
Performance-portable XPBD Discrete Element Method (Kokkos + ArborX)
|
dem — portable (Kokkos) manifold velocity solve (normal restitution impulse). More...
Go to the source code of this file.
Namespaces | |
| namespace | peclet |
| namespace | peclet::dem |
| namespace | peclet::dem::detail |
Functions | |
| F3 | peclet::dem::detail::ld3 (Kokkos::View< const float *[3], CpMem > v, int i) |
| float | peclet::dem::detail::genInvMass (F3 tau, F3 invIlocal, F4 q) |
| void | peclet::dem::solveVelocityKokkos (Kokkos::View< const ManifoldC *, CpMem > manifolds, int numManifolds, Kokkos::View< const float *, CpMem > invMass, Kokkos::View< const float *[3], CpMem > invInertia, Kokkos::View< const float *[4], CpMem > quat, Kokkos::View< const float *[3], CpMem > velPred, Kokkos::View< const float *[3], CpMem > angVelPred, Kokkos::View< const int *, CpMem > realIdx, float growthRate, float restitutionNormal, Kokkos::View< float *[3], CpMem > deltaVel, Kokkos::View< float *[3], CpMem > deltaAngVel) |
Accumulate normal-restitution velocity deltas for numManifolds manifolds. | |
dem — portable (Kokkos) manifold velocity solve (normal restitution impulse).
Kokkos port of solve_velocity_jacobi_kernel (solver_velocity.cu): one thread per manifold computes the aggregate normal impulse (with growth-velocity term and restitution) and atomically scatters the linear/angular velocity deltas onto the two bodies' REAL indices. Faithful copy of the CUDA math; runs on the particle SoA expressed as Kokkos Views. Friction is a separate per-contact pass (solver_position) and is not done here, matching the original.
Definition in file solver_velocity.hpp.