127 template <
typename T>
139 template <
typename T>
152 template <
typename T>
174 template <
typename T>
180 return getFunctorByName<T>(functor_name, subproblem, tid);
183 template <
typename T>
190 template <
typename T>
198 template <
typename T>
206 template <
typename T>
213 const auto *
const default_functor = defaultFunctor<T>(
name);
215 return *default_functor;
227 template <
typename T>
234 template <
typename T>
239 const auto & functor = getFunctor<T>(
name);
242 if (!functor.supportsElemSideQpArg())
243 mooseError(
"Quadrature point integration was requested, but the functor '",
245 "' does not support this.");
249 if (!functor.supportsFaceArg())
250 mooseError(
"Face info integration was requested, but the functor '",
252 "' does not support this.");
std::string name(const ElemQuality q)
An interface for accessing Moose::Functors.
std::vector< std::unique_ptr< Moose::Functor< ADReal > > > _default_ad_real_functors
Storage vector for Moose::Functor<ADReal> default objects.
const std::string _fi_name
The name of the object that this interface belongs to.
const Moose::Functor< T > & getFunctor(const std::string &name, const THREAD_ID tid, const std::string &requestor_name, bool requestor_is_ad)
virtual bool isADObject() const =0
Whether this interface is for an AD object.
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
This is a wrapper that forwards calls to the implementation, which can be switched out at any time wi...
static InputParameters validParams()
FunctorInterface(const MooseObject *moose_object)
const Moose::Functor< T > * defaultFunctor(const std::string &name)
Helper function to parse default functor values.
std::vector< std::unique_ptr< Moose::Functor< Real > > > _default_real_functors
Storage vector for Moose::Functor<Real> default objects.
Moose::ElemArg makeElemArg(const Elem *elem, bool correct_skewnewss=false) const
Helper method to create an elemental argument for a functor that includes whether to perform skewness...
Every object that can be built by the factory should be derived from this class.
A structure that is used to evaluate Moose functors logically at an element/cell center.
const Moose::Functor< T > & getFunctor(const std::string &name)
Retrieves a functor from the subproblem.
Generic class for solving transient nonlinear problems.
void checkFunctorSupportsSideIntegration(const std::string &name, bool qp_integration)
Throws error if the functor does not support the requested side integration.
SubProblem *const _fi_subproblem
Pointer to subproblem if the subproblem pointer parameter was set.
const Moose::Functor< T > & getFunctorByName(const std::string &name, SubProblem &subproblem, THREAD_ID tid)
Retrieves a functor from the passed-in subproblem.
const InputParameters & _fi_params
Parameters of the object with this interface.
const THREAD_ID _fi_tid
Current threaded it.
static std::string deduceFunctorName(const std::string &name, const InputParameters ¶ms)
Helper to look up a functor name through the input parameter keys.
bool isFunctor(const std::string &name) const
Checks the subproblem for the given functor.