The Kokkos object that holds thread-private data in the parallel operations of any Kokkos object. More...
#include <KokkosDatum.h>
Public Member Functions | |
| KOKKOS_FUNCTION | Datum (const ContiguousElementID elem, const unsigned int side, const Assembly &assembly, const Array< System > &systems) |
| Constructor for element and side data. More... | |
| KOKKOS_FUNCTION | Datum (const ContiguousNodeID node, const Assembly &assembly, const Array< System > &systems) |
| Constructor for node data. More... | |
| KOKKOS_FUNCTION const Assembly & | assembly () const |
| Get the Kokkos assembly. More... | |
| KOKKOS_FUNCTION const System & | system (unsigned int sys) const |
| Get the Kokkos system. More... | |
| KOKKOS_FUNCTION const Mesh & | mesh () const |
| Get the Kokkos mesh. More... | |
| KOKKOS_FUNCTION const ElementInfo & | elem () const |
| Get the element information object. More... | |
| KOKKOS_FUNCTION ContiguousElementID | elemID () const |
| Get the contiguous element ID. More... | |
| KOKKOS_FUNCTION dof_id_type | extraElemID (unsigned int index) const |
| Get the extra element ID. More... | |
| KOKKOS_FUNCTION ContiguousSubdomainID | subdomain () const |
| Get the contiguous subdomain ID. More... | |
| KOKKOS_FUNCTION unsigned int | side () const |
| Get the side index. More... | |
| KOKKOS_FUNCTION ContiguousNodeID | node () const |
| Get the contiguous node ID. More... | |
| KOKKOS_FUNCTION unsigned int | n_qps () const |
| Get the number of local quadrature points. More... | |
| KOKKOS_FUNCTION dof_id_type | qpOffset () const |
| Get the starting offset into the global quadrature point index. More... | |
| KOKKOS_FUNCTION dof_id_type | propertyIdx (const PropertyConstantOption constant_option, const unsigned int qp) const |
| Get the index into the property data storage. More... | |
| KOKKOS_FUNCTION bool | hasNeighbor () const |
| Get whether the current side has a neighbor. More... | |
| KOKKOS_FUNCTION bool | isSide () const |
| Get whether the current datum is on a side. More... | |
| KOKKOS_FUNCTION bool | isNodal () const |
| Get whether the current datum is on a node. More... | |
| KOKKOS_FUNCTION bool | isNodalDefined (const Variable &var) const |
| Get whether the a variable is defined on the current node. More... | |
| KOKKOS_FUNCTION const Real33 & | J (const unsigned int qp) |
| Get the inverse of Jacobian matrix | dxi/dx deta/dx dzeta/dx | | dxi/dy deta/dy dzeta/dy | | dxi/dz deta/dz dzeta/dz |. More... | |
| KOKKOS_FUNCTION Real | JxW (const unsigned int qp) |
| Get the transformed Jacobian weight. More... | |
| KOKKOS_FUNCTION Real3 | q_point (const unsigned int qp) |
| Get the physical quadrature point coordinate. More... | |
| KOKKOS_FUNCTION Real3 | normals (const unsigned int qp) |
| Get the normal vector on surface. More... | |
| KOKKOS_FUNCTION void | set_local_parallel (const unsigned int local_thread_id, const unsigned int num_local_threads) |
| Set local parallelization option. More... | |
| KOKKOS_FUNCTION unsigned int | local_thread_id () const |
| Get the current local thread ID. More... | |
| KOKKOS_FUNCTION unsigned int | num_local_threads () const |
| Get the number of local threads. More... | |
Protected Attributes | |
| const Assembly & | _assembly |
| Reference of the Kokkos assembly. More... | |
| const Array< System > & | _systems |
| Reference of the Kokkos systems. More... | |
| const Mesh & | _mesh |
| Reference of the Kokkos mesh. More... | |
| const ElementInfo | _elem |
| Current element information object. More... | |
| const unsigned int | _side = libMesh::invalid_uint |
| Current side index. More... | |
| const ContiguousNodeID | _node = libMesh::DofObject::invalid_id |
| Current contiguous node ID. More... | |
| const ContiguousElementID | _neighbor = libMesh::DofObject::invalid_id |
| Current contiguous element ID of neighbor. More... | |
| const unsigned int | _n_qps = 1 |
| Number of local quadrature points. More... | |
| const dof_id_type | _qp_offset = libMesh::DofObject::invalid_id |
| Starting offset into the global quadrature point index. More... | |
| const dof_id_type | _elem_property_idx = libMesh::DofObject::invalid_id |
| Index for element-constant material properties. More... | |
Private Member Functions | |
| KOKKOS_FUNCTION void | reinitTransform (const unsigned int qp) |
| Compute and cache the physical transformation data. More... | |
Private Attributes | |
| unsigned int | _cached_qp = libMesh::invalid_uint |
| Cached quadrature point index for checking whether the physical transformation data should be recomputed. More... | |
| unsigned int | _local_thread_id = 0 |
| Thread ID for local parallelization. More... | |
| unsigned int | _num_local_threads = 1 |
| Number of threads for local parallelization. More... | |
| Real33 | _J |
| Cached physical transformation data. More... | |
| Real | _JxW |
| Real3 | _xyz |
| Real3 | _normal |
The Kokkos object that holds thread-private data in the parallel operations of any Kokkos object.
Definition at line 23 of file KokkosDatum.h.
|
inline |
Constructor for element and side data.
| elem | The contiguous element ID of the current thread |
| side | The side index of the current thread |
| assembly | The Kokkos assembly |
| systems | The Kokkos systems |
Definition at line 34 of file KokkosDatum.h.
|
inline |
Constructor for node data.
| node | The contiguous node ID of the current thread |
| assembly | The Kokkos assembly |
| systems | The Kokkos systems |
Definition at line 58 of file KokkosDatum.h.
|
inline |
Get the Kokkos assembly.
Definition at line 67 of file KokkosDatum.h.
Referenced by Moose::Kokkos::VariablePhiValue::operator()(), Moose::Kokkos::VariablePhiGradient::operator()(), Moose::Kokkos::VariableTestValue::operator()(), and Moose::Kokkos::VariableTestGradient::operator()().
|
inline |
Get the element information object.
Definition at line 84 of file KokkosDatum.h.
Referenced by Moose::Kokkos::ResidualObject::accumulateTaggedElementalMatrix(), KokkosCopyValueAux::computeElementInternal(), KokkosTimeDerivative::computeJacobianInternal(), Moose::Kokkos::ResidualObject::computeJacobianInternal(), Moose::Kokkos::ADKernel::computeResidualInternal(), Moose::Kokkos::ADIntegratedBC::computeResidualInternal(), Moose::Kokkos::ResidualObject::computeResidualInternal(), Moose::Kokkos::VariableValueTempl< is_ad >::get(), Moose::Kokkos::VariableGradientTempl< is_ad >::get(), Moose::Kokkos::VariablePhiValue::operator()(), Moose::Kokkos::VariablePhiGradient::operator()(), Moose::Kokkos::VariableTestValue::operator()(), Moose::Kokkos::VariableTestGradient::operator()(), and Moose::Kokkos::AuxKernel::setElementSolution().
|
inline |
Get the contiguous element ID.
Definition at line 89 of file KokkosDatum.h.
Referenced by KokkosExtraIDIntegralVectorPostprocessor::execute(), and KokkosExtraIDIntegralVectorPostprocessor::reduce().
|
inline |
Get the extra element ID.
| index | The extra element ID index |
Definition at line 95 of file KokkosDatum.h.
Referenced by KokkosExtraElementIDAux::computeValue().
|
inline |
Get whether the current side has a neighbor.
Definition at line 136 of file KokkosDatum.h.
|
inline |
Get whether the current datum is on a node.
Definition at line 146 of file KokkosDatum.h.
Referenced by extraElemID(), Moose::Kokkos::VariableValueTempl< is_ad >::get(), Moose::Kokkos::VariableGradientTempl< is_ad >::get(), isNodalDefined(), J(), JxW(), and q_point().
|
inline |
Get whether the a variable is defined on the current node.
| var | The variable |
Definition at line 291 of file KokkosDatum.h.
Referenced by KokkosNodalExtremeValue::reduce(), KokkosNodalMaxValueId::reduce(), and KokkosNodalSum::reduce().
|
inline |
Get whether the current datum is on a side.
Definition at line 141 of file KokkosDatum.h.
Referenced by normals(), and reinitTransform().
Get the inverse of Jacobian matrix | dxi/dx deta/dx dzeta/dx | | dxi/dy deta/dy dzeta/dy | | dxi/dz deta/dz dzeta/dz |.
| qp | The local quadrature point index |
Definition at line 300 of file KokkosDatum.h.
Referenced by Moose::Kokkos::VariableGradientTempl< is_ad >::get(), Moose::Kokkos::VariablePhiGradient::operator()(), and Moose::Kokkos::VariableTestGradient::operator()().
Get the transformed Jacobian weight.
| qp | The local quadrature point index |
Definition at line 311 of file KokkosDatum.h.
Referenced by Moose::Kokkos::AuxKernel::computeElementInternal(), KokkosTimeDerivative::computeJacobianInternal(), Moose::Kokkos::KernelValue::computeJacobianInternal(), Moose::Kokkos::IntegratedBCValue::computeJacobianInternal(), Moose::Kokkos::KernelGrad::computeJacobianInternal(), Moose::Kokkos::IntegratedBC::computeJacobianInternal(), Moose::Kokkos::Kernel::computeJacobianInternal(), Moose::Kokkos::KernelValue::computeOffDiagJacobianInternal(), Moose::Kokkos::IntegratedBCValue::computeOffDiagJacobianInternal(), Moose::Kokkos::KernelGrad::computeOffDiagJacobianInternal(), Moose::Kokkos::IntegratedBC::computeOffDiagJacobianInternal(), Moose::Kokkos::Kernel::computeOffDiagJacobianInternal(), KokkosTimeDerivative::computeResidualInternal(), Moose::Kokkos::TimeKernel::computeResidualInternal(), Moose::Kokkos::ADKernel::computeResidualInternal(), Moose::Kokkos::ADIntegratedBC::computeResidualInternal(), Moose::Kokkos::KernelValue::computeResidualInternal(), Moose::Kokkos::KernelGrad::computeResidualInternal(), Moose::Kokkos::IntegratedBCValue::computeResidualInternal(), Moose::Kokkos::Kernel::computeResidualInternal(), Moose::Kokkos::IntegratedBC::computeResidualInternal(), KokkosElementVariableStatistics::computeValue(), KokkosExtraIDIntegralVectorPostprocessor::execute(), KokkosIntegralPostprocessor< Base >::reduce(), and KokkosExtraIDIntegralVectorPostprocessor::reduce().
|
inline |
Get the current local thread ID.
Definition at line 197 of file KokkosDatum.h.
Referenced by KokkosTimeDerivative::computeJacobianInternal(), Moose::Kokkos::ResidualObject::computeJacobianInternal(), Moose::Kokkos::ADKernel::computeResidualInternal(), Moose::Kokkos::ADIntegratedBC::computeResidualInternal(), Moose::Kokkos::ResidualObject::computeResidualInternal(), and set_local_parallel().
|
inline |
Get the Kokkos mesh.
Definition at line 78 of file KokkosDatum.h.
|
inline |
Get the number of local quadrature points.
Definition at line 118 of file KokkosDatum.h.
Referenced by Moose::Kokkos::AuxKernel::computeElementInternal(), KokkosTimeDerivative::computeJacobianInternal(), Moose::Kokkos::KernelValue::computeJacobianInternal(), Moose::Kokkos::IntegratedBCValue::computeJacobianInternal(), Moose::Kokkos::KernelGrad::computeJacobianInternal(), Moose::Kokkos::IntegratedBC::computeJacobianInternal(), Moose::Kokkos::Kernel::computeJacobianInternal(), Moose::Kokkos::KernelValue::computeOffDiagJacobianInternal(), Moose::Kokkos::IntegratedBCValue::computeOffDiagJacobianInternal(), Moose::Kokkos::KernelGrad::computeOffDiagJacobianInternal(), Moose::Kokkos::IntegratedBC::computeOffDiagJacobianInternal(), Moose::Kokkos::Kernel::computeOffDiagJacobianInternal(), KokkosTimeDerivative::computeResidualInternal(), Moose::Kokkos::TimeKernel::computeResidualInternal(), Moose::Kokkos::ADKernel::computeResidualInternal(), Moose::Kokkos::ADIntegratedBC::computeResidualInternal(), Moose::Kokkos::KernelValue::computeResidualInternal(), Moose::Kokkos::IntegratedBCValue::computeResidualInternal(), Moose::Kokkos::KernelGrad::computeResidualInternal(), Moose::Kokkos::IntegratedBC::computeResidualInternal(), Moose::Kokkos::Kernel::computeResidualInternal(), KokkosElementVariableStatistics::computeValue(), KokkosExtraIDIntegralVectorPostprocessor::execute(), Moose::Kokkos::Material::operator()(), KokkosElementExtremeValue::reduce(), KokkosSideExtremeValue::reduce(), KokkosIntegralPostprocessor< Base >::reduce(), and KokkosExtraIDIntegralVectorPostprocessor::reduce().
|
inline |
Get the contiguous node ID.
Definition at line 113 of file KokkosDatum.h.
Referenced by KokkosCopyValueAux::computeNodeInternal(), KokkosBoundNodalKernel::computeQpJacobian(), KokkosBoundNodalKernel::computeQpOffDiagJacobian(), KokkosBoundNodalKernel::computeQpResidual(), Moose::Kokkos::VariableValueTempl< is_ad >::get(), KokkosNodalMaxValueId::reduce(), and Moose::Kokkos::AuxKernel::setNodeSolution().
Get the normal vector on surface.
| qp | The local quadrature point index |
Definition at line 333 of file KokkosDatum.h.
Referenced by KokkosDirectionalNeumannBC::computeQpResidual().
|
inline |
Get the number of local threads.
Definition at line 202 of file KokkosDatum.h.
Referenced by KokkosTimeDerivative::computeJacobianInternal(), Moose::Kokkos::ResidualObject::computeJacobianInternal(), Moose::Kokkos::ADKernel::computeResidualInternal(), Moose::Kokkos::ADIntegratedBC::computeResidualInternal(), Moose::Kokkos::ResidualObject::computeResidualInternal(), and set_local_parallel().
|
inline |
Get the index into the property data storage.
| constant_option | The property constant option |
| qp | The local quadrature point index |
Definition at line 278 of file KokkosDatum.h.
Get the physical quadrature point coordinate.
| qp | The local quadrature point index |
Definition at line 322 of file KokkosDatum.h.
Referenced by KokkosParsedMaterial::computeQpProperties(), KokkosFunctionAux::computeValue(), and KokkosParsedAux::computeValue().
|
inline |
Get the starting offset into the global quadrature point index.
Definition at line 123 of file KokkosDatum.h.
Referenced by Moose::Kokkos::VariableValueTempl< is_ad >::get(), and Moose::Kokkos::VariableGradientTempl< is_ad >::get().
Compute and cache the physical transformation data.
| qp | The local quadrature point index |
Definition at line 344 of file KokkosDatum.h.
Referenced by J(), JxW(), normals(), and q_point().
|
inline |
Set local parallelization option.
| local_thread_id | The current local thread ID |
| num_local_threads | The number of local threads |
Definition at line 187 of file KokkosDatum.h.
Referenced by Moose::Kokkos::ADKernel::operator()(), Moose::Kokkos::ADIntegratedBC::operator()(), Moose::Kokkos::Kernel::operator()(), and Moose::Kokkos::IntegratedBC::operator()().
|
inline |
Get the side index.
Definition at line 108 of file KokkosDatum.h.
Referenced by Moose::Kokkos::VariableValueTempl< is_ad >::get(), Moose::Kokkos::VariableGradientTempl< is_ad >::get(), Moose::Kokkos::VariablePhiValue::operator()(), Moose::Kokkos::VariablePhiGradient::operator()(), Moose::Kokkos::VariableTestValue::operator()(), and Moose::Kokkos::VariableTestGradient::operator()().
|
inline |
Get the contiguous subdomain ID.
Definition at line 103 of file KokkosDatum.h.
Referenced by KokkosExtraIDIntegralVectorPostprocessor::execute(), and KokkosExtraIDIntegralVectorPostprocessor::reduce().
Get the Kokkos system.
| sys | The system number |
Definition at line 73 of file KokkosDatum.h.
Referenced by Moose::Kokkos::VariableValueTempl< is_ad >::get(), and Moose::Kokkos::VariableGradientTempl< is_ad >::get().
|
protected |
Reference of the Kokkos assembly.
Definition at line 208 of file KokkosDatum.h.
Referenced by assembly(), J(), q_point(), and reinitTransform().
|
private |
Cached quadrature point index for checking whether the physical transformation data should be recomputed.
Definition at line 257 of file KokkosDatum.h.
Referenced by reinitTransform().
|
protected |
Current element information object.
Definition at line 220 of file KokkosDatum.h.
Referenced by elem(), elemID(), extraElemID(), reinitTransform(), and subdomain().
|
protected |
Index for element-constant material properties.
Definition at line 244 of file KokkosDatum.h.
Referenced by propertyIdx().
|
private |
Cached physical transformation data.
Definition at line 262 of file KokkosDatum.h.
Referenced by J(), and reinitTransform().
|
private |
Definition at line 263 of file KokkosDatum.h.
Referenced by JxW(), and reinitTransform().
|
private |
Thread ID for local parallelization.
Definition at line 270 of file KokkosDatum.h.
Referenced by local_thread_id(), and set_local_parallel().
|
protected |
Reference of the Kokkos mesh.
Definition at line 216 of file KokkosDatum.h.
Referenced by extraElemID(), and mesh().
|
protected |
Number of local quadrature points.
Definition at line 236 of file KokkosDatum.h.
Referenced by n_qps().
|
protected |
Current contiguous element ID of neighbor.
Definition at line 232 of file KokkosDatum.h.
Referenced by hasNeighbor().
|
protected |
Current contiguous node ID.
Definition at line 228 of file KokkosDatum.h.
Referenced by isNodal(), isNodalDefined(), node(), and q_point().
|
private |
Definition at line 265 of file KokkosDatum.h.
Referenced by normals(), and reinitTransform().
|
private |
Number of threads for local parallelization.
Definition at line 274 of file KokkosDatum.h.
Referenced by num_local_threads(), and set_local_parallel().
|
protected |
Starting offset into the global quadrature point index.
Definition at line 240 of file KokkosDatum.h.
Referenced by propertyIdx(), and qpOffset().
|
protected |
Current side index.
Definition at line 224 of file KokkosDatum.h.
Referenced by isSide(), reinitTransform(), and side().
Reference of the Kokkos systems.
Definition at line 212 of file KokkosDatum.h.
Referenced by isNodalDefined(), and system().
|
private |
Definition at line 264 of file KokkosDatum.h.
Referenced by q_point(), and reinitTransform().
1.8.14