NimbleSM
NimbleSM is a solid mechanics simulation code for dynamic systems
Loading...
Searching...
No Matches
nimble_kokkos Namespace Reference

Classes

class  Block
 
class  BlockMaterialInterface
 
class  BlockMaterialInterfaceFactory
 
class  ExodusOutputManager
 
class  Field
 
class  Field< FieldType::DeviceFullTensorElem >
 
class  Field< FieldType::DeviceFullTensorIntPt >
 
class  Field< FieldType::DeviceScalarElem >
 
class  Field< FieldType::DeviceScalarIntPt >
 
class  Field< FieldType::DeviceScalarNode >
 
class  Field< FieldType::DeviceSymTensorElem >
 
class  Field< FieldType::DeviceSymTensorIntPt >
 
class  Field< FieldType::DeviceVectorIntPt >
 
class  Field< FieldType::DeviceVectorNode >
 
class  Field< FieldType::HostFullTensorElem >
 
class  Field< FieldType::HostFullTensorIntPt >
 
class  Field< FieldType::HostScalarElem >
 
class  Field< FieldType::HostScalarNode >
 
class  Field< FieldType::HostSymTensorElem >
 
class  Field< FieldType::HostSymTensorIntPt >
 
class  Field< FieldType::HostVectorNode >
 
class  FieldBase
 
class  Material
 
class  MaterialFactory
 
class  ModelData
 
class  ProfilingTimer
 

Typedefs

using ElemPointRangePolicy = Kokkos::MDRangePolicy<Kokkos::Rank<2>>
 
using DeviceContactEntityArrayView
 
using HostContactEntityArrayView
 
using kokkos_host_execution_space = Kokkos::Serial::execution_space
 
using kokkos_host_mirror_memory_space = Kokkos::Serial::memory_space
 
using kokkos_host = Kokkos::Device<kokkos_host_execution_space, kokkos_host_mirror_memory_space>
 
using kokkos_device_execution_space = Kokkos::Serial::execution_space
 
using kokkos_device_memory_space = Kokkos::Serial::memory_space
 
using kokkos_device = Kokkos::Device<kokkos_device_execution_space, kokkos_device_memory_space>
 
using kokkos_layout = kokkos_device_execution_space::array_layout
 
typedef Field< FieldType::HostScalarNode >::View HostScalarNodeView
 
typedef Field< FieldType::HostVectorNode >::View HostVectorNodeView
 
typedef Field< FieldType::HostFullTensorIntPt >::View HostFullTensorIntPtView
 
typedef Field< FieldType::HostSymTensorIntPt >::View HostSymTensorIntPtView
 
typedef Field< FieldType::HostScalarElem >::View HostScalarElemView
 
typedef Field< FieldType::HostFullTensorElem >::View HostFullTensorElemView
 
typedef Field< FieldType::HostSymTensorElem >::View HostSymTensorElemView
 
typedef Kokkos::View< int *, kokkos_hostHostIntegerArrayView
 
typedef Kokkos::View< int *, kokkos_hostHostElementConnectivityView
 
typedef Field< FieldType::DeviceScalarNode >::View DeviceScalarNodeView
 
typedef Field< FieldType::DeviceScalarNode >::GatheredView DeviceScalarNodeGatheredView
 
typedef Field< FieldType::DeviceScalarNode >::GatheredSubView DeviceScalarNodeGatheredSubView
 
typedef Field< FieldType::DeviceVectorNode >::View DeviceVectorNodeView
 
typedef Field< FieldType::DeviceVectorNode >::GatheredView DeviceVectorNodeGatheredView
 
typedef Field< FieldType::DeviceVectorNode >::GatheredSubView DeviceVectorNodeGatheredSubView
 
typedef Field< FieldType::DeviceFullTensorIntPt >::View DeviceFullTensorIntPtView
 
typedef Field< FieldType::DeviceFullTensorIntPt >::SubView DeviceFullTensorIntPtSubView
 
typedef Field< FieldType::DeviceFullTensorIntPt >::SingleEntryView DeviceFullTensorIntPtSingleEntryView
 
typedef Field< FieldType::DeviceSymTensorIntPt >::View DeviceSymTensorIntPtView
 
typedef Field< FieldType::DeviceSymTensorIntPt >::SubView DeviceSymTensorIntPtSubView
 
typedef Field< FieldType::DeviceSymTensorIntPt >::SingleEntryView DeviceSymTensorIntPtSingleEntryView
 
typedef Field< FieldType::DeviceScalarIntPt >::View DeviceScalarIntPtView
 
typedef Field< FieldType::DeviceScalarIntPt >::SubView DeviceScalarIntPtSubView
 
typedef Field< FieldType::DeviceScalarIntPt >::SingleEntryView DeviceScalarIntPtSingleEntryView
 
typedef Field< FieldType::DeviceVectorIntPt >::View DeviceVectorIntPtView
 
