21 template <
typename Derived>
24 template <
typename Derived>
26 template <
typename Derived>
28 const unsigned int qp,
35template <
typename Derived>
41 Real local_ke[MAX_CACHED_DOF];
46 unsigned int num_batches = datum.
n_idofs() / MAX_CACHED_DOF;
48 if (datum.
n_idofs() % MAX_CACHED_DOF)
51 for (
unsigned int batch = 0; batch < num_batches; ++batch)
53 unsigned int ib = batch * MAX_CACHED_DOF;
54 unsigned int ie = ::Kokkos::min(ib + MAX_CACHED_DOF, datum.
n_idofs());
56 for (
unsigned int i = ib; i < ie; ++i)
59 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
61 Real value = datum.
JxW(qp) * kernel.template precomputeQpJacobian<Derived>(j, qp, datum);
63 for (
unsigned int i = ib; i < ie; ++i)
64 local_ke[i - ib] += value *
_test(datum, i, qp);
67 for (
unsigned int i = ib; i < ie; ++i)
74template <
typename Derived>
81template <
typename Derived>
84 const unsigned int qp,
KokkosTimeDerivative(const InputParameters ¶meters)
KOKKOS_FUNCTION Real precomputeQpJacobian(const unsigned int j, const unsigned int qp, AssemblyDatum &datum) const
KOKKOS_FUNCTION void computeJacobianInternal(const Derived &kernel, AssemblyDatum &datum) const
static InputParameters validParams()
KOKKOS_FUNCTION Real precomputeQpResidual(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.
const VariableTestValue _test
Current test function.
const VariablePhiValue _phi
Current shape function.
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.
The base class for Kokkos time kernels whose test function can be factored out.
const VariableValue _u_dot
Time derivative of the current solution at quadrature points.
const Scalar< const Real > _du_dot_du
Derivative of u_dot with respect to u.
constexpr unsigned int MAX_CACHED_DOF
Maximum number of DOFs to cache during residual and Jacobian computation.
ContiguousElementID id
Contiguous element ID.