https://mooseframework.inl.gov
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
Moose::Kokkos Namespace Reference

Namespaces

 Utils
 

Classes

class  Array
 The Kokkos array class. More...
 
class  Array< T, 1 >
 The specialization of the Kokkos array class for each dimension. More...
 
class  Array< T, 2 >
 
class  Array< T, 3 >
 
class  Array< T, 4 >
 
class  Array< T, 5 >
 
class  ArrayBase
 The base class for Kokkos arrays. More...
 
struct  ArrayDeepCopy
 The type trait that determines the default behavior of copy constructor and deepCopy() If this type trait is set to true, the copy constructor will call deepCopy(), and the deepCopy() method will copy-construct each entry. More...
 
struct  ArrayDeepCopy< Array< T, dimension > >
 
struct  ArrayDeepCopy< MaterialProperty< T, dimension > >
 
class  Assembly
 The Kokkos assembly class. More...
 
class  AssemblyHolder
 The Kokkos interface that holds the host reference of the Kokkos assembly and copies it to device during parallel dispatch. More...
 
class  BoundaryCondition
 The base class for Kokkos boundary conditions. More...
 
class  Datum
 The Kokkos object that holds thread-private data in the parallel operations of any Kokkos object. More...
 
class  DirichletBCBase
 The base Kokkos boundary condition of a Dirichlet type. More...
 
struct  ElementInfo
 The Kokkos object that contains the information of an element The IDs used in Kokkos are different from the MOOSE or libMesh IDs The Kokkos IDs start from zero in each process and are contiguous. More...
 
class  FunctorCopy
 
class  IntegratedBC
 The base class for a user to derive their own Kokkos integrated boundary conditions. More...
 
class  IntegratedBCBase
 The base class for Kokkos integrated boundary conditions. More...
 
class  Kernel
 The base class for a user to derive their own Kokkos kernels. More...
 
class  KernelBase
 The base class for Kokkos kernels. More...
 
class  KernelGrad
 The base class for a user to derive their own Kokkos kernels where the residual is of the form. More...
 
class  KernelValue
 The base class for a user to derive their own Kokkos kernels where the residual is of the form. More...
 
class  Map
 The Kokkos wrapper class for standard map. More...
 
class  Material
 The base class for a user to derive their own Kokkos materials. More...
 
class  MaterialBase
 The base class for Kokkos materials. More...
 
class  MaterialProperty
 The Kokkos material property class. More...
 
class  MaterialPropertyBase
 The base class for Kokkos material properties. More...
 
class  MaterialPropertyStorage
 The Kokkos class responsible for allocating and storing Kokkos material properties. More...
 
class  MaterialPropertyValue
 
class  MaterialPropertyValue< T, 0 >
 
class  MaterialPropertyValue< T, 1 >
 
class  MaterialPropertyValue< T, 2 >
 
class  MaterialPropertyValue< T, 3 >
 
class  MaterialPropertyValue< T, 4 >
 
class  MaterialPropertyValueBase
 The Kokkos wrapper class for accessing the material property values of a single quadrature point. More...
 
class  Matrix
 The Kokkos wrapper class for PETSc matrix. More...
 
class  MemoryChunk
 A temporary object returned by the Kokkos memory pool during memory chunk allocation. More...
 
class  MemoryPool
 The Kokkos class that manages memory pool for dynamically-sized temporary arrays in Kokkos parallel functions. More...
 
class  MemoryPoolHolder
 The Kokkos interface that holds the Kokkos memory pool. More...
 
class  Mesh
 The Kokkos mesh object. More...
 
class  MeshHolder
 The Kokkos interface that holds the host reference of the Kokkos mesh and copies it to device during parallel dispatch Maintains synchronization between host and device Kokkos mesh and provides access to the appropriate Kokkos mesh depending on the architecture. More...
 
class  NodalBC
 The base class for a user to derive their own Kokkos nodal boundary conditions. More...
 
class  NodalBCBase
 The base class for Kokkos nodal boundary conditions. More...
 
class  NodalKernel
 The base class for a user to derive their own Kokkos nodal kernels. More...
 
class  NodalKernelBase
 The base class for Kokkos nodal kernels. More...
 
struct  Pair
 
struct  PropRecord
 A structure storing the metadata of Kokkos material properties. More...
 
struct  Real3
 
