19 #ifndef GEOS_COMMON_DATALAYOUTS_HPP_
20 #define GEOS_COMMON_DATALAYOUTS_HPP_
24 #include "LvArray/src/Array.hpp"
25 #include "RAJA/RAJA.hpp"
43 template<
typename PERM >
44 static constexpr
int getUSD = LvArray::typeManipulation::getStrideOneDimension( PERM {} );
49 #if defined( GEOS_USE_DEVICE )
52 using REFERENCE_POSITION_PERM = RAJA::PERM_JI;
55 using TOTAL_DISPLACEMENT_PERM = RAJA::PERM_JI;
58 using INCR_DISPLACEMENT_PERM = RAJA::PERM_JI;
61 using VELOCITY_PERM = RAJA::PERM_JI;
64 using ACCELERATION_PERM = RAJA::PERM_JI;
105 #if defined( GEOSX_USE_CUDA )
108 using REFERENCE_POSITION_PERM = RAJA::PERM_JI;
111 using TOTAL_DISPLACEMENT_PERM = RAJA::PERM_JI;
114 using VELOCITY_PERM = RAJA::PERM_JI;
117 using ACCELERATION_PERM = RAJA::PERM_JI;
142 static constexpr
int VELOCITY_USD = LvArray::typeManipulation::getStrideOneDimension(
VELOCITY_PERM {} );
145 static constexpr
int ACCELERATION_USD = LvArray::typeManipulation::getStrideOneDimension(
ACCELERATION_PERM {} );
152 #if defined( GEOS_USE_DEVICE )
155 using NODE_MAP_PERMUTATION = RAJA::PERM_JI;
172 #if defined( GEOS_USE_DEVICE )
175 using STRESS_PERMUTATION = RAJA::PERM_KJI;
178 using STIFFNESS_PERMUTATION = RAJA::PERM_KJI;
201 #if defined( GEOS_USE_DEVICE )
204 using LAYOUT_COMP = RAJA::PERM_JI;
207 using LAYOUT_COMP_DC = RAJA::PERM_JKI;
210 using LAYOUT_PHASE = RAJA::PERM_JI;
213 using LAYOUT_PHASE_DC = RAJA::PERM_JKI;
216 using LAYOUT_PHASE_COMP = RAJA::PERM_JKI;
219 using LAYOUT_FLUID_DC = RAJA::PERM_JI;
222 using LAYOUT_OBL_OPERATOR_VALUES = RAJA::PERM_JI;
225 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.
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.
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.