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

#include <KokkosVariableValue.h>

Public Member Functions

 VariableGradient (Variable var)
 Constructor. More...
 
 VariableGradient (const MooseVariableBase &var, const TagName &tag=Moose::SOLUTION_TAG)
 Constructor. More...
 
KOKKOS_FUNCTION operator bool () const
 Get whether the variable was coupled. More...
 
KOKKOS_FUNCTION Real3 operator() (Datum &datum, unsigned int qp, unsigned int comp=0) const
 Get the current variable gradient. More...
 

Private Attributes

Variable _var
 Coupled Kokkos variable. More...
 

Detailed Description

Definition at line 229 of file KokkosVariableValue.h.

Constructor & Destructor Documentation

◆ VariableGradient() [1/2]

Moose::Kokkos::VariableGradient::VariableGradient ( Variable  var)
inline

Constructor.

Parameters
varThe Kokkos variable

Definition at line 236 of file KokkosVariableValue.h.

236 : _var(var) {}
Variable _var
Coupled Kokkos variable.

◆ VariableGradient() [2/2]

Moose::Kokkos::VariableGradient::VariableGradient ( const MooseVariableBase var,
const TagName &  tag = Moose::SOLUTION_TAG 
)
inline

Constructor.

Parameters
varThe MOOSE variable
tagThe vector tag name

Definition at line 242 of file KokkosVariableValue.h.

243  : _var(var, tag)
244  {
245  }
Variable _var
Coupled Kokkos variable.

Member Function Documentation

◆ operator bool()

KOKKOS_FUNCTION Moose::Kokkos::VariableGradient::operator bool ( ) const
inline

Get whether the variable was coupled.

Returns
Whether the variable was coupled

Definition at line 251 of file KokkosVariableValue.h.

251 { return _var.coupled(); }
KOKKOS_FUNCTION bool coupled() const
Get whether the variable is coupled.
Variable _var
Coupled Kokkos variable.

◆ operator()()

KOKKOS_FUNCTION Real3 Moose::Kokkos::VariableGradient::operator() ( Datum datum,
unsigned int  qp,
unsigned int  comp = 0 
) const
inline

Get the current variable gradient.

Parameters
datumThe Datum object of the current thread
qpThe local quadrature-point index
compThe variable component
Returns
The variable gradient

Definition at line 260 of file KokkosVariableValue.h.

261  {
262  if (_var.coupled())
263  {
264  auto & elem = datum.elem();
265  auto side = datum.side();
266  auto qp_offset = datum.qpOffset();
267 
268  return side == libMesh::invalid_uint
269  ? datum.system(_var.sys(comp))
270  .getVectorQpGrad(elem, qp_offset + qp, _var.var(comp), _var.tag())
271  : datum.system(_var.sys(comp))
272  .getVectorQpGradFace(
273  elem, side, datum.J(qp), qp, _var.var(comp), _var.tag());
274  }
275  else
276  return Real3(0);
277  }
KOKKOS_FUNCTION TagID tag() const
Get the vector tag ID.
KOKKOS_FUNCTION unsigned int sys(unsigned int comp=0) const
Get the system number of a component.
const unsigned int invalid_uint
KOKKOS_FUNCTION bool coupled() const
Get whether the variable is coupled.
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 d...
Definition: KokkosDatum.h:115
KOKKOS_FUNCTION unsigned int side() const
Get the side index.
Definition: KokkosDatum.h:90
KOKKOS_FUNCTION const ElementInfo & elem() const
Get the element information object.
Definition: KokkosDatum.h:80
Variable _var
Coupled Kokkos variable.
KOKKOS_FUNCTION unsigned int var(unsigned int comp=0) const
Get the variable number of a component.
KOKKOS_FUNCTION const System & system(unsigned int sys) const
Get the Kokkos system.
Definition: KokkosDatum.h:74
KOKKOS_FUNCTION dof_id_type qpOffset() const
Get the starting offset into the global quadrature point index.
Definition: KokkosDatum.h:100

Member Data Documentation

◆ _var

Variable Moose::Kokkos::VariableGradient::_var
private

Coupled Kokkos variable.

Definition at line 283 of file KokkosVariableValue.h.

Referenced by operator bool(), and operator()().


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