struct  Real33
 
class  ReferenceWrapper
 The Kokkos object that can hold the reference of a variable. More...
 
class  ResidualDatum
 The Kokkos object that holds thread-private data in the parallel operations of Kokkos residual objects. More...
 
class  ResidualObject
 The base class for Kokkos residual objects. More...
 
class  Scalar
 The Kokkos wrapper class that can hold the reference of an arithmetic scalar variable. More...
 
class  Scalar< const T, typename std::enable_if< std::is_arithmetic< T >::value >::type >
 
class  System
 The Kokkos system class. More...
 
class  SystemHolder
 The Kokkos interface that holds the host reference of the Kokkos systems and copies it to device during parallel dispatch. More...
 
class  Thread
 The Kokkos thread object that aids in converting the one-dimensional thread index into multi-dimensional thread indices. More...
 
class  TimeKernel
 The base class for Kokkos time-derivative kernels. More...
 
class  TimeNodalKernel
 The base class for Kokkos time-derivative nodal kernels. More...
 
class  Variable
 The Kokkos variable object that carries the coupled variable and tag information. More...
 
class  VariableGradient
 
class  VariableNodalValue
 
class  VariablePhiGradient
 
class  VariablePhiValue
 The Kokkos wrapper classes for MOOSE-like shape function access. More...
 
class  VariableTestGradient
 
class  VariableTestValue
 
class  VariableValue
 The Kokkos wrapper classes for MOOSE-like variable value access. More...
 
class  Vector
 The Kokkos wrapper class for PETSc vector. More...
 

Typedefs

template<typename T >
using Array1D = Array< T, 1 >
 
template<typename T >
using Array2D = Array< T, 2 >
 
template<typename T >
using Array3D = Array< T, 3 >
 
template<typename T >
using Array4D = Array< T, 4 >
 
template<typename T >
using Array5D = Array< T, 5 >
 
using PostprocessorValue = Scalar< const PostprocessorValue >
 
using StorageKey = Moose::PassKey< MaterialPropertyStorage >
 
using PropertyStore = std::function< void(std::ostream &, void *)>
 
using PropertyLoad = std::function< void(std::istream &, void *)>
 

Enumerations

enum  MemcpyKind { MemcpyKind::HOST_TO_HOST, MemcpyKind::HOST_TO_DEVICE, MemcpyKind::DEVICE_TO_HOST, MemcpyKind::DEVICE_TO_DEVICE }
 The enumerator that dictates the memory copy direction. More...
 

Functions

void free (void *ptr)
 
template<typename T >
void copyToDeviceInner (T &)
 
template<typename T , unsigned int dimension>
void copyToDeviceInner (Array< T, dimension > &data)
 
template<typename T , unsigned int dimension>
void dataStore (std::ostream &stream, Array< T, dimension > &array, void *context)
 
template<typename T , unsigned int dimension>
void dataLoad (std::istream &stream, Array< T, dimension > &array, void *context)
 
template<typename T >
KOKKOS_FUNCTION uint32_t fnv1aHash (const T &key, uint32_t hash)
 
template<typename T >
KOKKOS_FUNCTION uint32_t fnv1aHash (const T &key)
 
template<typename T1 , typename T2 >
KOKKOS_FUNCTION uint32_t fnv1aHash (const Pair< T1, T2 > &key)
 
template<typename T1 , typename T2 >
void dataStore (std::ostream &stream, Map< T1, T2 > &map, void *context)
 
template<typename T1 , typename T2 >
void dataLoad (std::istream &stream, Map< T1, T2 > &map, void *context)
 
KOKKOS_INLINE_FUNCTION Real3 operator* (const Real left, const Real3 right)
 
KOKKOS_INLINE_FUNCTION Real3 operator* (const Real3 left, const Real right)
 
KOKKOS_INLINE_FUNCTION Real operator* (const Real3 left, const Real3 right)
 
KOKKOS_INLINE_FUNCTION Real3 operator* (const Real33 left, const Real3 right)
 
KOKKOS_INLINE_FUNCTION Real33 operator* (const Real33 left, const Real33 right)
 
KOKKOS_INLINE_FUNCTION Real3 operator+ (const Real left, const Real3 right)
 
KOKKOS_INLINE_FUNCTION Real3 operator+ (const Real3 left, const Real right)
 
KOKKOS_INLINE_FUNCTION Real3 operator+ (const Real3 left, const Real3 right)
 
KOKKOS_INLINE_FUNCTION Real3 operator- (const Real left, const Real3 right)
 
KOKKOS_INLINE_FUNCTION Real3 operator- (const Real3 left, const Real right)
 
KOKKOS_INLINE_FUNCTION Real3 operator- (const Real3 left, const Real3 right)
 
template<typename T1 , typename T2 >
bool operator< (const Pair< T1, T2 > &left, const Pair< T1, T2 > &right)
 
template<typename T , unsigned int dimension>
void propertyStore (std::ostream &stream, void *prop)
 
template<typename T , unsigned int dimension>
void propertyLoad (std::istream &stream, void *prop)
 

Variables

constexpr unsigned int MAX_TAG = 30
 Maximum tag ID. More...
 
constexpr unsigned int MAX_CACHED_DOF = 30
 Maximum number of DOFs to cache during residual and Jacobian computation. More...
 
constexpr uint32_t FNV_PRIME = 0x01000193
 
constexpr uint32_t FNV_OFFSET_BASIS = 0x811C9DC5
 

Typedef Documentation

◆ Array1D

template<typename T >
using Moose::Kokkos::Array1D = typedef Array<T, 1>

Definition at line 1615 of file KokkosArray.h.

◆ Array2D

template<typename T >
using Moose::Kokkos::Array2D = typedef Array<T, 2>

Definition at line 1617 of file KokkosArray.h.

◆ Array3D

template<typename T >
using Moose::Kokkos::Array3D = typedef Array<T, 3>

Definition at line 1619 of file KokkosArray.h.

◆ Array4D

template<typename T >
using Moose::Kokkos::Array4D = typedef Array<T, 4>

Definition at line 1621 of file KokkosArray.h.

◆ Array5D

template<typename T >
using Moose::Kokkos::Array5D = typedef Array<T, 5>

Definition at line 1623 of file KokkosArray.h.

◆ PostprocessorValue

Definition at line 62 of file KokkosScalar.h.

◆ PropertyLoad

using Moose::Kokkos::PropertyLoad = typedef std::function<void(std::istream &, void *)>

Definition at line 71 of file KokkosMaterialPropertyDecl.h.

◆ PropertyStore

using Moose::Kokkos::PropertyStore = typedef std::function<void(std::ostream &, void *)>

Definition at line 70 of file KokkosMaterialPropertyDecl.h.

◆ StorageKey

Definition at line 28 of file KokkosMaterialPropertyDecl.h.

Enumeration Type Documentation

◆ MemcpyKind

The enumerator that dictates the memory copy direction.

Enumerator
HOST_TO_HOST 
HOST_TO_DEVICE 
DEVICE_TO_HOST 
DEVICE_TO_DEVICE 

Definition at line 44 of file KokkosArray.h.

Function Documentation

◆ copyToDeviceInner() [1/2]

template<typename T >
void Moose::Kokkos::copyToDeviceInner ( T &  )

Definition at line 801 of file KokkosArray.h.

Referenced by Moose::Kokkos::ArrayBase< T, 4 >::copyToDeviceNested().

802 {
803 }

◆ copyToDeviceInner() [2/2]

template<typename T , unsigned int dimension>
void Moose::Kokkos::copyToDeviceInner ( Array< T, dimension > &  data)

Definition at line 807 of file KokkosArray.h.

808 {
809  data.copyToDeviceNested();
810 }

◆ dataLoad() [1/2]

template<typename T1 , typename T2 >
void Moose::Kokkos::dataLoad ( std::istream &  stream,
Map< T1, T2 > &  map,
void context 
)

Definition at line 335 of file KokkosMap.h.

336 {
338 
339  dataLoad(stream, map.get(), context);
340  dataLoad(stream, map._keys, context);
341  dataLoad(stream, map._values, context);
342  dataLoad(stream, map._offset, context);
343 }
void dataLoad(std::istream &stream, Map< T1, T2 > &map, void *context)
Definition: KokkosMap.h:335

◆ dataLoad() [2/2]

template<typename T , unsigned int dimension>
void Moose::Kokkos::dataLoad ( std::istream &  stream,
Array< T, dimension > &  array,
void context 
)

Definition at line 931 of file KokkosArray.h.

