80 template <
typename Derived>
83 const unsigned int qp,
86 return kernel.computeQpResidual(qp, datum);
88 template <
typename Derived>
91 const unsigned int qp,
94 return kernel.computeQpJacobian(j, qp, datum);
102 template <
typename Derived>
105 template <
typename Derived>
110 template <
typename Derived>
116 [&](
Real * local_re,
const unsigned int ib,
const unsigned int ie)
118 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
122 Real3 value = datum.
JxW(qp) * kernel.computeQpResidualShim(kernel, qp, datum);
124 for (
unsigned int i = ib; i < ie; ++i)
130 template <
typename Derived>
138 [&](
Real * local_ke,
const unsigned int ijb,
const unsigned int ije)
140 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
146 for (
unsigned int ij = ijb; ij < ije; ++ij)
148 unsigned int i = ij % datum.
n_jdofs();
149 unsigned int j = ij / datum.
n_jdofs();
153 value = datum.
JxW(qp) * kernel.computeQpJacobianShim(kernel, j, qp, datum);
KOKKOS_FUNCTION void computeJacobianInternal(AssemblyDatum &datum, function body) const
The common loop structure template for computing elemental Jacobian.
const unsigned int invalid_uint
KOKKOS_FUNCTION void computeJacobianInternal(const Derived &kernel, AssemblyDatum &datum) const
const InputParameters & parameters() const
Get the parameters of the object.
KOKKOS_FUNCTION unsigned int n_jdofs() const
Get the number of local DOFs for the coupled variable.
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.
KOKKOS_FUNCTION Real3 computeQpJacobian(const unsigned int, const unsigned int, AssemblyDatum &) const
Default methods to prevent compile errors even when these methods were not defined in the derived cla...
KOKKOS_FUNCTION void computeResidualInternal(const Derived &kernel, AssemblyDatum &datum) const
The parallel computation bodies that hide the base class methods to optimize for factoring out the gr...
KOKKOS_FUNCTION Real3 computeQpResidualShim(const Derived &kernel, const unsigned int qp, AssemblyDatum &datum) const
Shims for hook methods that can be leveraged to implement static polymorphism.
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const VariableTestGradient _grad_test
Gradient of the current test function.
The Kokkos object that holds thread-private data in the parallel operations of Kokkos kernels...
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.
KOKKOS_FUNCTION Real3 computeQpJacobianShim(const Derived &kernel, const unsigned int j, const unsigned int qp, AssemblyDatum &datum) const
The base class for a user to derive their own Kokkos kernels where the residual is of the form...
KOKKOS_FUNCTION void computeResidualInternal(AssemblyDatum &datum, function body) const
The common loop structure template for computing elemental residual.
KOKKOS_FUNCTION void reinit()
Reset the reinit flag.