65 template <
typename Derived>
70 ::Kokkos::abort(
"Default computeQpJacobian() should never be called. Make sure you properly " 71 "redefined this method in your class without typos.");
85 template <
typename Derived>
92 "Default computeQpOffDiagJacobian() should never be called. Make sure you properly " 93 "redefined this method in your class without typos.");
104 template <
typename Derived>
108 return &KernelGrad::computeQpJacobian<Derived>;
110 template <
typename Derived>
113 return &KernelGrad::computeQpOffDiagJacobian<Derived>;
121 template <
typename Derived>
124 template <
typename Derived>
126 template <
typename Derived>
132 template <
typename Derived>
138 [&](
Real * local_re,
const unsigned int ib,
const unsigned int ie)
140 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
142 Real3 value = datum.
JxW(qp) * kernel.template computeQpResidual<Derived>(qp, datum);
144 for (
unsigned int i = ib; i < ie; ++i)
150 template <
typename Derived>
156 [&](
Real * local_ke,
const unsigned int ib,
const unsigned int ie,
const unsigned int j)
158 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
160 Real3 value = datum.
JxW(qp) * kernel.template computeQpJacobian<Derived>(j, qp, datum);
162 for (
unsigned int i = ib; i < ie; ++i)
168 template <
typename Derived>
174 [&](
Real * local_ke,
const unsigned int ib,
const unsigned int ie,
const unsigned int j)
176 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
178 Real3 value = datum.
JxW(qp) * kernel.template computeQpOffDiagJacobian<Derived>(
179 j, datum.
jvar(), qp, datum);
181 for (
unsigned int i = ib; i < ie; ++i)
KOKKOS_FUNCTION void computeJacobianInternal(AssemblyDatum &datum, function body) const
The common loop structure template for computing elemental Jacobian.
KOKKOS_FUNCTION void computeJacobianInternal(const Derived &kernel, AssemblyDatum &datum) const
const InputParameters & parameters() const
Get the parameters of the object.
KOKKOS_FUNCTION unsigned int jvar() const
Get the coupled variable number.
static auto defaultOffDiagJacobian()
KOKKOS_FUNCTION void computeOffDiagJacobianInternal(const Derived &kernel, AssemblyDatum &datum) const
KernelGrad(const InputParameters ¶meters)
Constructor.
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 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...
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.
static auto defaultJacobian()
Functions used to check if users have overriden the hook methods, whose calculations can be skipped w...
The base class for a user to derive their own Kokkos kernels.
KOKKOS_FUNCTION Real3 computeQpOffDiagJacobian(const unsigned int, const unsigned int, const unsigned int, AssemblyDatum &) const
Compute off-diagonal Jacobian contribution on a quadrature point.
The base class for a user to derive their own Kokkos kernels where the residual is of the form...
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(AssemblyDatum &datum, function body) const
The common loop structure template for computing elemental residual.