typedef Field< FieldType::DeviceVectorIntPt >::SubView DeviceVectorIntPtSubView
 
typedef Field< FieldType::DeviceVectorIntPt >::SingleEntryView DeviceVectorIntPtSingleEntryView
 
typedef Field< FieldType::DeviceScalarElem >::View DeviceScalarElemView
 
typedef Field< FieldType::DeviceScalarElem >::SingleEntryView DeviceScalarElemSingleEntryView
 
typedef Field< FieldType::DeviceFullTensorElem >::View DeviceFullTensorElemView
 
typedef Field< FieldType::DeviceFullTensorElem >::SingleEntryView DeviceFullTensorElemSingleEntryView
 
typedef Field< FieldType::DeviceSymTensorElem >::View DeviceSymTensorElemView
 
typedef Field< FieldType::DeviceSymTensorElem >::SingleEntryView DeviceSymTensorElemSingleEntryView
 
typedef Kokkos::View< int *, kokkos_deviceDeviceIntegerArrayView
 
typedef Kokkos::View< int *, kokkos_deviceDeviceElementConnectivityView
 

Enumerations

enum class  FieldType : int {
  HostScalarNode , DeviceScalarNode , HostVectorNode , DeviceVectorNode ,
  HostSymTensorIntPt , DeviceSymTensorIntPt , HostFullTensorIntPt , DeviceFullTensorIntPt ,
  DeviceScalarIntPt , DeviceVectorIntPt , HostScalarElem , DeviceScalarElem ,
  HostSymTensorElem , DeviceSymTensorElem , HostFullTensorElem , DeviceFullTensorElem
}
 

Functions

ElemPointRangePolicy make_elem_point_range_policy (const int num_block_elems, const int num_points_per_elem)
 
std::ostream & operator<< (std::ostream &out, const FieldType f)
 
template<typename MatType>
std::pair< std::shared_ptr< MatType >, MatType * > allocate_material_on_host_and_device (const nimble::MaterialParameters &mat_params_struct)
 

Typedef Documentation

◆ DeviceContactEntityArrayView

Initial value:
Kokkos::View<nimble::ContactEntity*, nimble_kokkos::kokkos_layout, nimble_kokkos::kokkos_device>

◆ DeviceElementConnectivityView

◆ DeviceFullTensorElemSingleEntryView

◆ DeviceFullTensorElemView

◆ DeviceFullTensorIntPtSingleEntryView

◆ DeviceFullTensorIntPtSubView

◆ DeviceFullTensorIntPtView

◆ DeviceIntegerArrayView

◆ DeviceScalarElemSingleEntryView

◆ DeviceScalarElemView

◆ DeviceScalarIntPtSingleEntryView

◆ DeviceScalarIntPtSubView

◆ DeviceScalarIntPtView

◆ DeviceScalarNodeGatheredSubView

◆ DeviceScalarNodeGatheredView

◆ DeviceScalarNodeView

◆ DeviceSymTensorElemSingleEntryView

◆ DeviceSymTensorElemView

◆ DeviceSymTensorIntPtSingleEntryView

◆ DeviceSymTensorIntPtSubView

◆ DeviceSymTensorIntPtView

◆ DeviceVectorIntPtSingleEntryView

◆ DeviceVectorIntPtSubView

◆ DeviceVectorIntPtView

◆ DeviceVectorNodeGatheredSubView

◆ DeviceVectorNodeGatheredView

◆ DeviceVectorNodeView

◆ ElemPointRangePolicy

using nimble_kokkos::ElemPointRangePolicy = Kokkos::MDRangePolicy<Kokkos::Rank<2>>

◆ HostContactEntityArrayView

Initial value:
Kokkos::View<nimble::ContactEntity*, nimble_kokkos::kokkos_layout, nimble_kokkos::kokkos_host>

◆ HostElementConnectivityView

◆ HostFullTensorElemView

◆ HostFullTensorIntPtView

◆ HostIntegerArrayView

typedef Kokkos::View<int*, kokkos_host> nimble_kokkos::HostIntegerArrayView

◆ HostScalarElemView

◆ HostScalarNodeView

◆ HostSymTensorElemView

◆ HostSymTensorIntPtView

◆ HostVectorNodeView

◆ kokkos_device

◆ kokkos_device_execution_space

using nimble_kokkos::kokkos_device_execution_space = Kokkos::Serial::execution_space

◆ kokkos_device_memory_space

using nimble_kokkos::kokkos_device_memory_space = Kokkos::Serial::memory_space

◆ kokkos_host

◆ kokkos_host_execution_space

using nimble_kokkos::kokkos_host_execution_space = Kokkos::Serial::execution_space

◆ kokkos_host_mirror_memory_space

using nimble_kokkos::kokkos_host_mirror_memory_space = Kokkos::Serial::memory_space

◆ kokkos_layout

