21 template <
typename Derived>
24 template <
typename Derived>
27 template <
typename Derived>
35template <
typename Derived>
42 Real local_ke[MAX_CACHED_DOF];
47 unsigned int num_batches = datum.
n_idofs() / MAX_CACHED_DOF;
49 if (datum.
n_idofs() % MAX_CACHED_DOF)
52 for (
unsigned int batch = 0; batch < num_batches; ++batch)
54 unsigned int ib = batch * MAX_CACHED_DOF;
55 unsigned int ie = ::Kokkos::min(ib + MAX_CACHED_DOF, datum.
n_idofs());
57 for (
unsigned int i = ib; i < ie; ++i)
60 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
63 datum.
JxW(qp) * kernel.template precomputeQpJacobian<Derived>(j, qp, datum);
65 for (
unsigned int i = ib; i < ie; ++i)
66 local_ke[i - ib] += value *
_test(datum, i, qp);
69 for (
unsigned int i = ib; i < ie; ++i)
76template <
typename Derived>
83template <
typename Derived>
86 const unsigned int qp,
KOKKOS_FUNCTION void computeJacobianInternal(const Derived &kernel, AssemblyDatum &datum) const
static InputParameters validParams()
KOKKOS_FUNCTION Moose::Kokkos::Real3 precomputeQpResidual(const unsigned int qp, AssemblyDatum &datum) const
KokkosVectorTimeDerivative(const InputParameters ¶meters)
KOKKOS_FUNCTION Moose::Kokkos::Real3 precomputeQpJacobian(const unsigned int j, const unsigned int qp, AssemblyDatum &datum) const
const InputParameters & parameters() const
Get the parameters of the object.
The Kokkos object that holds thread-private data in the parallel operations of Kokkos kernels.
KOKKOS_FUNCTION unsigned int jvar() const
Get the coupled variable number.
KOKKOS_FUNCTION unsigned int n_idofs() const
Get the number of local DOFs.
KOKKOS_FUNCTION unsigned int n_jdofs() const
Get the number of local DOFs for the coupled variable.
KOKKOS_FUNCTION unsigned int num_local_threads() const
Get the number of local threads.
KOKKOS_FUNCTION Real JxW(const unsigned int qp)
Get the transformed Jacobian weight.
KOKKOS_FUNCTION unsigned int local_thread_id() const
Get the current local thread ID.
KOKKOS_FUNCTION unsigned int n_qps() const
Get the number of local quadrature points.
KOKKOS_FUNCTION const ElementInfo & elem() const
Get the element information object.
KOKKOS_FUNCTION void accumulateTaggedElementalMatrix(const Real local_ke, const ContiguousElementID elem, const unsigned int i, const unsigned int j, const unsigned int jvar, const unsigned int comp=0) const
Accumulate local elemental Jacobian contribution to tagged matrices.
const VectorVariableTestValue _test
Current vector test function.
const VectorVariablePhiValue _phi
Current vector shape function.
The base class for Kokkos vector time kernels whose test function can be factored out.
const Scalar< const Real > _du_dot_du
Derivative of u_dot with respect to u.
const VectorVariableValue _u_dot
Time derivative of the current solution at quadrature points.
constexpr unsigned int MAX_CACHED_DOF
Maximum number of DOFs to cache during residual and Jacobian computation.
ContiguousElementID id
Contiguous element ID.