https://mooseframework.inl.gov
Public Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
Moose::Kokkos::AssemblyDatum Class Reference

The Kokkos object that holds thread-private data in the parallel operations of Kokkos kernels. More...

#include <KokkosDatum.h>

Inheritance diagram for Moose::Kokkos::AssemblyDatum:
[legend]

Public Member Functions

KOKKOS_FUNCTION AssemblyDatum (const ContiguousElementID elem, const unsigned int side, const Assembly &assembly, const Array< FESystem > &systems, const Variable &ivar, const unsigned int jvar, const unsigned int comp=0)
 Constructor for element and side data. More...
 
KOKKOS_FUNCTION AssemblyDatum (const ContiguousNodeID node, const Assembly &assembly, const Array< FESystem > &systems, const Variable &ivar, const unsigned int jvar, const unsigned int comp=0)
 Constructor for node data. More...
 
KOKKOS_FUNCTION unsigned int n_dofs () const
 Get the number of local DOFs. More...
 
KOKKOS_FUNCTION unsigned int n_idofs () const
 Get the number of local DOFs. More...
 
KOKKOS_FUNCTION unsigned int n_jdofs () const
 Get the number of local DOFs for the coupled variable. More...
 
KOKKOS_FUNCTION unsigned int sys () const
 Get the system number of variable. More...
 
KOKKOS_FUNCTION unsigned int var () const
 Get the variable number. More...
 
KOKKOS_FUNCTION unsigned int ivar () const
 Get the variable number. More...
 
KOKKOS_FUNCTION unsigned int jvar () const
 Get the coupled variable number. More...
 
KOKKOS_FUNCTION unsigned int fe () const
 Get the variable FE type ID. More...
 
KOKKOS_FUNCTION unsigned int ife () const
 Get the variable FE type ID. More...
 
KOKKOS_FUNCTION unsigned int jfe () const
 Get the coupled variable FE type ID. More...
 
KOKKOS_FUNCTION void do_derivatives (const bool flag)
 Set whether to compute derivatives for automatic differentiation (AD) More...
 
KOKKOS_FUNCTION bool do_derivatives () const
 Get whether to compute derivatives for automatic differentiation (AD) More...
 
KOKKOS_FUNCTION const Assemblyassembly () const
 Get the Kokkos assembly. More...
 
KOKKOS_FUNCTION const FESystemsystem (unsigned int sys) const
 Get the Kokkos system. More...
 
