17#include "libmesh/vector_value.h"
52 virtual Real
value(Real t,
const Point & p)
const;
67 auto value(
const U & t)
const;
69 auto value(
const U & t,
const U & x,
const U & y = 0,
const U & z = 0)
const;
79 virtual RealVectorValue
vectorValue(Real t,
const Point & p)
const;
88 virtual RealVectorValue
curl(Real t,
const Point & p)
const;
97 virtual Real
div(Real t,
const Point & p)
const;
107 virtual RealGradient
gradient(Real t,
const Point & p)
const;
118 template <
typename U>
120 template <
typename U>
121 auto timeDerivative(
const U & t,
const U & x,
const U & y = 0,
const U & z = 0)
const;
137 virtual Real
timeIntegral(Real t1, Real t2,
const Point & p)
const;
162 template <
typename R>
174 template <
typename R>
190 template <
typename R>
DualNumber< Real, DNDerivativeType, true > ADReal
DualNumber< Real, Real > ChainedReal
Base class for function objects.
virtual Real integral() const
Returns the integral of the function over its domain.
DotType evaluateDot(const ElemArg &elem, const Moose::StateArg &state) const override final
Evaluate the functor time derivative with a given element.
static InputParameters validParams()
Class constructor.
virtual RealGradient gradient(Real t, const Point &p) const
Function objects can optionally provide a gradient at a point.
virtual Real timeIntegral(Real t1, Real t2, const Point &p) const
Computes the time integral at a spatial point between two time values.
void residualSetup() override final
Gets called just before the residual is computed and before this object is asked to do its job.
void customSetup(const ExecFlagType &exec_type) override final
Gets called in FEProblemBase::execute() for execute flags other than initial, timestep_begin,...
virtual ~Function()
Function destructor.
DotType evaluateDotHelper(const R &r, const Moose::StateArg &state) const
ValueType evaluateHelper(const R &r, const Moose::StateArg &state) const
virtual RealVectorValue curl(Real t, const Point &p) const
Override this to evaluate the curl of the vector function at a point (t,x,y,z), by default this retur...
virtual Real value(Real t, const Point &p) const
Override this to evaluate the scalar function at point (t,x,y,z), by default this returns zero,...
ValueType evaluate(const ElemArg &elem, const Moose::StateArg &state) const override final
Evaluate the functor with a given element.
virtual Real timeDerivative(Real t, const Point &p) const
Get the time derivative of the function.
GradientType evaluateGradient(const ElemArg &elem, const Moose::StateArg &state) const override final
Evaluate the functor gradient with a given element.
GradientType evaluateGradientHelper(const R &r, const Moose::StateArg &state) const
bool supportsFaceArg() const override final
Whether this functor supports evaluation with FaceArg.
virtual Real div(Real t, const Point &p) const
Override this to evaluate the divergence of the vector function at a point (t,x,y,...
void timestepSetup() override
Gets called at the beginning of the timestep before this object is asked to do its job.
virtual Real average() const
Returns the average of the function over its domain.
virtual RealVectorValue vectorValue(Real t, const Point &p) const
Override this to evaluate the vector function at a point (t,x,y,z), by default this returns a zero ve...
bool supportsElemSideQpArg() const override final
Whether this functor supports evaluation with ElemSideQpArg.
bool hasBlocks(SubdomainID) const override
Returns whether the functor is defined on this block.
void jacobianSetup() override final
Gets called just before the Jacobian is computed and before this object is asked to do its job.
const InputParameters & parameters() const
Get the parameters of the object.
Class for containing MooseEnum item information.
Base class template for functor objects.
typename FunctorReturnType< T, FunctorEvaluationKind::Gradient >::type GradientType
This rigmarole makes it so that a user can create functors that return containers (std::vector,...
typename std::conditional< is_ad, typename ADType< T >::type, T >::type GenericType
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
A structure that is used to evaluate Moose functors logically at an element/cell center.
A structure that is used to evaluate Moose functors at an arbitrary physical point contained within a...
Argument for requesting functor evaluation at a quadrature point location in an element.
Argument for requesting functor evaluation at quadrature point locations on an element side.
A structure defining a "face" evaluation calling argument for Moose functors.
State argument for evaluating functors.