81 template <
typename Derived>
84 template <
typename Derived>
89 template <
typename Derived>
95 [&](
Real * local_re,
const unsigned int ib,
const unsigned int ie)
97 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
101 Real3 value = datum.
JxW(qp) * kernel.computeQpResidual(qp, datum);
103 for (
unsigned int i = ib; i < ie; ++i)
109 template <
typename Derived>
117 [&](
Real * local_ke,
const unsigned int ijb,
const unsigned int ije)
119 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
125 for (
unsigned int ij = ijb; ij < ije; ++ij)
127 unsigned int i = ij % datum.
n_jdofs();
128 unsigned int j = ij / datum.
n_jdofs();
132 value = datum.
JxW(qp) * kernel.computeQpJacobian(j, qp, datum);
KOKKOS_FUNCTION unsigned int n_jdofs() const
Get the number of local DOFs for the coupled variable.
const unsigned int invalid_uint
KOKKOS_FUNCTION void computeJacobianInternal(ResidualDatum &datum, function body) const
The common loop structure template for computing elemental Jacobian.
const InputParameters & parameters() const
Get the parameters of the object.
KOKKOS_FUNCTION void computeResidualInternal(const Derived &kernel, ResidualDatum &datum) const
The parallel computation bodies that hide the base class methods to optimize for factoring out the gr...
KernelGrad(const InputParameters ¶meters)
Constructor.
static auto defaultJacobian()
Get the function pointer of the default computeQpJacobian()
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
KOKKOS_FUNCTION unsigned int n_qps() const
Get the number of local quadrature points.
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const VariableTestGradient _grad_test
Gradient of the current test function.
KOKKOS_FUNCTION void computeResidualInternal(ResidualDatum &datum, function body) const
The common loop structure template for computing elemental residual.
KOKKOS_FUNCTION Real3 computeQpJacobian(const unsigned int, const unsigned int, ResidualDatum &) const
Default methods to prevent compile errors even when these methods were not defined in the derived cla...
KOKKOS_FUNCTION Real JxW(const unsigned int qp)
Get the transformed Jacobian weight.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
The base class for a user to derive their own Kokkos kernels.
The base class for a user to derive their own Kokkos kernels where the residual is of the form...
The Kokkos object that holds thread-private data in the parallel operations of Kokkos residual object...
KOKKOS_FUNCTION void reinit()
Reset the reinit flag.
KOKKOS_FUNCTION void computeJacobianInternal(const Derived &kernel, ResidualDatum &datum) const