Device-side geometric context for finite volume kernels and boundary conditions. More...
#include <KokkosDatum.h>
Public Member Functions | |
| KOKKOS_FUNCTION | FVDatum (ContiguousElementID elem, const unsigned int side, const Mesh &mesh) |
| Constructor. More... | |
| KOKKOS_FUNCTION Real3 | faceCentroid () const |
| Get the centroid of the current element side. More... | |
| KOKKOS_FUNCTION Real3 | faceNormal () const |
| Get the outward unit normal of the current element side. More... | |
| KOKKOS_FUNCTION Real | faceDCNMag () const |
| Get the distance from the current element centroid to its neighbor centroid. More... | |
| KOKKOS_FUNCTION Real | faceDCFMag () const |
| Get the distance from the current element centroid to the current side centroid. More... | |
| KOKKOS_FUNCTION Real | faceArea () const |
| Get the coordinate-weighted area of the current element side. More... | |
| KOKKOS_FUNCTION Real3 | elementCentroid () const |
| Get the current element centroid. More... | |
| KOKKOS_FUNCTION Real | elementVolume () const |
| Get the coordinate-weighted current element volume. 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 bool | hasNeighbor () const |
| Get whether the current side has a neighbor. More... | |
| KOKKOS_FUNCTION const ElementInfo & | neighbor () 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 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... | |
Device-side geometric context for finite volume kernels and boundary conditions.
Definition at line 167 of file KokkosDatum.h.
|
inline |
Constructor.
| elem | The contiguous element ID |
| side | The element side index, or libMesh::invalid_uint for element-only data |
| mesh | The Kokkos mesh |
Definition at line 235 of file KokkosDatum.h.
|
inlineinherited |
Get the element information object.
Definition at line 46 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::MeshDatum::neighborInfo(), Moose::Kokkos::VariablePhiValue::operator()(), Moose::Kokkos::VariablePhiGradient::operator()(), Moose::Kokkos::VariableTestValue::operator()(), Moose::Kokkos::VariableTestGradient::operator()(), and Moose::Kokkos::AuxKernel::setElementSolution().
|
inline |
Get the current element centroid.
Definition at line 225 of file KokkosDatum.h.
Referenced by KokkosLinearFVSource::computeRightHandSideContribution().
|
inline |
Get the coordinate-weighted current element volume.
Definition at line 232 of file KokkosDatum.h.
Referenced by KokkosLinearFVSource::computeRightHandSideContribution().
|
inlineinherited |
Get the contiguous element ID.
Definition at line 52 of file KokkosDatum.h.
Referenced by KokkosExtraIDIntegralVectorPostprocessor::execute(), Moose::Kokkos::LinearFVFluxKernel::hasBoundaryData(), and KokkosExtraIDIntegralVectorPostprocessor::reduce().
|
inline |
Get the coordinate-weighted area of the current element side.
Definition at line 218 of file KokkosDatum.h.
Referenced by KokkosLinearFVAdvection::computeBoundaryMatrixContribution(), KokkosLinearFVDiffusion::computeBoundaryMatrixContribution(), KokkosLinearFVAdvection::computeBoundaryRightHandSideContribution(), KokkosLinearFVDiffusion::computeBoundaryRightHandSideContribution(), KokkosLinearFVAdvection::computeInternalMatrixContribution(), KokkosLinearFVAdvection::computeInternalNeighborMatrixContribution(), and KokkosLinearFVDiffusion::faceConductance().
|
inline |
Get the centroid of the current element side.
Definition at line 184 of file KokkosDatum.h.
Referenced by KokkosLinearFVFunctorNeumannBC::computeBoundaryNormalGradient(), KokkosLinearFVFunctorDirichletBC::computeBoundaryNormalGradient(), KokkosLinearFVFunctorNeumannBC::computeBoundaryValue(), KokkosLinearFVFunctorDirichletBC::computeBoundaryValue(), and KokkosLinearFVDiffusion::faceDiffusionCoefficient().
|
inline |
Get the distance from the current element centroid to the current side centroid.
Definition at line 208 of file KokkosDatum.h.
Referenced by KokkosLinearFVFunctorDirichletBC::computeBoundaryNormalGradient(), and KokkosLinearFVFunctorNeumannBC::computeBoundaryValue().
|
inline |
Get the distance from the current element centroid to its neighbor centroid.
Definition at line 198 of file KokkosDatum.h.
Referenced by KokkosLinearFVDiffusion::faceConductance().
|
inline |
Get the outward unit normal of the current element side.
Definition at line 191 of file KokkosDatum.h.
Referenced by KokkosLinearFVAdvection::normalFaceFlux().
|
inlineinherited |
Get whether the current side has a neighbor.
Definition at line 149 of file KokkosDatum.h.
Referenced by Moose::Kokkos::LinearFVFluxKernel::hasFaceNeighbor().
|
inlineinherited |
Get 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().
|
inlineinherited |
Get the Kokkos mesh.
Definition at line 40 of file KokkosDatum.h.
Referenced by Moose::Kokkos::MeshDatum::neighborInfo().
|
inlineinherited |
Get the neighbor element information object.
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().
|
inlineinherited |
Get the contiguous neighbor element ID.
libMesh::DofObject::invalid_id Definition at line 73 of file KokkosDatum.h.
Referenced by Moose::Kokkos::LinearFVFluxKernel::operator()().
|
inlinestaticprotectedinherited |
Get the neighbor element information object for an element side.
| elem | The contiguous element ID |
| side | The side index |
| mesh | The Kokkos mesh |
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.
|
inlineinherited |
Get the contiguous neighbor subdomain ID.
Definition at line 97 of file KokkosDatum.h.
Referenced by Moose::Kokkos::LinearFVFluxKernel::hasFaceNeighbor().
|
inlineinherited |
Get the side index.
Definition at line 79 of file KokkosDatum.h.
Referenced by Moose::Kokkos::VariableValueTempl< is_ad >::get(), Moose::Kokkos::VariableGradientTempl< is_ad >::get(), Moose::Kokkos::LinearFVFluxKernel::hasBoundaryData(), Moose::Kokkos::MeshDatum::neighborInfo(), Moose::Kokkos::VariablePhiValue::operator()(), Moose::Kokkos::VariablePhiGradient::operator()(), Moose::Kokkos::VariableTestValue::operator()(), and Moose::Kokkos::VariableTestGradient::operator()().
|
inlineinherited |
Get the contiguous subdomain ID.
Definition at line 91 of file KokkosDatum.h.
Referenced by KokkosExtraIDIntegralVectorPostprocessor::execute(), and KokkosExtraIDIntegralVectorPostprocessor::reduce().
|
protectedinherited |
Current element information object.
Definition at line 125 of file KokkosDatum.h.
Referenced by Moose::Kokkos::MeshDatum::elem(), elementCentroid(), elementVolume(), Moose::Kokkos::MeshDatum::elemID(), Moose::Kokkos::Datum::extraElemID(), faceArea(), faceCentroid(), faceDCFMag(), faceDCNMag(), faceNormal(), Moose::Kokkos::Datum::reinitTransform(), and Moose::Kokkos::MeshDatum::subdomain().
|
protectedinherited |
Reference to the Kokkos mesh.
Definition at line 120 of file KokkosDatum.h.
Referenced by elementCentroid(), elementVolume(), Moose::Kokkos::Datum::extraElemID(), faceArea(), faceCentroid(), faceDCFMag(), faceDCNMag(), faceNormal(), and Moose::Kokkos::MeshDatum::mesh().
|
protectedinherited |
Current neighbor element information object.
Definition at line 135 of file KokkosDatum.h.
Referenced by Moose::Kokkos::MeshDatum::hasNeighbor(), Moose::Kokkos::MeshDatum::neighbor(), Moose::Kokkos::MeshDatum::neighborID(), and Moose::Kokkos::MeshDatum::neighborSubdomain().
|
protectedinherited |
Current side index.
Definition at line 130 of file KokkosDatum.h.
Referenced by faceArea(), faceCentroid(), faceDCFMag(), faceDCNMag(), faceNormal(), Moose::Kokkos::MeshDatum::isSide(), Moose::Kokkos::Datum::reinitTransform(), and Moose::Kokkos::MeshDatum::side().
1.8.14