37 template <
typename Derived>
46 template <
typename Derived>
50 template <
typename Derived>
54 const Derived & kernel)
const 59 const auto & sys = kokkosSystem(
_var.
sys());
60 kernel.template accumulateTaggedVector<AccumulationMode::NonAtomic>(
61 kernel.template computeRightHandSideContribution<Derived>(datum),
62 sys.getElemLocalDofIndex(elem, 0,
_var.
var()));
65 template <
typename Derived>
72 const auto & sys = kokkosSystem(
_var.
sys());
73 const auto var_num =
_var.
var();
74 const auto row = sys.getElemLocalDofIndex(elem, 0, var_num);
75 kernel.template accumulateTaggedMatrix<AccumulationMode::NonAtomic>(
76 kernel.template computeMatrixContribution<Derived>(datum),
78 sys.getElemGlobalDofIndex(elem, 0, var_num));
KOKKOS_FUNCTION unsigned int sys(unsigned int comp=0) const
Get the system number of a component.
LinearFVElementalKernel(const InputParameters ¶meters)
const unsigned int invalid_uint
static InputParameters validParams()
const InputParameters & parameters() const
Get the parameters of the object.
Tag dispatch type for the matrix computation loop.
Tag dispatch type for the right-hand side computation loop.
KOKKOS_FUNCTION unsigned int components() const
Get the number of components.
MOOSE_KOKKOS_INDEX_TYPE ThreadID
Base class for Kokkos linear finite volume kernels that contribute to the linear system.
Variable _var
Kokkos variable.
KOKKOS_FUNCTION void operator()(RightHandSideLoop, const ThreadID tid, const Derived &kernel) const
Right-hand side dispatch loop body; accumulates the elemental RHS contribution.
KOKKOS_FUNCTION ContiguousElementID kokkosBlockElementID(Moose::Kokkos::ThreadID tid) const
Get the contiguous element ID this Kokkos thread is operating on.
KOKKOS_FUNCTION const Mesh & kokkosMesh() const
Get the const reference of the Kokkos mesh.
Device-side geometric context for finite volume kernels and boundary conditions.
virtual void computeMatrix() override
Compute the matrix contributions of this object.
Base class for Kokkos linear finite volume kernels that contribute on elements (volumetric terms) ...
KOKKOS_FUNCTION unsigned int var(unsigned int comp=0) const
Get the variable number of a component.
virtual void computeRightHandSide() override
Compute the right-hand side contributions of this object.