peclet-dem
Performance-portable XPBD Discrete Element Method (Kokkos + ArborX)
Loading...
Searching...
No Matches
dem_portable.hpp File Reference

dem — portable POD types + math + analytic SDFs shared by the Kokkos kernel ports. More...

#include <Kokkos_Core.hpp>
#include <Kokkos_MathematicalFunctions.hpp>

Go to the source code of this file.

Classes

struct  peclet::dem::F3
 
struct  peclet::dem::F4
 

Namespaces

namespace  peclet
 
namespace  peclet::dem
 

Enumerations

enum  peclet::dem::ShapeKind { peclet::dem::SHAPE_GRID_SDF = 0 , peclet::dem::SPHERE = 1 , peclet::dem::HOLLOW_CYLINDER = 2 , peclet::dem::BOX = 3 }
 

Functions

F3 peclet::dem::add3 (F3 a, F3 b)
 
F3 peclet::dem::sub3 (F3 a, F3 b)
 
F3 peclet::dem::scale3 (F3 a, float s)
 
float peclet::dem::dot3 (F3 a, F3 b)
 
float peclet::dem::len3 (F3 v)
 
F3 peclet::dem::cross3v (F3 a, F3 b)
 
F4 peclet::dem::cross3 (F4 a, F4 b)
 
template<class V >
F3 peclet::dem::ldF3 (const V &v, int i)
 
template<class V >
F4 peclet::dem::ldF4 (const V &v, int i)
 
F3 peclet::dem::rotateVector (F4 q, F3 v)
 
F3 peclet::dem::invRotateVector (F4 q, F3 v)
 
F4 peclet::dem::quatInverse (F4 q)
 
F4 peclet::dem::quatMult (F4 a, F4 b)
 
float peclet::dem::sdfSphere (F3 p, F4 params)
 
float peclet::dem::sdfHollowCylinder (F3 p, F4 params)
 
float peclet::dem::sdfBox (F3 p, F4 params)
 
float peclet::dem::sdfEval (F3 p, int type, F4 params)
 

Detailed Description

dem — portable POD types + math + analytic SDFs shared by the Kokkos kernel ports.

Replaces the CUDA-only float3/float4 vector types and the host/__device__ helpers in math_utils.cuh / shapes/sdf_analytic.cuh with backend-agnostic equivalents (KOKKOS_INLINE_FUNCTION, usable on host and any Kokkos backend). The math is a faithful copy of the CUDA versions so ports reproduce the existing behaviour exactly.

Definition in file dem_portable.hpp.