67 template <
typename Derived>
81 template <
typename Derived>
87 "Default computeQpOffDiagJacobian() should never be called. Make sure you properly "
88 "redefined this method in your class without typos.");
100 template <
typename Derived>
103 return &NodalBC::computeQpJacobian<Derived>;
105 template <
typename Derived>
108 return &NodalBC::computeQpOffDiagJacobian<Derived>;
116 template <
typename Derived>
117 KOKKOS_FUNCTION
void operator()(ResidualLoop,
const ThreadID tid,
const Derived & bc)
const;
118 template <
typename Derived>
119 KOKKOS_FUNCTION
void operator()(JacobianLoop,
const ThreadID tid,
const Derived & bc)
const;
120 template <
typename Derived>
132template <
typename Derived>
144 Real local_re = bc.template computeQpResidual<Derived>(0, datum);
149template <
typename Derived>
161 Real local_ke = bc.template computeQpJacobian<Derived>(0, datum);
167template <
typename Derived>
180 Real local_ke = bc.template computeQpOffDiagJacobian<Derived>(jvar, 0, datum);
KOKKOS_FUNCTION ContiguousNodeID kokkosBoundaryNodeID(Moose::Kokkos::ThreadID tid) const
Get the contiguous node ID this Kokkos thread is operating on.
const InputParameters & parameters() const
Get the parameters of the object.
The Kokkos object that holds thread-private data in the parallel operations of Kokkos kernels.
KOKKOS_FUNCTION const Assembly & kokkosAssembly() const
Get the const reference of the Kokkos assembly.
The base class for Kokkos nodal boundary conditions.
The base class for a user to derive their own Kokkos nodal boundary conditions.
KOKKOS_FUNCTION Real computeQpOffDiagJacobian(const unsigned int, const unsigned int, AssemblyDatum &) const
Compute off-diagonal Jacobian contribution on a node.
KOKKOS_FUNCTION void operator()(ResidualLoop, const ThreadID tid, const Derived &bc) const
The parallel computation entry functions called by Kokkos.
const VariableValue _u
Current solution at nodes.
static auto defaultJacobian()
Functions used to check if users have overriden the hook methods, whose calculations can be skipped w...
NodalBC(const InputParameters ¶meters)
Constructor.
virtual void computeResidual() override
Dispatch residual calculation.
static InputParameters validParams()
KOKKOS_FUNCTION Real computeQpJacobian(const unsigned int, AssemblyDatum &) const
Default methods to prevent compile errors even when these methods were not defined in the derived cla...
virtual void computeJacobian() override
Dispatch diagonal and off-diagonal Jacobian calculation.
static auto defaultOffDiagJacobian()
Variable _kokkos_var
Kokkos variable.
Thread _thread
Kokkos thread object.
KOKKOS_FUNCTION void accumulateTaggedNodalMatrix(const bool add, const Real local_ke, const ContiguousNodeID node, const unsigned int jvar, const unsigned int comp=0) const
Accumulate or set local nodal Jacobian contribution to tagged matrices.
KOKKOS_FUNCTION void accumulateTaggedNodalResidual(const bool add, const Real local_re, const ContiguousNodeID node, const unsigned int comp=0) const
Accumulate or set local nodal residual contribution to tagged vectors.
The Kokkos wrapper classes for MOOSE-like variable value access.
KOKKOS_FUNCTION unsigned int var(unsigned int comp=0) const
Get the variable number of a component.
KOKKOS_FUNCTION unsigned int sys(unsigned int comp=0) const
Get the system number of a component.
MOOSE_KOKKOS_INDEX_TYPE ThreadID