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];
43 const auto scaling_factor =
49 unsigned int num_batches = datum.
n_idofs() / MAX_CACHED_DOF;
51 if (datum.
n_idofs() % MAX_CACHED_DOF)
54 for (
unsigned int batch = 0; batch < num_batches; ++batch)
56 unsigned int ib = batch * MAX_CACHED_DOF;
57 unsigned int ie = ::Kokkos::min(ib + MAX_CACHED_DOF, datum.
n_idofs());
59 for (
unsigned int i = ib; i < ie; ++i)
62 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
64 Real value = datum.
JxW(qp) * kernel.template precomputeQpJacobian<Derived>(j, qp, datum);
66 for (
unsigned int i = ib; i < ie; ++i)
67 local_ke[i - ib] += value *
_test(datum, i, qp);
70 for (
unsigned int i = ib; i < ie; ++i)
81template <
typename Derived>
88template <
typename Derived>
91 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 comp() const
Get the variable component.
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.
Variable _kokkos_var
Kokkos variable.
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) 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.
Array< Real > _du_dot_du
Derivative of u_dot with respect to u.
KOKKOS_FUNCTION unsigned int var(unsigned int comp=0) const
Get the variable number of a component.
KOKKOS_FUNCTION unsigned int sys(unsigned int comp=0) const
Get the system number of a component.
constexpr unsigned int MAX_CACHED_DOF
Maximum number of DOFs to cache during residual and Jacobian computation.
ContiguousElementID id
Contiguous element ID.