99 template <
typename Derived>
101 KOKKOS_FUNCTION
void operator()(ResidualLoop,
const ThreadID tid,
const Derived & bc)
const;
102 template <
typename Derived>
103 KOKKOS_FUNCTION
void operator()(JacobianLoop,
const ThreadID tid,
const Derived & bc)
const;
104 template <
typename Derived>
116 template <
typename Derived>
128 Real local_re = bc.computeQpResidual(0, datum);
133 template <
typename Derived>
145 Real local_ke = bc.computeQpJacobian(0, datum);
151 template <
typename Derived>
164 Real local_ke = bc.computeQpOffDiagJacobian(jvar, 0, datum);
KOKKOS_FUNCTION Real computeQpOffDiagJacobian(const unsigned int, const unsigned int, ResidualDatum &) const
Compute off-diagonal Jacobian contribution on a node.
KOKKOS_FUNCTION unsigned int sys(unsigned int comp=0) const
Get the system number of a component.
KOKKOS_FUNCTION void operator()(ResidualLoop, const ThreadID tid, const Derived &bc) const
The parallel computation entry functions called by Kokkos.
KOKKOS_FUNCTION ContiguousNodeID kokkosBoundaryNodeID(ThreadID tid) const
Get the contiguous node ID this Kokkos thread is operating on.
NodalBC(const InputParameters ¶meters)
Constructor.
KOKKOS_FUNCTION const Assembly & kokkosAssembly() const
Get the const reference of the Kokkos assembly.
static InputParameters validParams()
const InputParameters & parameters() const
Get the parameters of the object.
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.
Thread _thread
Kokkos thread object.
static auto defaultJacobian()
Get the function pointer of the default computeQpJacobian()
virtual void computeResidual() override
Dispatch residual calculation.
KOKKOS_FUNCTION const System & kokkosSystem(unsigned int sys) const
Get the const reference of a Kokkos system.
The base class for Kokkos nodal boundary conditions.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const VariableValue _u
Current solution at nodes.
KOKKOS_FUNCTION Real computeQpJacobian(const unsigned int, ResidualDatum &) const
Default methods to prevent compile errors even when these methods were not defined in the derived cla...
Variable _kokkos_var
Kokkos variable.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
virtual void computeJacobian() override
Dispatch diagonal and off-diagonal Jacobian calculation.
The Kokkos wrapper classes for MOOSE-like variable value access.
static auto defaultOffDiagJacobian()
Get the function pointer of the default computeQpOffDiagJacobian()
KOKKOS_FUNCTION unsigned int var(unsigned int comp=0) const
Get the variable number of a component.
KOKKOS_FUNCTION const auto & getCoupling(unsigned int var) const
Get the list of off-diagonal coupled variable numbers of a variable.
The Kokkos object that holds thread-private data in the parallel operations of Kokkos residual 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.
The base class for a user to derive their own Kokkos nodal boundary conditions.
KOKKOS_FUNCTION const Array< System > & kokkosSystems() const
Get the const reference of the Kokkos systems.