79 KOKKOS_FUNCTION
unsigned int side()
const {
return _side; }
114 const unsigned int side,
139 const unsigned int side,
142 _elem(elem !=
libMesh::DofObject::invalid_id ? _mesh.getElementInfo(elem) :
ElementInfo{}),
144 _neighbor(neighborInfo(_elem.id, _side, _mesh))
148 KOKKOS_FUNCTION
inline bool 236 const unsigned int side,
257 const unsigned int side,
318 const unsigned int qp)
const;
341 KOKKOS_FUNCTION
const Real33 &
J(
const unsigned int qp);
348 KOKKOS_FUNCTION
Real JxW(
const unsigned int qp);
449 const unsigned int side,
452 :
MeshDatum(elem, side, assembly.kokkosMesh()),
455 _n_qps(!isSide() ? assembly.getNumQps(_elem) : assembly.getNumFaceQps(_elem, side)),
456 _qp_offset(!isSide() ? assembly.getQpOffset(_elem) : assembly.getQpFaceOffset(_elem, side)),
457 _elem_property_idx(!isSide() ? _elem.id - _mesh.getStartingContiguousElementID(_elem.subdomain)
458 : assembly.getElemFacePropertyIndex(_elem, _side))
485 KOKKOS_FUNCTION
inline bool 494 KOKKOS_FUNCTION
inline const Real33 &
505 KOKKOS_FUNCTION
inline Real 516 KOKKOS_FUNCTION
inline Real3 527 KOKKOS_FUNCTION
inline Real3 538 KOKKOS_FUNCTION
inline void 574 const unsigned int side,
578 const unsigned int jvar,
579 const unsigned int comp = 0)
605 const unsigned int jvar,
606 const unsigned int comp = 0)
636 KOKKOS_FUNCTION
unsigned int sys()
const {
return _sys; }
641 KOKKOS_FUNCTION
unsigned int var()
const {
return _ivar; }
646 KOKKOS_FUNCTION
unsigned int ivar()
const {
return _ivar; }
651 KOKKOS_FUNCTION
unsigned int jvar()
const {
return _jvar; }
656 KOKKOS_FUNCTION
unsigned int fe()
const {
return _ife; }
661 KOKKOS_FUNCTION
unsigned int ife()
const {
return _ife; }
666 KOKKOS_FUNCTION
unsigned int jfe()
const {
return _jfe; }
unsigned int _local_thread_id
Thread ID for local parallelization.
const dof_id_type _elem_property_idx
Index for element-constant material properties.
unsigned int _num_local_threads
Number of threads for local parallelization.
const unsigned int _sys
System number.
KOKKOS_FUNCTION Real getElementVolume(ContiguousElementID elem) const
Get the coordinate-weighted volume of a local element.
The Kokkos assembly class.
KOKKOS_FUNCTION dof_id_type extraElemID(unsigned int index) const
Get the extra element ID.
KOKKOS_FUNCTION unsigned int sys(unsigned int comp=0) const
Get the system number of a component.
KOKKOS_FUNCTION bool isSide() const
Get whether the current datum is on a side.
The Kokkos object that contains the information of an element The IDs used in Kokkos are different fr...
The Kokkos object that holds thread-private data in the parallel operations of any Kokkos object...
Moose::Kokkos::AssemblyDatum AssemblyDatum
KOKKOS_FUNCTION void set_local_parallel(const unsigned int local_thread_id, const unsigned int num_local_threads)
Set local parallelization option.
KOKKOS_FUNCTION bool do_derivatives() const
Get whether to compute derivatives for automatic differentiation (AD)
KOKKOS_FUNCTION Real3 getElementCentroid(ContiguousElementID elem) const
Get the centroid of a local element.
const unsigned int invalid_uint
const unsigned int _n_jdofs
const Assembly & _assembly
Reference of the Kokkos assembly.
KOKKOS_INLINE_FUNCTION void identity(const unsigned int dim=3)
dof_id_type ContiguousElementID
KOKKOS_FUNCTION Real3 normals(const unsigned int qp)
Get the normal vector on surface.
KOKKOS_FUNCTION ContiguousSubdomainID subdomain() const
Get the contiguous subdomain ID.
KOKKOS_FUNCTION unsigned int num_local_threads() const
Get the number of local threads.
KOKKOS_FUNCTION ContiguousElementID elemID() const
Get the contiguous element ID.
Moose::Kokkos::Datum Datum
KOKKOS_FUNCTION unsigned int getDimension() const
Get the mesh dimension.
KOKKOS_FUNCTION void do_derivatives(const bool flag)
Set whether to compute derivatives for automatic differentiation (AD)
KOKKOS_FUNCTION Real3 getSideNormal(ContiguousElementID elem, unsigned int side) const
Get the outward unit normal of an element side.
KOKKOS_FUNCTION bool isNodalDefined(const Variable &var) const
Get whether the a variable is defined on the current node.
KOKKOS_FUNCTION unsigned int sys() const
Get the system number of variable.
KOKKOS_FUNCTION const FESystem & system(unsigned int sys) const
Get the Kokkos system.
KOKKOS_FUNCTION unsigned int jvar() const
Get the coupled variable number.
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...
static KOKKOS_FUNCTION ElementInfo neighborInfo(ContiguousElementID elem, const unsigned int side, const Mesh &mesh)
Get the neighbor element information object for an element side.
KOKKOS_FUNCTION Real3 q_point(const unsigned int qp)
Get the physical quadrature point coordinate.
const unsigned int _n_qps
Number of local quadrature points.
KOKKOS_FUNCTION Real3 faceNormal() const
Get the outward unit normal of the current element side.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
KOKKOS_FUNCTION unsigned int n_jdofs() const
Get the number of local DOFs for the coupled variable.
const ElementInfo _neighbor
Current neighbor element information object.
const Array< FESystem > & _systems
Reference of the Kokkos systems.
KOKKOS_FUNCTION unsigned int ivar() const
Get the variable number.
KOKKOS_FUNCTION bool hasNeighbor() const
Get whether the current side has a neighbor.
KOKKOS_FUNCTION Datum(const ContiguousElementID elem, const unsigned int side, const Assembly &assembly, const Array< FESystem > &systems)
Constructor for element and side data.
KOKKOS_FUNCTION unsigned int side() const
Get the side index.
KOKKOS_FUNCTION unsigned int fe() const
Get the variable FE type ID.
KOKKOS_FUNCTION unsigned int jfe() const
Get the coupled variable FE type ID.
PropertyConstantOption
Property constant options.
static constexpr dof_id_type invalid_id
dof_id_type ContiguousNodeID
KOKKOS_FUNCTION unsigned int n_idofs() const
Get the number of local DOFs.
const unsigned int _n_idofs
Number of local DOFs.
KOKKOS_FUNCTION unsigned int n_qps() const
Get the number of local quadrature points.
KOKKOS_FUNCTION Real getElementCentroidToSideCentroidDistance(ContiguousElementID elem, unsigned int side) const
Get the element-centroid to side-centroid distance for an element side.
KOKKOS_FUNCTION Real faceDCNMag() const
Get the distance from the current element centroid to its neighbor centroid.
KOKKOS_FUNCTION ContiguousElementID getNeighbor(ContiguousElementID elem, unsigned int side) const
Get the neighbor contiguous element ID.
KOKKOS_FUNCTION unsigned int local_thread_id() const
Get the current local thread ID.
const unsigned int _side
Current side index.
The Kokkos FE system class.
KOKKOS_FUNCTION const Assembly & assembly() const
Get the Kokkos assembly.
Moose::Kokkos::FVDatum FVDatum
const TagID _tag
Solution tag ID.
KOKKOS_FUNCTION const auto & getElementInfo(ContiguousElementID elem) const
Get the element information object.
KOKKOS_FUNCTION dof_id_type getExtraElementID(ContiguousElementID elem, unsigned int index) const
Get the extra element ID of an element.
KOKKOS_FUNCTION Real3 getSideCentroid(ContiguousElementID elem, unsigned int side) const
Get the centroid of an element side.
KOKKOS_FUNCTION bool nodal() const
Get whether the variable is nodal.
KOKKOS_FUNCTION void reinitTransform(const unsigned int qp)
Compute and cache the physical transformation data.
KOKKOS_FUNCTION Real3 elementCentroid() const
Get the current element centroid.
KOKKOS_FUNCTION unsigned int var() const
Get the variable number.
KOKKOS_FUNCTION Real3 getNodePoint(ContiguousNodeID node) const
Get the coordinate of a node.
KOKKOS_FUNCTION Real getJxW(ElementInfo info, unsigned int qp) const
Get the transformed Jacobian weight of an element quadrature point.
bool _do_derivatives
Whether to compute derivatives for automatic differentiation (AD)
KOKKOS_FUNCTION const Mesh & kokkosMesh() const
Get the const reference of the Kokkos mesh.
KOKKOS_FUNCTION Real faceDCFMag() const
Get the distance from the current element centroid to the current side centroid.
ContiguousSubdomainID subdomain
Contiguous subdomain ID.
KOKKOS_FUNCTION ContiguousNodeID node() const
Get the contiguous node ID.
KOKKOS_FUNCTION FVDatum(ContiguousElementID elem, const unsigned int side, const Mesh &mesh)
Constructor.
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.
KOKKOS_FUNCTION dof_id_type propertyIdx(const PropertyConstantOption constant_option, const unsigned int qp) const
Get the index into the property data storage.
KOKKOS_FUNCTION Real getSideArea(ContiguousElementID elem, unsigned int side) const
Get the coordinate-weighted area of an element side.
const dof_id_type _qp_offset
Starting offset into the global quadrature point index.
KOKKOS_FUNCTION ContiguousSubdomainID neighborSubdomain() const
Get the contiguous neighbor subdomain ID.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
KOKKOS_FUNCTION bool isNodal() const
Get whether the current datum is on a node.
The Kokkos variable object that carries the coupled variable and tag information. ...
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.
KOKKOS_FUNCTION unsigned int ife() const
Get the variable FE type ID.
const ElementInfo _elem
Current element information object.
The Kokkos object that holds thread-private data in the parallel operations of Kokkos kernels...
KOKKOS_FUNCTION Real JxW(const unsigned int qp)
Get the transformed Jacobian weight.
Device-side geometric context for finite volume kernels and boundary conditions.
unsigned int _cached_qp
Cached quadrature point index for checking whether the physical transformation data should be recompu...
KOKKOS_FUNCTION const ElementInfo & elem() const
Get the element information object.
KOKKOS_FUNCTION unsigned int var(unsigned int comp=0) const
Get the variable number of a component.
KOKKOS_FUNCTION const Mesh & mesh() const
Get the Kokkos mesh.
Generic datum class containing geometric information related to the mesh.
KOKKOS_FUNCTION unsigned int n_dofs() const
Get the number of local DOFs.
KOKKOS_FUNCTION Real getElementCentroidToNeighborCentroidDistance(ContiguousElementID elem, unsigned int side) const
Get the element-centroid to neighbor-centroid distance for an element side with a neighbor...
KOKKOS_FUNCTION const ElementInfo & neighbor() const
Get the neighbor element information object.
KOKKOS_FUNCTION dof_id_type qpOffset() const
Get the starting offset into the global quadrature point index.
KOKKOS_FUNCTION Real faceArea() const
Get the coordinate-weighted area of the current element side.
KOKKOS_FUNCTION Real elementVolume() const
Get the coordinate-weighted current element volume.
const Mesh & _mesh
Reference to the Kokkos mesh.
const ContiguousNodeID _node
Current contiguous node ID.
const unsigned int _ivar
Variable numbers.
ContiguousElementID id
Contiguous element ID.
KOKKOS_FUNCTION Real33 getJacobian(ElementInfo info, unsigned int qp) const
Get the inverse of Jacobian matrix of an element quadrature point.
const unsigned int _ife
FE type IDs of variables.
KOKKOS_FUNCTION Real3 faceCentroid() const
Get the centroid of the current element side.
KOKKOS_FUNCTION ContiguousElementID neighborID() const
Get the contiguous neighbor element ID.
Real33 _J
Cached physical transformation data.
KOKKOS_FUNCTION void computePhysicalMap(const ElementInfo info, const unsigned int qp, Real33 *const jacobian, Real *const JxW, Real3 *const q_points) const
Compute physical transformation data for an element.
KOKKOS_FUNCTION Real3 getQPoint(ElementInfo info, unsigned int qp) const
Get the coordinate of an element quadrature point.
KOKKOS_FUNCTION MeshDatum(ContiguousElementID elem, const unsigned int side, const Mesh &mesh)
Constructor.