Referenced by dataLoad(), and propertyLoad().

932 {
934 
935  bool is_alloc;
936  dataLoad(stream, is_alloc, nullptr);
937 
938  if (!is_alloc)
939  return;
940 
941  std::string from_type_name;
942  dataLoad(stream, from_type_name, nullptr);
943 
944  if (from_type_name != typeid(T).name())
945  mooseError("Kokkos array error: cannot load an array because the stored array is of type '",
946  MooseUtils::prettyCppType(libMesh::demangle(from_type_name.c_str())),
947  "' but the loading array is of type '",
949  "'.");
950 
951  unsigned int from_dimension;
952  dataLoad(stream, from_dimension, nullptr);
953 
954  if (from_dimension != dimension)
955  mooseError("Kokkos array error: cannot load an array because the stored array is ",
956  from_dimension,
957  "D but the loading array is ",
958  dimension,
959  "D.");
960 
961  std::vector<dof_id_type> from_n(dimension);
962  std::vector<dof_id_type> n(dimension);
963 
964  for (unsigned int dim = 0; dim < dimension; ++dim)
965  {
966  dataLoad(stream, from_n[dim], nullptr);
967  n[dim] = array.n(dim);
968  }
969 
970  if (from_n != n)
971  mooseError("Kokkos array error: cannot load an array because the stored array has dimensions (",
972  Moose::stringify(from_n),
973  ") but the loading array has dimensions (",
974  Moose::stringify(n),
975  ").");
976 
977  if (array.isHostAlloc())
978  {
979  for (auto & value : array)
980  dataLoad(stream, value, context);
981 
982  if (array.isDeviceAlloc())
983  array.copyToDevice();
984  }
985  else
986  {
987  std::vector<T> data(array.size());
988 
989  for (auto & value : data)
990  dataLoad(stream, value, context);
991 
992  array.copyIn(data.data(), MemcpyKind::HOST_TO_DEVICE, array.size());
993  }
994 }
std::string name(const ElemQuality q)
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
Definition: MooseError.h:323
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:159
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:64
std::string demangle(const char *name)
void dataLoad(std::istream &stream, Array< T, dimension > &array, void *context)
Definition: KokkosArray.h:931
std::string prettyCppType(const std::string &cpp_type)
Definition: MooseUtils.C:1147

◆ dataStore() [1/2]

template<typename T1 , typename T2 >
void Moose::Kokkos::dataStore ( std::ostream &  stream,
Map< T1, T2 > &  map,
void context 
)

Definition at line 323 of file KokkosMap.h.

324 {
326 
327  dataStore(stream, map.get(), context);
328  dataStore(stream, map._keys, context);
329  dataStore(stream, map._values, context);
330  dataStore(stream, map._offset, context);
331 }
void dataStore(std::ostream &stream, Map< T1, T2 > &map, void *context)
Definition: KokkosMap.h:323

◆ dataStore() [2/2]

template<typename T , unsigned int dimension>
void Moose::Kokkos::dataStore ( std::ostream &  stream,
Array< T, dimension > &  array,
void context 
)

Definition at line 887 of file KokkosArray.h.

Referenced by dataStore(), and propertyStore().

888 {
890 
891  bool is_alloc = array.isAlloc();
892  dataStore(stream, is_alloc, nullptr);
893 
894  if (!is_alloc)
895  return;
896 
897  std::string type = typeid(T).name();
898  dataStore(stream, type, nullptr);
899 
900  unsigned int dim = dimension;
901  dataStore(stream, dim, nullptr);
902 
903  for (unsigned int dim = 0; dim < dimension; ++dim)
904  {
905  auto n = array.n(dim);
906  dataStore(stream, n, nullptr);
907  }
908 
909  if (array.isDeviceAlloc())
910  {
911  // We use malloc/free because we just want a memory copy
912  // If T is a Kokkos array and we use new/delete or vector to copy it out,
913  // the arrays will be destroyed on cleanup
914 
915  T * data = static_cast<T *>(std::malloc(array.size() * sizeof(T)));
916 
917  array.copyOut(data, MemcpyKind::DEVICE_TO_HOST, array.size());
918 
919  for (dof_id_type i = 0; i < array.size(); ++i)
920  dataStore(stream, data[i], context);
921 
922  std::free(data);
923  }
924  else
925  for (auto & value : array)
926  dataStore(stream, value, context);
927 }
std::string name(const ElemQuality q)
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Definition: Moose.h:159
void free(void *ptr)
void dataStore(std::ostream &stream, Array< T, dimension > &array, void *context)
Definition: KokkosArray.h:887
uint8_t dof_id_type

