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 &IntegratedBCValue::computeQpJacobian<Derived>;
110 template <
typename Derived>
113 return &IntegratedBCValue::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 Real value = datum.
JxW(qp) * bc.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 Real value = datum.
JxW(qp) * bc.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)
179 bc.template computeQpOffDiagJacobian<Derived>(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.
static auto defaultOffDiagJacobian()
KOKKOS_FUNCTION Real 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...
The base class for a user to derive their own Kokkos integrated boundary conditions.
const InputParameters & parameters() const
Get the parameters of the object.
The base class for a user to derive their own Kokkos integrated boundary conditions where the residua...
KOKKOS_FUNCTION unsigned int jvar() const
Get the coupled variable number.
KOKKOS_FUNCTION void computeResidualInternal(const Derived &bc, AssemblyDatum &datum) const
The parallel computation bodies that hide the base class methods to optimize for factoring out the te...
KOKKOS_FUNCTION void computeJacobianInternal(const Derived &bc, AssemblyDatum &datum) const
IntegratedBCValue(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 computeOffDiagJacobianInternal(const Derived &bc, AssemblyDatum &datum) const
const VariableTestValue _test
Current test function.
static InputParameters validParams()
static auto defaultJacobian()
Functions used to check if users have overriden the hook methods, whose calculations can be skipped w...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
KOKKOS_FUNCTION Real computeQpOffDiagJacobian(const unsigned int, const unsigned int, const unsigned int, AssemblyDatum &) const
Compute off-diagonal Jacobian contribution on a quadrature point.
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.
KOKKOS_FUNCTION void computeResidualInternal(AssemblyDatum &datum, function body) const
The common loop structure template for computing elemental residual.