38 template <
typename Derived>
44 ::Kokkos::abort(
"Default precomputeQpJacobian() should never be called. Make sure you properly " 45 "redefined this method in your class without typos.");
49 template <
typename Derived>
56 "Default precomputeQpOffDiagJacobian() should never be called. Make sure you properly " 57 "redefined this method in your class without typos.");
67 template <
typename Derived>
71 return &VectorIntegratedBCValue::precomputeQpJacobian<Derived>;
73 template <
typename Derived>
76 return &VectorIntegratedBCValue::precomputeQpOffDiagJacobian<Derived>;
83 template <
typename Derived>
86 template <
typename Derived>
88 template <
typename Derived>
94 template <
typename Derived>
100 [&](
Real * local_re,
const unsigned int ib,
const unsigned int ie)
102 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
104 Real3 value = datum.
JxW(qp) * bc.template precomputeQpResidual<Derived>(qp, datum);
106 for (
unsigned int i = ib; i < ie; ++i)
112 template <
typename Derived>
118 [&](
Real * local_ke,
const unsigned int ib,
const unsigned int ie,
const unsigned int j)
120 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
122 Real3 value = datum.
JxW(qp) * bc.template precomputeQpJacobian<Derived>(j, qp, datum);
124 for (
unsigned int i = ib; i < ie; ++i)
130 template <
typename Derived>
137 [&](
Real * local_ke,
const unsigned int ib,
const unsigned int ie,
const unsigned int j)
139 for (
unsigned int qp = 0; qp < datum.
n_qps(); ++qp)
141 Real3 value = datum.
JxW(qp) * bc.template precomputeQpOffDiagJacobian<Derived>(
142 j, datum.
jvar(), qp, datum);
144 for (
unsigned int i = ib; i < ie; ++i)
KOKKOS_FUNCTION void computeJacobianInternal(const Derived &bc, AssemblyDatum &datum) const
KOKKOS_FUNCTION void computeJacobianInternal(AssemblyDatum &datum, function body) const
The common loop structure template for computing elemental Jacobian.
static constexpr bool use_precompute_hooks
VectorIntegratedBCValue hooks factor out the test function.
const InputParameters & parameters() const
Get the parameters of the object.
VectorIntegratedBCValue(const InputParameters ¶meters)
Constructor.
KOKKOS_FUNCTION Real3 precomputeQpJacobian(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 &bc, AssemblyDatum &datum) const
Optimized computation bodies that factor out the vector test function.
KOKKOS_FUNCTION unsigned int jvar() const
Get the coupled variable number.
The base class for Kokkos integrated boundary conditions on vector variables where the residual is of...
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
KOKKOS_FUNCTION Real3 precomputeQpOffDiagJacobian(const unsigned int, const unsigned int, const unsigned int, AssemblyDatum &) const
KOKKOS_FUNCTION unsigned int n_qps() const
Get the number of local quadrature points.
static auto defaultOffDiagJacobian()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
The base class for a user to derive their own Kokkos integrated boundary conditions on vector variabl...
static auto defaultJacobian()
Functions used to check if users have overriden the hook methods, whose calculations can be skipped w...
KOKKOS_FUNCTION void computeOffDiagJacobianInternal(const Derived &bc, AssemblyDatum &datum) const
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.
const VectorVariableTestValue _test
Current vector test function.