◆ fnv1aHash() [1/3]

template<typename T >
KOKKOS_FUNCTION uint32_t Moose::Kokkos::fnv1aHash ( const T &  key,
uint32_t  hash 
)

Definition at line 28 of file KokkosMap.h.

Referenced by Moose::Kokkos::Map< unsigned int, unsigned int >::copy(), Moose::Kokkos::Map< unsigned int, unsigned int >::find(), and fnv1aHash().

29 {
30  auto bytes = reinterpret_cast<const uint8_t *>(&key);
31 
32  for (size_t i = 0; i < sizeof(T); ++i)
33  {
34  hash ^= bytes[i];
35  hash *= FNV_PRIME;
36  }
37 
38  return hash;
39 }
constexpr uint32_t FNV_PRIME
Definition: KokkosMap.h:23

◆ fnv1aHash() [2/3]

template<typename T >
KOKKOS_FUNCTION uint32_t Moose::Kokkos::fnv1aHash ( const T &  key)

Definition at line 43 of file KokkosMap.h.

44 {
45  return fnv1aHash(key, FNV_OFFSET_BASIS);
46 }
constexpr uint32_t FNV_OFFSET_BASIS
Definition: KokkosMap.h:24
KOKKOS_FUNCTION uint32_t fnv1aHash(const Pair< T1, T2 > &key)
Definition: KokkosMap.h:53

◆ fnv1aHash() [3/3]

template<typename T1 , typename T2 >
KOKKOS_FUNCTION uint32_t Moose::Kokkos::fnv1aHash ( const Pair< T1, T2 > &  key)

Definition at line 53 of file KokkosMap.h.

54 {
55  return fnv1aHash(key.second, fnv1aHash(key.first));
56 }
KOKKOS_FUNCTION uint32_t fnv1aHash(const Pair< T1, T2 > &key)
Definition: KokkosMap.h:53

◆ free()

void Moose::Kokkos::free ( void ptr)

◆ operator*() [1/5]

KOKKOS_INLINE_FUNCTION Real3 Moose::Kokkos::operator* ( const Real  left,
const Real3  right 
)

Definition at line 242 of file KokkosTypes.h.

Referenced by UniqueStorage< T >::DereferenceIterator< BaseIterator >::operator*(), and UniqueStorage< T >::DereferenceIterator< BaseIterator >::operator->().

243 {
244  return {left * right.v[0], left * right.v[1], left * right.v[2]};
245 }

◆ operator*() [2/5]

KOKKOS_INLINE_FUNCTION Real3 Moose::Kokkos::operator* ( const Real3  left,
const Real  right 
)

Definition at line 247 of file KokkosTypes.h.

248 {
249  return {left.v[0] * right, left.v[1] * right, left.v[2] * right};
250 }

◆ operator*() [3/5]

KOKKOS_INLINE_FUNCTION Real Moose::Kokkos::operator* ( const Real3  left,
const Real3  right 
)

Definition at line 252 of file KokkosTypes.h.

253 {
254  return left.v[0] * right.v[0] + left.v[1] * right.v[1] + left.v[2] * right.v[2];
255 }

◆ operator*() [4/5]

KOKKOS_INLINE_FUNCTION Real3 Moose::Kokkos::operator* ( const Real33  left,
const Real3  right 
)

Definition at line 257 of file KokkosTypes.h.

258 {
259  return {left(0, 0) * right.v[0] + left(0, 1) * right.v[1] + left(0, 2) * right.v[2],
260  left(1, 0) * right.v[0] + left(1, 1) * right.v[1] + left(1, 2) * right.v[2],
261  left(2, 0) * right.v[0] + left(2, 1) * right.v[1] + left(2, 2) * right.v[2]};
262 }

◆ operator*() [5/5]

KOKKOS_INLINE_FUNCTION Real33 Moose::Kokkos::operator* ( const Real33  left,
const Real33  right 
)

Definition at line 264 of file KokkosTypes.h.

265 {
266  Real33 mul;
267 
268  for (unsigned int i = 0; i < 3; ++i)
269  for (unsigned int j = 0; j < 3; ++j)
270  for (unsigned int k = 0; k < 3; ++k)
271  mul(i, j) += left(i, k) * right(k, j);
272 
273  return mul;
274 }

◆ operator+() [1/3]

KOKKOS_INLINE_FUNCTION Real3 Moose::Kokkos::operator+ ( const Real  left,
const Real3  right 
)

Definition at line 276 of file KokkosTypes.h.

277 {
278  return {left + right.v[0], left + right.v[1], left + right.v[2]};
279 }

◆ operator+() [2/3]

KOKKOS_INLINE_FUNCTION Real3 Moose::Kokkos::operator+ ( const Real3  left,
const Real  right 
)

Definition at line 281 of file KokkosTypes.h.

282 {
283  return {left.v[0] + right, left.v[1] + right, left.v[2] + right};
284 }

◆ operator+() [3/3]

KOKKOS_INLINE_FUNCTION Real3 Moose::Kokkos::operator+ ( const Real3  left,
const Real3  right 
)

Definition at line 286 of file KokkosTypes.h.

287 {
288  return {left.v[0] + right.v[0], left.v[1] + right.v[1], left.v[2] + right.v[2]};
289 }

◆ operator-() [1/3]

KOKKOS_INLINE_FUNCTION Real3 Moose::Kokkos::operator- ( const Real  left,
const Real3  right 
)

Definition at line 291 of file KokkosTypes.h.

292 {
293  return {left - right.v[0], left - right.v[1], left - right.v[2]};
294 }

◆ operator-() [2/3]

KOKKOS_INLINE_FUNCTION Real3 Moose::Kokkos::operator- ( const Real3  left,
const Real  right 
)

Definition at line 296 of file KokkosTypes.h.

297 {
298  return {left.v[0] - right, left.v[1] - right, left.v[2] - right};
299 }

◆ operator-() [3/3]

KOKKOS_INLINE_FUNCTION Real3 Moose::Kokkos::operator- ( const Real3  left,
const Real3  right 
)

Definition at line 301 of file KokkosTypes.h.

302 {
303  return {left.v[0] - right.v[0], left.v[1] - right.v[1], left.v[2] - right.v[2]};
304 }

◆ operator<()

template<typename T1 , typename T2 >
bool Moose::Kokkos::operator< ( const Pair< T1, T2 > &  left,
const Pair< T1, T2 > &  right 
)

Definition at line 325 of file KokkosTypes.h.

326 {
327  return std::make_pair(left.first, left.second) < std::make_pair(right.first, right.second);
328 }

◆ propertyLoad()

template<typename T , unsigned int dimension>
void Moose::Kokkos::propertyLoad ( std::istream &  stream,
void prop 
)

Definition at line 158 of file KokkosMaterialProperty.h.

159 {
160  auto property = static_cast<MaterialProperty<T, dimension> *>(prop);
161 
162  dataLoad(stream, property->_data, nullptr);
163 }
void dataLoad(std::istream &stream, PenetrationInfo *&pinfo, void *context)

◆ propertyStore()

template<typename T , unsigned int dimension>
void Moose::Kokkos::propertyStore ( std::ostream &  stream,
void prop 
)

Definition at line 150 of file KokkosMaterialProperty.h.

151 {
152  auto property = static_cast<MaterialProperty<T, dimension> *>(prop);
153 
154  dataStore(stream, property->_data, nullptr);
155 }
void dataStore(std::ostream &stream, PenetrationInfo *&pinfo, void *context)

Variable Documentation

◆ FNV_OFFSET_BASIS

constexpr uint32_t Moose::Kokkos::FNV_OFFSET_BASIS = 0x811C9DC5

Definition at line 24 of file KokkosMap.h.

Referenced by fnv1aHash().

◆ FNV_PRIME

constexpr uint32_t Moose::Kokkos::FNV_PRIME = 0x01000193

Definition at line 23 of file KokkosMap.h.

Referenced by fnv1aHash().

◆ MAX_CACHED_DOF

constexpr unsigned int Moose::Kokkos::MAX_CACHED_DOF = 30

◆ MAX_TAG

constexpr unsigned int Moose::Kokkos::MAX_TAG = 30

Maximum tag ID.

Definition at line 75 of file KokkosHeader.h.