using nimble_kokkos::kokkos_layout = kokkos_device_execution_space::array_layout

Enumeration Type Documentation

◆ FieldType

enum class nimble_kokkos::FieldType : int
strong
Enumerator
HostScalarNode 
DeviceScalarNode 
HostVectorNode 
DeviceVectorNode 
HostSymTensorIntPt 
DeviceSymTensorIntPt 
HostFullTensorIntPt 
DeviceFullTensorIntPt 
DeviceScalarIntPt 
DeviceVectorIntPt 
HostScalarElem 
DeviceScalarElem 
HostSymTensorElem 
DeviceSymTensorElem 
HostFullTensorElem 
DeviceFullTensorElem 
89{
106};
@ DeviceFullTensorIntPt
Definition nimble_kokkos_defs.h:97
@ DeviceFullTensorElem
Definition nimble_kokkos_defs.h:105
@ DeviceScalarElem
Definition nimble_kokkos_defs.h:101
@ DeviceSymTensorElem
Definition nimble_kokkos_defs.h:103
@ DeviceScalarIntPt
Definition nimble_kokkos_defs.h:98
@ DeviceScalarNode
Definition nimble_kokkos_defs.h:91
@ HostSymTensorElem
Definition nimble_kokkos_defs.h:102
@ DeviceVectorNode
Definition nimble_kokkos_defs.h:93
@ DeviceSymTensorIntPt
Definition nimble_kokkos_defs.h:95
@ HostScalarNode
Definition nimble_kokkos_defs.h:90
@ HostVectorNode
Definition nimble_kokkos_defs.h:92
@ HostFullTensorElem
Definition nimble_kokkos_defs.h:104
@ HostSymTensorIntPt
Definition nimble_kokkos_defs.h:94
@ HostScalarElem
Definition nimble_kokkos_defs.h:100
@ HostFullTensorIntPt
Definition nimble_kokkos_defs.h:96
@ DeviceVectorIntPt
Definition nimble_kokkos_defs.h:99

Function Documentation

◆ allocate_material_on_host_and_device()

template<typename MatType>
std::pair< std::shared_ptr< MatType >, MatType * > nimble_kokkos::allocate_material_on_host_and_device ( const nimble::MaterialParameters & mat_params_struct)
inline
61{
62 auto mat_host = std::make_shared<MatType>(mat_params_struct);
63 auto mat_device = static_cast<MatType*>(Kokkos::kokkos_malloc<>("Material", sizeof(MatType)));
64 MatType& mat_host_ref = *mat_host;
65 Kokkos::parallel_for(
66 1, KOKKOS_LAMBDA(int) { new (mat_device) MatType(mat_host_ref); });
67 Kokkos::fence();
68 return std::make_pair(mat_host, mat_device);
69}

◆ make_elem_point_range_policy()

ElemPointRangePolicy nimble_kokkos::make_elem_point_range_policy ( const int num_block_elems,
const int num_points_per_elem )
inline
67{
68 return ElemPointRangePolicy({0, 0}, {num_block_elems, num_points_per_elem});
69}
Kokkos::MDRangePolicy< Kokkos::Rank< 2 > > ElemPointRangePolicy
Definition nimble_kokkos_block_material_interface.h:64

◆ operator<<()

std::ostream & nimble_kokkos::operator<< ( std::ostream & out,
const FieldType f )
inline
110{
111 switch (f) {
112 case FieldType::HostScalarNode: out << "HostScalarNode"; break;
113 case FieldType::DeviceScalarNode: out << "DeviceScalarNode"; break;
114 case FieldType::HostVectorNode: out << "HostVectorNode"; break;
115 case FieldType::DeviceVectorNode: out << "DeviceVectorNode"; break;
116 case FieldType::HostSymTensorIntPt: out << "HostSymTensorIntPt"; break;
117 case FieldType::DeviceSymTensorIntPt: out << "DeviceSymTensorIntPt"; break;
118 case FieldType::HostFullTensorIntPt: out << "HostFullTensorIntPt"; break;
119 case FieldType::DeviceFullTensorIntPt: out << "DeviceFullTensorIntPt"; break;
120 case FieldType::DeviceScalarIntPt: out << "DeviceScalarIntPt"; break;
121 case FieldType::DeviceVectorIntPt: out << "DeviceVectorIntPt"; break;
122 case FieldType::HostScalarElem: out << "HostScalarElem"; break;
123 case FieldType::DeviceScalarElem: out << "DeviceScalarElem"; break;
124 case FieldType::HostSymTensorElem: out << "HostSymTensorElem"; break;
125 case FieldType::DeviceSymTensorElem: out << "DeviceSymTensorElem"; break;
126 case FieldType::HostFullTensorElem: out << "HostFullTensorElem"; break;
127 case FieldType::DeviceFullTensorElem: out << "DeviceFullTensorElem"; break;
128 };
129 return out;
130}