20 #ifndef LIBMESH_FUNCTION_BASE_H 21 #define LIBMESH_FUNCTION_BASE_H 62 template <
typename Output=Number>
101 virtual std::unique_ptr<FunctionBase<Output>>
clone ()
const = 0;
110 const Real time = 0.) = 0;
193 template<
typename Output>
197 _initialized (false),
198 _is_time_dependent (true)
204 template <
typename Output>
208 return (this->_initialized);
211 template <
typename Output>
215 this->_is_time_dependent = is_time_dependent;
218 template <
typename Output>
222 return (this->_is_time_dependent);
226 template <
typename Output>
233 (*this)(p, time, outvec);
239 template <
typename Output>
245 this->operator()(p, 0., output);
250 #endif // LIBMESH_FUNCTION_BASE_H FunctionBase(const FunctionBase *master=nullptr)
virtual Output component(unsigned int i, const Point &p, Real time=0.)
const FunctionBase * _master
virtual Output operator()(const Point &p, const Real time=0.)=0
void set_is_time_dependent(bool is_time_dependent)
virtual ~FunctionBase()=default
bool is_time_dependent() const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual std::unique_ptr< FunctionBase< Output > > clone() const =0
Base class for functors that can be evaluated at a point and (optionally) time.
FunctionBase & operator=(const FunctionBase &)=default
A geometric point in (x,y,z) space.