16#define usingFunctionInterfaceMembers \
17 using FunctionInterface::getFunction; \
18 using FunctionInterface::getFunctionByName
30#ifdef MOOSE_KOKKOS_ENABLED
51#ifdef MOOSE_KOKKOS_ENABLED
80 bool hasFunction(
const std::string & param_name)
const;
89#ifdef MOOSE_KOKKOS_SCOPE
114 template <
typename T>
124 template <
typename T>
144#ifdef MOOSE_KOKKOS_ENABLED
162#ifdef MOOSE_KOKKOS_SCOPE
167 return getKokkosFunctionByName<T>(
_fni_params.
get<FunctionName>(name));
178 "Kokkos function '", name,
"' is not of type '", MooseUtils::prettyCppType<T>(),
"'");
InputParameters validParams()
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Interface for objects that need to use functions.
bool hasKokkosFunction(const std::string ¶m_name) const
Determine if the Kokkos function exists.
const THREAD_ID _fni_tid
Thread ID.
bool hasKokkosFunctionByName(const FunctionName &name) const
Determine if the Kokkos function exists.
const Function & getFunctionByName(const FunctionName &name) const
Get a function with a given name.
const Function & getFunction(const std::string &name) const
Get a function with a given name.
const Moose::FunctionBase * getKokkosFunctionByNameHelper(const FunctionName &name) const
Helper function to retrieve a Kokkos function.
const InputParameters & _fni_params
Parameters of the object with this interface.
const MooseObject & _fni_object
Reference to the object.
static InputParameters validParams()
bool hasFunctionByName(const FunctionName &name) const
Determine if the function exists.
Moose::Kokkos::Function getKokkosFunctionByName(const FunctionName &name) const
Get a Kokkos function of an abstract type with a given name Calling this function will error out curr...
bool hasFunction(const std::string ¶m_name) const
Determine if the function exists.
FunctionInterface(const FunctionInterface &object, const Moose::Kokkos::FunctorCopy &key)
Special constructor used for Kokkos functor copy during parallel dispatch.
FEProblemBase & _fni_feproblem
Reference to FEProblemBase instance.
Moose::Kokkos::Function getKokkosFunction(const std::string &name) const
Get a Kokkos function of an abstract type with a given name Calling this function will error out curr...
Base class for function objects.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
Every object that can be built by the factory should be derived from this class.
The abstract class that provides polymorphic interfaces for a function.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...