KOKKOS_FUNCTION dof_id_type extraElemID (unsigned int index) const
 Get the extra element ID. 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 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 Real33J (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...
 
KOKKOS_FUNCTION const Meshmesh () const
 Get the Kokkos mesh. More...
 
KOKKOS_FUNCTION const ElementInfoelem () const
 Get the element information object. More...
 
KOKKOS_FUNCTION ContiguousElementID elemID () const
 Get the contiguous element ID. More...
 
KOKKOS_FUNCTION bool hasNeighbor () const
 Get whether the current side has a neighbor. More...
 
KOKKOS_FUNCTION const ElementInfoneighbor () const
 Get the neighbor element information object. More...
 
KOKKOS_FUNCTION ContiguousElementID neighborID () const
 Get the contiguous neighbor element ID. More...
 
KOKKOS_FUNCTION unsigned int side () const
 Get the side index. More...
 
KOKKOS_FUNCTION bool isSide () const
 Get whether the current datum is on a side. More...
 
KOKKOS_FUNCTION ContiguousSubdomainID subdomain () const
 Get the contiguous subdomain ID. More...
 
KOKKOS_FUNCTION ContiguousSubdomainID neighborSubdomain () const
 Get the contiguous neighbor subdomain ID. More...
 

Static Protected Member Functions

static KOKKOS_FUNCTION ElementInfo neighborInfo (ContiguousElementID elem, const unsigned int side, const Mesh &mesh)
 Get the neighbor element information object for an element side. More...
 

Protected Attributes

const TagID _tag
 Solution tag ID. More...
 
const unsigned int _sys
 System number. More...
 
const unsigned int _ivar
 Variable numbers. More...
 
const unsigned int _jvar
 
const unsigned int _ife
 FE type IDs of variables. More...
 
const unsigned int _jfe
 
const unsigned int _n_idofs = 1
 Number of local DOFs. More...
 
const unsigned int _n_jdofs = 1
 
bool _do_derivatives = true
 Whether to compute derivatives for automatic differentiation (AD) More...
 
const Assembly_assembly
 Reference of the Kokkos assembly. More...
 
const Array< FESystem > & _systems
 Reference of the Kokkos systems. More...
 
const ContiguousNodeID _node = libMesh::DofObject::invalid_id
 Current contiguous node ID. 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...
 
const Mesh_mesh
 Reference to the Kokkos mesh. More...
 
const ElementInfo _elem
 Current element information object. More...
 
const unsigned int _side = libMesh::invalid_uint
 Current side index. More...
 
const ElementInfo _neighbor
 Current neighbor element information object. More...
 

Detailed Description

The Kokkos object that holds thread-private data in the parallel operations of Kokkos kernels.

Definition at line 559 of file KokkosDatum.h.

Constructor & Destructor Documentation

◆ AssemblyDatum() [1/2]

KOKKOS_FUNCTION Moose::Kokkos::AssemblyDatum::AssemblyDatum ( const ContiguousElementID  elem,
const unsigned int  side,
const Assembly assembly,
const Array< FESystem > &  systems,
const Variable ivar,
const unsigned int  jvar,
const unsigned int  comp = 0 
)
inline

Constructor for element and side data.

Parameters
elemThe contiguous element ID of the current thread
sideThe side index of the current thread
assemblyThe Kokkos assembly
systemsThe Kokkos systems
ivarThe Kokkos variable
jvarThe coupled variable number
compThe variable component

Definition at line 573 of file KokkosDatum.h.

580  : Datum(elem, side, assembly, systems),
581  _tag(ivar.tag()),
582  _sys(ivar.sys(comp)),
583  _ivar(ivar.var(comp)),
584  _jvar(jvar),
585  _ife(systems[ivar.sys(comp)].getFETypeID(_ivar)),
586  _jfe(systems[ivar.sys(comp)].getFETypeID(_jvar)),
589  {
590  }
const unsigned int _sys
System number.
Definition: KokkosDatum.h:686
const unsigned int _n_jdofs
Definition: KokkosDatum.h:698
const unsigned int _jvar
Definition: KokkosDatum.h:690
KOKKOS_FUNCTION unsigned int jvar() const
Get the coupled variable number.
Definition: KokkosDatum.h:651
KOKKOS_FUNCTION unsigned int getNumDofs(unsigned int elem_type, unsigned int fe_type) const
Get the number of DOFs of a FE type for an element type.
KOKKOS_FUNCTION unsigned int ivar() const
Get the variable number.
Definition: KokkosDatum.h:646
KOKKOS_FUNCTION Datum(const ContiguousElementID elem, const unsigned int side, const Assembly &assembly, const Array< FESystem > &systems)
Constructor for element and side data.
Definition: KokkosDatum.h:448
KOKKOS_FUNCTION unsigned int side() const
Get the side index.
Definition: KokkosDatum.h:79
const unsigned int _jfe
Definition: KokkosDatum.h:694
const unsigned int _n_idofs
Number of local DOFs.
Definition: KokkosDatum.h:698
unsigned int type
Element type ID.
Definition: KokkosMesh.h:38
KOKKOS_FUNCTION const Assembly & assembly() const
Get the Kokkos assembly.
Definition: KokkosDatum.h:274
const TagID _tag
Solution tag ID.
Definition: KokkosDatum.h:682
const ElementInfo _elem
Current element information object.
Definition: KokkosDatum.h:125
KOKKOS_FUNCTION const ElementInfo & elem() const
Get the element information object.
Definition: KokkosDatum.h:46
const unsigned int _ivar
Variable numbers.
Definition: KokkosDatum.h:690
const unsigned int _ife
FE type IDs of variables.
Definition: KokkosDatum.h:694

◆ AssemblyDatum() [2/2]

KOKKOS_FUNCTION Moose::Kokkos::AssemblyDatum::AssemblyDatum ( const ContiguousNodeID  node,
const Assembly assembly,
const Array< FESystem > &  systems,
const Variable ivar,
const unsigned int  jvar,
const unsigned int  comp = 0 
)
inline

Constructor for node data.

Parameters
elemThe contiguous element ID of the current thread
assemblyThe Kokkos assembly
systemsThe Kokkos systems
ivarThe Kokkos variable
jvarThe coupled variable number
compThe variable component

Definition at line 601 of file KokkosDatum.h.

607  : Datum(node, assembly, systems),
608  _tag(ivar.tag()),
609  _sys(ivar.sys(comp)),
610  _ivar(ivar.var(comp)),
611  _jvar(jvar),
612  _ife(systems[ivar.sys(comp)].getFETypeID(_ivar)),
613  _jfe(systems[ivar.sys(comp)].getFETypeID(_jvar))
614  {
615  }
const unsigned int _sys
System number.
Definition: KokkosDatum.h:686
const unsigned int _jvar
Definition: KokkosDatum.h:690
KOKKOS_FUNCTION unsigned int jvar() const
Get the coupled variable number.
Definition: KokkosDatum.h:651
KOKKOS_FUNCTION unsigned int ivar() const
Get the variable number.
Definition: KokkosDatum.h:646
KOKKOS_FUNCTION Datum(const ContiguousElementID elem, const unsigned int side, const Assembly &assembly, const Array< FESystem > &systems)
Constructor for element and side data.
Definition: KokkosDatum.h:448
const unsigned int _jfe
Definition: KokkosDatum.h:694
KOKKOS_FUNCTION const Assembly & assembly() const
Get the Kokkos assembly.
Definition: KokkosDatum.h:274
const TagID _tag
Solution tag ID.
Definition: KokkosDatum.h:682
KOKKOS_FUNCTION ContiguousNodeID node() const
Get the contiguous node ID.
Definition: KokkosDatum.h:297
const unsigned int _ivar
Variable numbers.
Definition: KokkosDatum.h:690
const unsigned int _ife
FE type IDs of variables.
Definition: KokkosDatum.h:694

Member Function Documentation

◆ assembly()

KOKKOS_FUNCTION const Assembly& Moose::Kokkos::Datum::assembly ( ) const
inlineinherited

◆ do_derivatives() [1/2]

KOKKOS_FUNCTION void Moose::Kokkos::AssemblyDatum::do_derivatives ( const bool  flag)
inline

Set whether to compute derivatives for automatic differentiation (AD)

Parameters
flagWhether to compute derivatives

Definition at line 671 of file KokkosDatum.h.

Referenced by Moose::Kokkos::ADNodalBC::operator()(), Moose::Kokkos::VariableValueTempl< is_ad >::operator()(), and Moose::Kokkos::VariableGradientTempl< is_ad >::operator()().

671 { _do_derivatives = flag; }
bool _do_derivatives
Whether to compute derivatives for automatic differentiation (AD)
Definition: KokkosDatum.h:702

◆ do_derivatives() [2/2]

KOKKOS_FUNCTION bool Moose::Kokkos::AssemblyDatum::do_derivatives ( ) const
inline

Get whether to compute derivatives for automatic differentiation (AD)

Returns
Whether to compute derivatives

Definition at line 676 of file KokkosDatum.h.

676 { return _do_derivatives; }
bool _do_derivatives
Whether to compute derivatives for automatic differentiation (AD)
Definition: KokkosDatum.h:702

◆ elem()

KOKKOS_FUNCTION const ElementInfo& Moose::Kokkos::MeshDatum::elem ( ) const
inlineinherited

◆ elemID()

KOKKOS_FUNCTION ContiguousElementID Moose::Kokkos::MeshDatum::elemID ( ) const
inlineinherited

Get the contiguous element ID.

Returns
The contiguous element ID

Definition at line 52 of file KokkosDatum.h.

Referenced by KokkosExtraIDIntegralVectorPostprocessor::execute(), Moose::Kokkos::LinearFVFluxKernel::hasBoundaryData(), and KokkosExtraIDIntegralVectorPostprocessor::reduce().

52 { return _elem.id; }
const ElementInfo _elem
Current element information object.
Definition: KokkosDatum.h:125
ContiguousElementID id
Contiguous element ID.
Definition: KokkosMesh.h:42

◆ extraElemID()

KOKKOS_FUNCTION dof_id_type Moose::Kokkos::Datum::extraElemID ( unsigned int  index) const
inlineinherited

Get the extra element ID.

Parameters
indexThe extra element ID index
Returns
The extra element ID

Definition at line 288 of file KokkosDatum.h.

Referenced by KokkosExtraElementIDAux::computeValue().

289  {
291  }
static constexpr dof_id_type invalid_id
KOKKOS_FUNCTION dof_id_type getExtraElementID(ContiguousElementID elem, unsigned int index) const
Get the extra element ID of an element.
Definition: KokkosMesh.h:383
KOKKOS_FUNCTION bool isNodal() const
Get whether the current datum is on a node.
Definition: KokkosDatum.h:324
const ElementInfo _elem
Current element information object.
Definition: KokkosDatum.h:125
const Mesh & _mesh
Reference to the Kokkos mesh.
Definition: KokkosDatum.h:120
ContiguousElementID id
Contiguous element ID.
Definition: KokkosMesh.h:42

◆ fe()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::AssemblyDatum::fe ( ) const
inline

Get the variable FE type ID.

Returns
The variable FE type ID

Definition at line 656 of file KokkosDatum.h.

656 { return _ife; }
const unsigned int _ife
FE type IDs of variables.
Definition: KokkosDatum.h:694

◆ hasNeighbor()

KOKKOS_FUNCTION bool Moose::Kokkos::MeshDatum::hasNeighbor ( ) const
inlineinherited

Get whether the current side has a neighbor.

Returns
Whether the current side has a neighbor

Definition at line 149 of file KokkosDatum.h.

Referenced by Moose::Kokkos::LinearFVFluxKernel::hasFaceNeighbor().

150 {
152 }
const ElementInfo _neighbor
Current neighbor element information object.
Definition: KokkosDatum.h:135
static constexpr dof_id_type invalid_id
ContiguousElementID id
Contiguous element ID.
Definition: KokkosMesh.h:42

◆ ife()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::AssemblyDatum::ife ( ) const
inline

◆ isNodal()

KOKKOS_FUNCTION bool Moose::Kokkos::Datum::isNodal ( ) const
inlineinherited

◆ isNodalDefined()

KOKKOS_FUNCTION bool Moose::Kokkos::Datum::isNodalDefined ( const Variable var) const
inlineinherited

Get whether the a variable is defined on the current node.

Parameters
varThe variable
Returns
Whether the variable is defined on the current node

Definition at line 486 of file KokkosDatum.h.

Referenced by KokkosNodalExtremeValue::reduce(), KokkosNodalSum::reduce(), and KokkosNodalMaxValueId::reduce().

487 {
488  if (!isNodal() || !var.nodal())
489  return false;
490 
491  return _systems[var.sys()].isNodalDefined(_node, var.var());
492 }
const Array< FESystem > & _systems
Reference of the Kokkos systems.
Definition: KokkosDatum.h:395
KOKKOS_FUNCTION bool isNodal() const
Get whether the current datum is on a node.
Definition: KokkosDatum.h:324
const ContiguousNodeID _node
Current contiguous node ID.
Definition: KokkosDatum.h:400

◆ isSide()

KOKKOS_FUNCTION bool Moose::Kokkos::MeshDatum::isSide ( ) const
inlineinherited

Get whether the current datum is on a side.

Returns
Whether the current datum is on a side

Definition at line 85 of file KokkosDatum.h.

Referenced by Moose::Kokkos::Datum::normals(), and Moose::Kokkos::Datum::reinitTransform().

85 { return _side != libMesh::invalid_uint; }
const unsigned int invalid_uint
const unsigned int _side
Current side index.
Definition: KokkosDatum.h:130

◆ ivar()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::AssemblyDatum::ivar ( ) const
inline

Get the variable number.

Returns
The variable number

Definition at line 646 of file KokkosDatum.h.

646 { return _ivar; }
const unsigned int _ivar
Variable numbers.
Definition: KokkosDatum.h:690

◆ J()

KOKKOS_FUNCTION const Real33 & Moose::Kokkos::Datum::J ( const unsigned int  qp)
inlineinherited

Get the inverse of Jacobian matrix | dxi/dx deta/dx dzeta/dx | | dxi/dy deta/dy dzeta/dy | | dxi/dz deta/dz dzeta/dz |.

Parameters
qpThe local quadrature point index
Returns
The Jacobian matrix

Definition at line 495 of file KokkosDatum.h.

Referenced by Moose::Kokkos::VectorKernelGrad::computeJacobianInternal(), Moose::Kokkos::KernelGrad::computeJacobianInternal(), Moose::Kokkos::VectorKernelGrad::computeOffDiagJacobianInternal(), Moose::Kokkos::KernelGrad::computeOffDiagJacobianInternal(), Moose::Kokkos::VectorKernelGrad::computeResidualInternal(), Moose::Kokkos::KernelGrad::computeResidualInternal(), Moose::Kokkos::VariableGradientTempl< is_ad >::get(), Moose::Kokkos::VariableShapeGradient< is_test >::operator()(), Moose::Kokkos::VectorVariableShapeGradient< is_test >::operator()(), Moose::Kokkos::VectorVariableShapeCurl< is_test >::operator()(), Moose::Kokkos::VectorVariableGradient::operator()(), and Moose::Kokkos::VectorVariableCurl::operator()().

496 {
497  if (!isNodal())
498  reinitTransform(qp);
499  else
501 
502  return _J;
503 }
const Assembly & _assembly
Reference of the Kokkos assembly.
Definition: KokkosDatum.h:390
KOKKOS_INLINE_FUNCTION void identity(const unsigned int dim=3)
Definition: KokkosTypes.h:387
KOKKOS_FUNCTION unsigned int getDimension() const
Get the mesh dimension.
KOKKOS_FUNCTION void reinitTransform(const unsigned int qp)
Compute and cache the physical transformation data.
Definition: KokkosDatum.h:539
KOKKOS_FUNCTION bool isNodal() const
Get whether the current datum is on a node.
Definition: KokkosDatum.h:324
Real33 _J
Cached physical transformation data.
Definition: KokkosDatum.h:433

◆ jfe()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::AssemblyDatum::jfe ( ) const
inline

◆ jvar()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::AssemblyDatum::jvar ( ) const
inline

◆ JxW()

KOKKOS_FUNCTION Real Moose::Kokkos::Datum::JxW ( const unsigned int  qp)
inlineinherited

Get the transformed Jacobian weight.

Parameters
qpThe local quadrature point index
Returns
The transformed Jacobian weights

Definition at line 506 of file KokkosDatum.h.

Referenced by Moose::Kokkos::AuxKernel::computeElementInternal(), KokkosVectorTimeDerivative::computeJacobianInternal(), KokkosTimeDerivative::computeJacobianInternal(), Moose::Kokkos::VectorIntegratedBCValue::computeJacobianInternal(), Moose::Kokkos::VectorKernelValue::computeJacobianInternal(), Moose::Kokkos::VectorKernelGrad::computeJacobianInternal(), Moose::Kokkos::VectorIntegratedBC::computeJacobianInternal(), Moose::Kokkos::KernelValue::computeJacobianInternal(), Moose::Kokkos::KernelGrad::computeJacobianInternal(), Moose::Kokkos::IntegratedBCValue::computeJacobianInternal(), Moose::Kokkos::VectorKernel::computeJacobianInternal(), Moose::Kokkos::Kernel::computeJacobianInternal(), Moose::Kokkos::IntegratedBC::computeJacobianInternal(), Moose::Kokkos::VectorIntegratedBCValue::computeOffDiagJacobianInternal(), Moose::Kokkos::VectorKernelValue::computeOffDiagJacobianInternal(), Moose::Kokkos::VectorKernelGrad::computeOffDiagJacobianInternal(), Moose::Kokkos::VectorIntegratedBC::computeOffDiagJacobianInternal(), Moose::Kokkos::KernelValue::computeOffDiagJacobianInternal(), Moose::Kokkos::IntegratedBCValue::computeOffDiagJacobianInternal(), Moose::Kokkos::KernelGrad::computeOffDiagJacobianInternal(), Moose::Kokkos::VectorKernel::computeOffDiagJacobianInternal(), Moose::Kokkos::Kernel::computeOffDiagJacobianInternal(), Moose::Kokkos::IntegratedBC::computeOffDiagJacobianInternal(), Moose::Kokkos::TimeKernel::computeResidualInternal(), Moose::Kokkos::ADKernel::computeResidualInternal(), Moose::Kokkos::ADIntegratedBC::computeResidualInternal(), Moose::Kokkos::VectorIntegratedBCValue::computeResidualInternal(), Moose::Kokkos::VectorKernelValue::computeResidualInternal(), Moose::Kokkos::VectorKernelGrad::computeResidualInternal(), Moose::Kokkos::VectorIntegratedBC::computeResidualInternal(), Moose::Kokkos::KernelValue::computeResidualInternal(), Moose::Kokkos::KernelGrad::computeResidualInternal(), Moose::Kokkos::IntegratedBCValue::computeResidualInternal(), Moose::Kokkos::VectorKernel::computeResidualInternal(), Moose::Kokkos::IntegratedBC::computeResidualInternal(), Moose::Kokkos::Kernel::computeResidualInternal(), KokkosElementVariableStatistics::computeValue(), KokkosExtraIDIntegralVectorPostprocessor::execute(), KokkosIntegralPostprocessor< Base >::reduce(), and KokkosExtraIDIntegralVectorPostprocessor::reduce().

507 {
508  if (!isNodal())
509  reinitTransform(qp);
510  else
511  _JxW = 1;
512 
513  return _JxW;
514 }
KOKKOS_FUNCTION void reinitTransform(const unsigned int qp)
Compute and cache the physical transformation data.
Definition: KokkosDatum.h:539
KOKKOS_FUNCTION bool isNodal() const
Get whether the current datum is on a node.
Definition: KokkosDatum.h:324

◆ local_thread_id()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::Datum::local_thread_id ( ) const
inlineinherited

◆ mesh()

KOKKOS_FUNCTION const Mesh& Moose::Kokkos::MeshDatum::mesh ( ) const
inlineinherited

Get the Kokkos mesh.

Returns
The Kokkos mesh

Definition at line 40 of file KokkosDatum.h.

Referenced by Moose::Kokkos::MeshDatum::neighborInfo().

40 { return _mesh; }
const Mesh & _mesh
Reference to the Kokkos mesh.
Definition: KokkosDatum.h:120

◆ n_dofs()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::AssemblyDatum::n_dofs ( ) const
inline

◆ n_idofs()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::AssemblyDatum::n_idofs ( ) const
inline

Get the number of local DOFs.

Returns
The number of local DOFs

Definition at line 626 of file KokkosDatum.h.

Referenced by KokkosTimeDerivative::computeJacobianInternal(), KokkosVectorTimeDerivative::computeJacobianInternal(), and Moose::Kokkos::ResidualObject::computeJacobianInternal().

626 { return _n_idofs; }
const unsigned int _n_idofs
Number of local DOFs.
Definition: KokkosDatum.h:698

◆ n_jdofs()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::AssemblyDatum::n_jdofs ( ) const
inline

Get the number of local DOFs for the coupled variable.

Returns
The number of local DOFs

Definition at line 631 of file KokkosDatum.h.

Referenced by KokkosTimeDerivative::computeJacobianInternal(), KokkosVectorTimeDerivative::computeJacobianInternal(), and Moose::Kokkos::ResidualObject::computeJacobianInternal().

631 { return _n_jdofs; }
const unsigned int _n_jdofs
Definition: KokkosDatum.h:698

◆ n_qps()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::Datum::n_qps ( ) const
inlineinherited

Get the number of local quadrature points.

Returns
The number of local quadrature points

Definition at line 303 of file KokkosDatum.h.

Referenced by Moose::Kokkos::AuxKernel::computeElementInternal(), KokkosVectorTimeDerivative::computeJacobianInternal(), KokkosTimeDerivative::computeJacobianInternal(), Moose::Kokkos::VectorIntegratedBCValue::computeJacobianInternal(), Moose::Kokkos::VectorKernelValue::computeJacobianInternal(), Moose::Kokkos::VectorKernelGrad::computeJacobianInternal(), Moose::Kokkos::VectorIntegratedBC::computeJacobianInternal(), Moose::Kokkos::KernelValue::computeJacobianInternal(), Moose::Kokkos::KernelGrad::computeJacobianInternal(), Moose::Kokkos::IntegratedBCValue::computeJacobianInternal(), Moose::Kokkos::VectorKernel::computeJacobianInternal(), Moose::Kokkos::Kernel::computeJacobianInternal(), Moose::Kokkos::IntegratedBC::computeJacobianInternal(), Moose::Kokkos::VectorIntegratedBCValue::computeOffDiagJacobianInternal(), Moose::Kokkos::VectorKernelValue::computeOffDiagJacobianInternal(), Moose::Kokkos::VectorKernelGrad::computeOffDiagJacobianInternal(), Moose::Kokkos::VectorIntegratedBC::computeOffDiagJacobianInternal(), Moose::Kokkos::KernelValue::computeOffDiagJacobianInternal(), Moose::Kokkos::IntegratedBCValue::computeOffDiagJacobianInternal(), Moose::Kokkos::KernelGrad::computeOffDiagJacobianInternal(), Moose::Kokkos::VectorKernel::computeOffDiagJacobianInternal(), Moose::Kokkos::Kernel::computeOffDiagJacobianInternal(), Moose::Kokkos::IntegratedBC::computeOffDiagJacobianInternal(), Moose::Kokkos::TimeKernel::computeResidualInternal(), Moose::Kokkos::ADKernel::computeResidualInternal(), Moose::Kokkos::ADIntegratedBC::computeResidualInternal(), Moose::Kokkos::VectorIntegratedBCValue::computeResidualInternal(), Moose::Kokkos::VectorKernelValue::computeResidualInternal(), Moose::Kokkos::VectorKernelGrad::computeResidualInternal(), Moose::Kokkos::VectorIntegratedBC::computeResidualInternal(), Moose::Kokkos::KernelValue::computeResidualInternal(), Moose::Kokkos::KernelGrad::computeResidualInternal(), Moose::Kokkos::IntegratedBCValue::computeResidualInternal(), Moose::Kokkos::VectorKernel::computeResidualInternal(), Moose::Kokkos::Kernel::computeResidualInternal(), Moose::Kokkos::IntegratedBC::computeResidualInternal(), KokkosElementVariableStatistics::computeValue(), KokkosExtraIDIntegralVectorPostprocessor::execute(), Moose::Kokkos::Material::operator()(), KokkosElementExtremeValue::reduce(), KokkosSideExtremeValue::reduce(), KokkosIntegralPostprocessor< Base >::reduce(), and KokkosExtraIDIntegralVectorPostprocessor::reduce().

303 { return _n_qps; }
const unsigned int _n_qps
Number of local quadrature points.
Definition: KokkosDatum.h:405

◆ neighbor()

KOKKOS_FUNCTION const ElementInfo& Moose::Kokkos::MeshDatum::neighbor ( ) const
inlineinherited

Get the neighbor element information object.

Returns
The neighbor element information object. If there is no neighbor or if this datum is not meant to represent face data, then this will point to a default constructed ElementInfo whose data members represent invalid state (e.g. hold invalid_uint, invalid_id like values)

Definition at line 67 of file KokkosDatum.h.

Referenced by Moose::Kokkos::MeshDatum::neighborInfo().

67 { return _neighbor; }
const ElementInfo _neighbor
Current neighbor element information object.
Definition: KokkosDatum.h:135

◆ neighborID()

KOKKOS_FUNCTION ContiguousElementID Moose::Kokkos::MeshDatum::neighborID ( ) const
inlineinherited

Get the contiguous neighbor element ID.

Returns
The contiguous neighbor element ID or libMesh::DofObject::invalid_id

Definition at line 73 of file KokkosDatum.h.

Referenced by Moose::Kokkos::LinearFVFluxKernel::operator()().

73 { return _neighbor.id; }
const ElementInfo _neighbor
Current neighbor element information object.
Definition: KokkosDatum.h:135
ContiguousElementID id
Contiguous element ID.
Definition: KokkosMesh.h:42

◆ neighborInfo()

KOKKOS_FUNCTION ElementInfo Moose::Kokkos::MeshDatum::neighborInfo ( ContiguousElementID  elem,
const unsigned int  side,
const Mesh mesh 
)
inlinestaticprotectedinherited

Get the neighbor element information object for an element side.

Parameters
elemThe contiguous element ID
sideThe side index
meshThe Kokkos mesh
Returns
The neighbor element information object, or a default ElementInfo (a default constructed ElementInfo's data members all represent invalid state) when elem is libMesh::DofObject::invalid_id, side is libMesh::invalid_uint, or the Kokkos mesh has no contiguous neighbor ID for the side. The latter includes exterior boundary sides with no libMesh neighbor and sides whose libMesh neighbor is libMesh::remote_elem. Off-process neighbors present as ghost elements have contiguous IDs and return their ElementInfo.

Definition at line 155 of file KokkosDatum.h.

156 {
158  return {};
159 
160  const auto neighbor = mesh.getNeighbor(elem, side);
162 }
const unsigned int invalid_uint
KOKKOS_FUNCTION unsigned int side() const
Get the side index.
Definition: KokkosDatum.h:79
static constexpr dof_id_type invalid_id
KOKKOS_FUNCTION ContiguousElementID getNeighbor(ContiguousElementID elem, unsigned int side) const
Get the neighbor contiguous element ID.
Definition: KokkosMesh.h:218
KOKKOS_FUNCTION const auto & getElementInfo(ContiguousElementID elem) const
Get the element information object.
Definition: KokkosMesh.h:206
KOKKOS_FUNCTION const ElementInfo & elem() const
Get the element information object.
Definition: KokkosDatum.h:46
KOKKOS_FUNCTION const Mesh & mesh() const
Get the Kokkos mesh.
Definition: KokkosDatum.h:40
KOKKOS_FUNCTION const ElementInfo & neighbor() const
Get the neighbor element information object.
Definition: KokkosDatum.h:67

◆ neighborSubdomain()

KOKKOS_FUNCTION ContiguousSubdomainID Moose::Kokkos::MeshDatum::neighborSubdomain ( ) const
inlineinherited

Get the contiguous neighbor subdomain ID.

Returns
The contiguous neighbor subdomain ID

Definition at line 97 of file KokkosDatum.h.

Referenced by Moose::Kokkos::LinearFVFluxKernel::hasFaceNeighbor().

97 { return _neighbor.subdomain; }
const ElementInfo _neighbor
Current neighbor element information object.
Definition: KokkosDatum.h:135
ContiguousSubdomainID subdomain
Contiguous subdomain ID.
Definition: KokkosMesh.h:46

◆ node()

KOKKOS_FUNCTION ContiguousNodeID Moose::Kokkos::Datum::node ( ) const
inlineinherited

◆ normals()

KOKKOS_FUNCTION Real3 Moose::Kokkos::Datum::normals ( const unsigned int  qp)
inlineinherited

Get the normal vector on surface.

Parameters
qpThe local quadrature point index
Returns
The normal vector

Definition at line 528 of file KokkosDatum.h.

Referenced by KokkosDirectionalNeumannBC::precomputeQpResidual().

529 {
530  KOKKOS_ASSERT(isSide());
531 
532  if (isSide())
533  reinitTransform(qp);
534 
535  return _normal;
536 }
KOKKOS_FUNCTION bool isSide() const
Get whether the current datum is on a side.
Definition: KokkosDatum.h:85
KOKKOS_FUNCTION void reinitTransform(const unsigned int qp)
Compute and cache the physical transformation data.
Definition: KokkosDatum.h:539

◆ num_local_threads()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::Datum::num_local_threads ( ) const
inlineinherited

◆ propertyIdx()

KOKKOS_FUNCTION dof_id_type Moose::Kokkos::Datum::propertyIdx ( const PropertyConstantOption  constant_option,
const unsigned int  qp 
) const
inlineinherited

Get the index into the property data storage.

Parameters
constant_optionThe property constant option
qpThe local quadrature point index
Returns
The index

Definition at line 473 of file KokkosDatum.h.

474 {
475  dof_id_type idx = 0;
476 
477  if (constant_option == PropertyConstantOption::NONE)
478  idx = _qp_offset + qp;
479  else if (constant_option == PropertyConstantOption::ELEMENT)
481 
482  return idx;
483 }
const dof_id_type _elem_property_idx
Index for element-constant material properties.
Definition: KokkosDatum.h:415
const dof_id_type _qp_offset
Starting offset into the global quadrature point index.
Definition: KokkosDatum.h:410
unsigned int idx(const ElemType type, const unsigned int nx, const unsigned int i, const unsigned int j)
uint8_t dof_id_type

◆ q_point()

KOKKOS_FUNCTION Real3 Moose::Kokkos::Datum::q_point ( const unsigned int  qp)
inlineinherited

Get the physical quadrature point coordinate.

Parameters
qpThe local quadrature point index
Returns
The physical quadrature point coordinate

Definition at line 517 of file KokkosDatum.h.

Referenced by KokkosParsedMaterial::computeQpProperties(), KokkosFunctionAux::computeValue(), and KokkosParsedAux::computeValue().

518 {
519  if (!isNodal())
520  reinitTransform(qp);
521  else
523 
524  return _xyz;
525 }
const Assembly & _assembly
Reference of the Kokkos assembly.
Definition: KokkosDatum.h:390
KOKKOS_FUNCTION void reinitTransform(const unsigned int qp)
Compute and cache the physical transformation data.
Definition: KokkosDatum.h:539
KOKKOS_FUNCTION Real3 getNodePoint(ContiguousNodeID node) const
Get the coordinate of a node.
Definition: KokkosMesh.h:428
KOKKOS_FUNCTION const Mesh & kokkosMesh() const
Get the const reference of the Kokkos mesh.
Definition: KokkosMesh.h:651
KOKKOS_FUNCTION bool isNodal() const
Get whether the current datum is on a node.
Definition: KokkosDatum.h:324
const ContiguousNodeID _node
Current contiguous node ID.
Definition: KokkosDatum.h:400

◆ qpOffset()

KOKKOS_FUNCTION dof_id_type Moose::Kokkos::Datum::qpOffset ( ) const
inlineinherited

Get the starting offset into the global quadrature point index.

Returns
The starting offset

Definition at line 309 of file KokkosDatum.h.

Referenced by Moose::Kokkos::VariableValueTempl< is_ad >::get(), Moose::Kokkos::VariableGradientTempl< is_ad >::get(), Moose::Kokkos::VectorVariableValue::operator()(), Moose::Kokkos::VectorVariableGradient::operator()(), and Moose::Kokkos::VectorVariableCurl::operator()().

309 { return _qp_offset; }
const dof_id_type _qp_offset
Starting offset into the global quadrature point index.
Definition: KokkosDatum.h:410

◆ set_local_parallel()

KOKKOS_FUNCTION void Moose::Kokkos::Datum::set_local_parallel ( const unsigned int  local_thread_id,
const unsigned int  num_local_threads 
)
inlineinherited

Set local parallelization option.

Parameters
local_thread_idThe current local thread ID
num_local_threadsThe number of local threads

Definition at line 369 of file KokkosDatum.h.

Referenced by Moose::Kokkos::ADKernel::operator()(), Moose::Kokkos::ADIntegratedBC::operator()(), Moose::Kokkos::VectorIntegratedBC::operator()(), Moose::Kokkos::VectorKernel::operator()(), Moose::Kokkos::Kernel::operator()(), and Moose::Kokkos::IntegratedBC::operator()().

371  {
374  }
unsigned int _local_thread_id
Thread ID for local parallelization.
Definition: KokkosDatum.h:441
unsigned int _num_local_threads
Number of threads for local parallelization.
Definition: KokkosDatum.h:445
KOKKOS_FUNCTION unsigned int num_local_threads() const
Get the number of local threads.
Definition: KokkosDatum.h:384
KOKKOS_FUNCTION unsigned int local_thread_id() const
Get the current local thread ID.
Definition: KokkosDatum.h:379

◆ side()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::MeshDatum::side ( ) const
inlineinherited

◆ subdomain()

KOKKOS_FUNCTION ContiguousSubdomainID Moose::Kokkos::MeshDatum::subdomain ( ) const
inlineinherited

Get the contiguous subdomain ID.

Returns
The contiguous subdomain ID

Definition at line 91 of file KokkosDatum.h.

Referenced by KokkosExtraIDIntegralVectorPostprocessor::execute(), and KokkosExtraIDIntegralVectorPostprocessor::reduce().

91 { return _elem.subdomain; }
ContiguousSubdomainID subdomain
Contiguous subdomain ID.
Definition: KokkosMesh.h:46
const ElementInfo _elem
Current element information object.
Definition: KokkosDatum.h:125

◆ sys()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::AssemblyDatum::sys ( ) const
inline

Get the system number of variable.

Returns
The system number of variable

Definition at line 636 of file KokkosDatum.h.

Referenced by Moose::Kokkos::VariableValueTempl< is_ad >::operator()(), and Moose::Kokkos::VariableGradientTempl< is_ad >::operator()().

636 { return _sys; }
const unsigned int _sys
System number.
Definition: KokkosDatum.h:686

◆ system()

KOKKOS_FUNCTION const FESystem& Moose::Kokkos::Datum::system ( unsigned int  sys) const
inlineinherited

Get the Kokkos system.

Parameters
sysThe system number
Returns
The Kokkos system

Definition at line 281 of file KokkosDatum.h.

Referenced by Moose::Kokkos::VariableValueTempl< is_ad >::get(), Moose::Kokkos::VariableGradientTempl< is_ad >::get(), Moose::Kokkos::VectorVariableValue::operator()(), Moose::Kokkos::VectorVariableGradient::operator()(), and Moose::Kokkos::VectorVariableCurl::operator()().

281 { return _systems[sys]; }
const Array< FESystem > & _systems
Reference of the Kokkos systems.
Definition: KokkosDatum.h:395

◆ var()

KOKKOS_FUNCTION unsigned int Moose::Kokkos::AssemblyDatum::var ( ) const
inline

Get the variable number.

Returns
The variable number

Definition at line 641 of file KokkosDatum.h.

641 { return _ivar; }
const unsigned int _ivar
Variable numbers.
Definition: KokkosDatum.h:690

Member Data Documentation

◆ _assembly

const Assembly& Moose::Kokkos::Datum::_assembly
protectedinherited

◆ _do_derivatives

bool Moose::Kokkos::AssemblyDatum::_do_derivatives = true
protected

Whether to compute derivatives for automatic differentiation (AD)

Definition at line 702 of file KokkosDatum.h.

Referenced by do_derivatives().

◆ _elem

const ElementInfo Moose::Kokkos::MeshDatum::_elem
protectedinherited

◆ _elem_property_idx

const dof_id_type Moose::Kokkos::Datum::_elem_property_idx = libMesh::DofObject::invalid_id
protectedinherited

Index for element-constant material properties.

Definition at line 415 of file KokkosDatum.h.

Referenced by Moose::Kokkos::Datum::propertyIdx().

◆ _ife

const unsigned int Moose::Kokkos::AssemblyDatum::_ife
protected

FE type IDs of variables.

Definition at line 694 of file KokkosDatum.h.

Referenced by fe(), and ife().

◆ _ivar

const unsigned int Moose::Kokkos::AssemblyDatum::_ivar
protected

Variable numbers.

Definition at line 690 of file KokkosDatum.h.

Referenced by ivar(), and var().

◆ _jfe

const unsigned int Moose::Kokkos::AssemblyDatum::_jfe
protected

Definition at line 694 of file KokkosDatum.h.

Referenced by jfe().

◆ _jvar

const unsigned int Moose::Kokkos::AssemblyDatum::_jvar
protected

Definition at line 690 of file KokkosDatum.h.

Referenced by jvar().

◆ _mesh

const Mesh& Moose::Kokkos::MeshDatum::_mesh
protectedinherited

◆ _n_idofs

const unsigned int Moose::Kokkos::AssemblyDatum::_n_idofs = 1
protected

Number of local DOFs.

Definition at line 698 of file KokkosDatum.h.

Referenced by n_dofs(), and n_idofs().

◆ _n_jdofs

const unsigned int Moose::Kokkos::AssemblyDatum::_n_jdofs = 1
protected

Definition at line 698 of file KokkosDatum.h.

Referenced by n_jdofs().

◆ _n_qps

const unsigned int Moose::Kokkos::Datum::_n_qps = 1
protectedinherited

Number of local quadrature points.

Definition at line 405 of file KokkosDatum.h.

Referenced by Moose::Kokkos::Datum::n_qps().

◆ _neighbor

const ElementInfo Moose::Kokkos::MeshDatum::_neighbor
protectedinherited

◆ _node

const ContiguousNodeID Moose::Kokkos::Datum::_node = libMesh::DofObject::invalid_id
protectedinherited

◆ _qp_offset

const dof_id_type Moose::Kokkos::Datum::_qp_offset = libMesh::DofObject::invalid_id
protectedinherited

Starting offset into the global quadrature point index.

Definition at line 410 of file KokkosDatum.h.

Referenced by Moose::Kokkos::Datum::propertyIdx(), and Moose::Kokkos::Datum::qpOffset().

◆ _side

const unsigned int Moose::Kokkos::MeshDatum::_side = libMesh::invalid_uint
protectedinherited

◆ _sys

const unsigned int Moose::Kokkos::AssemblyDatum::_sys
protected

System number.

Definition at line 686 of file KokkosDatum.h.

Referenced by sys().

◆ _systems

const Array<FESystem>& Moose::Kokkos::Datum::_systems
protectedinherited

Reference of the Kokkos systems.

Definition at line 395 of file KokkosDatum.h.

Referenced by Moose::Kokkos::Datum::isNodalDefined(), and Moose::Kokkos::Datum::system().

◆ _tag

const TagID Moose::Kokkos::AssemblyDatum::_tag
protected

Solution tag ID.

Definition at line 682 of file KokkosDatum.h.


The documentation for this class was generated from the following file: