20 #ifndef GEOS_COMMON_DATALAYOUTS_HPP_
21 #define GEOS_COMMON_DATALAYOUTS_HPP_
25 #include "LvArray/src/Array.hpp"
26 #include "RAJA/RAJA.hpp"
44 template<
typename PERM >
45 static constexpr
int getUSD = LvArray::typeManipulation::getStrideOneDimension( PERM {} );
50 #if defined( GEOS_USE_DEVICE )
53 using REFERENCE_POSITION_PERM = RAJA::PERM_JI;
56 using TOTAL_DISPLACEMENT_PERM = RAJA::PERM_JI;
59 using INCR_DISPLACEMENT_PERM = RAJA::PERM_JI;
62 using VELOCITY_PERM = RAJA::PERM_JI;
65 using ACCELERATION_PERM = RAJA::PERM_JI;
106 #if defined( GEOS_USE_CUDA )
109 using REFERENCE_POSITION_PERM = RAJA::PERM_JI;
112 using TOTAL_DISPLACEMENT_PERM = RAJA::PERM_JI;
115 using VELOCITY_PERM = RAJA::PERM_JI;
118 using ACCELERATION_PERM = RAJA::PERM_JI;
143 static constexpr
int VELOCITY_USD = LvArray::typeManipulation::getStrideOneDimension(
VELOCITY_PERM {} );
146 static constexpr
int ACCELERATION_USD = LvArray::typeManipulation::getStrideOneDimension(
ACCELERATION_PERM {} );
153 #if defined( GEOS_USE_DEVICE )
156 using NODE_MAP_PERMUTATION = RAJA::PERM_JI;
159 using STRAIN_PERM = RAJA::PERM_JI;
182 #if defined( GEOS_USE_DEVICE )
185 using STRESS_PERMUTATION = RAJA::PERM_KJI;
188 using STIFFNESS_PERMUTATION = RAJA::PERM_KJI;
211 #if defined( GEOS_USE_DEVICE )
214 using LAYOUT_COMP = RAJA::PERM_JI;
217 using LAYOUT_COMP_DC = RAJA::PERM_JKI;
220 using LAYOUT_PHASE = RAJA::PERM_JI;
223 using LAYOUT_PHASE_DC = RAJA::PERM_JKI;
226 using LAYOUT_PHASE_COMP = RAJA::PERM_JKI;
229 using LAYOUT_FLUID_DC = RAJA::PERM_JI;
232 using LAYOUT_OBL_OPERATOR_VALUES = RAJA::PERM_JI;
235 using LAYOUT_OBL_OPERATOR_DERIVATIVES = RAJA::PERM_JKI;
RAJA::PERM_IJ REFERENCE_POSITION_PERM
Particle reference position permutation when not using cuda.
RAJA::PERM_IJK STIFFNESS_PERMUTATION
Constitutive model stiffness permutation when not using cuda.
RAJA::PERM_IJ REFERENCE_POSITION_PERM
Node reference position permutation when not using cuda.
RAJA::PERM_IJ LAYOUT_COMP
Component global density/fraction array layout.
static constexpr int STRAIN_USD
Cell strain unit stride dimension.
RAJA::PERM_IJ LAYOUT_OBL_OPERATOR_VALUES
OBL operator values array layout.
RAJA::PERM_IJ TOTAL_DISPLACEMENT_PERM
Particle total displacement permutation when not using cuda.
static constexpr int USD_OBL_VAL
OBL operator values unit stride dimension.
RAJA::PERM_IJ ACCELERATION_PERM
Particle acceleration permutation when not using cuda.
RAJA::PERM_IJ STRAIN_PERM
Cell strain permutation when not using cuda.
static constexpr int NODE_MAP_USD
Cell node map unit stride dimension.
RAJA::PERM_IJK LAYOUT_COMP_DC
Component global fraction compositional derivative array layout.
static constexpr int TOTAL_DISPLACEMENT_USD
Node total displacement unit stride dimension.
static constexpr int REFERENCE_POSITION_USD
Node reference position unit stride dimension.
static constexpr int ACCELERATION_USD
Node acceleration unit stride dimension.
static constexpr int USD_OBL_DER
OBL operator derivatives unit stride dimension.
RAJA::PERM_IJ INCR_DISPLACEMENT_PERM
Node incremental displacement permutation when not using cuda.
RAJA::PERM_IJ VELOCITY_PERM
Node velocity permutation when not using cuda.
static constexpr int INCR_DISPLACEMENT_USD
Node incremental displacement unit stride dimension.
static constexpr int USD_COMP_DC
Component global fraction compositional derivative unit stride dimension.
RAJA::PERM_IJ TOTAL_DISPLACEMENT_PERM
Node total displacement permutation when not using cuda.
static constexpr int VELOCITY_USD
Node velocity unit stride dimension.
RAJA::PERM_IJ VELOCITY_PERM
Particle velocity permutation when not using cuda.
static constexpr int USD_FLUID_DC
Fluid property compositional derivative unit stride dimension.
RAJA::PERM_IJK STRESS_PERMUTATION
Constitutive model stress permutation when not using cuda.
static constexpr int USD_COMP
Component global density/fraction unit stride dimension.
static constexpr int USD_PHASE_COMP
Phase property unit stride dimension.
RAJA::PERM_IJ LAYOUT_FLUID_DC
Fluid property compositional derivative array layout.
static constexpr int USD_PHASE_DC
Phase property compositional derivative unit stride dimension.
RAJA::PERM_IJK LAYOUT_OBL_OPERATOR_DERIVATIVES
OBL operator derivatives derivative array layout.
RAJA::PERM_IJ LAYOUT_PHASE
Phase property array layout.
static constexpr int STRESS_USD
Constitutive model stress unit stride dimension.
RAJA::PERM_IJK LAYOUT_PHASE_COMP
Phase composition array layout.
static constexpr int STIFFNESS_USD
Constitutive model stiffness unit stride dimension.
RAJA::PERM_IJK LAYOUT_PHASE_DC
Phase property array layout.
RAJA::PERM_IJ ACCELERATION_PERM
Node acceleration permutation when not using cuda.
static constexpr int USD_PHASE
Phase property unit stride dimension.
RAJA::PERM_IJ NODE_MAP_PERMUTATION
Cell node map permutation when not using cuda.
static constexpr int getUSD
Just a handy shortcut for LvArray::typeManipulation::getStrideOneDimension.
camp::make_idx_seq_t< NDIM > defaultLayout
Defaul permutation type for NDIM-dimensional array.