25 #ifndef QUESO_FUNCTION_BASE_H
26 #define QUESO_FUNCTION_BASE_H
30 #include <queso/SharedPtr.h>
34 class FunctionOperatorBuilder;
66 virtual void scale(
double scale) = 0;
69 virtual void zero() = 0;
72 virtual double L2_norm()
const = 0;
83 virtual void save_function(
const std::string & filename,
double time)
const = 0;
88 #endif // QUESO_FUNCTION_BASE_H
std::shared_ptr< T > Type
virtual SharedPtr< FunctionBase >::Type zero_clone() const =0
Create a zero function copy of this and return pointer to it.
virtual void pointwise_mult(const FunctionBase &f1, const FunctionBase &f2)=0
Pointwise multiply f1 and f2 and store the result in *this.
virtual void add(double scale, const FunctionBase &rhs)=0
Execute this += scale * rhs.
virtual double L2_norm() const =0
Return the L2-norm of this.
virtual ~FunctionBase()
Destructor.
virtual void zero()=0
Set this to zero everywhere.
virtual void save_function(const std::string &filename, double time) const =0
Save the current function to an Exodus file called filename. time is the time to attach to the functi...
virtual void scale(double scale)=0
Execute this *= scale.
Abstract base class for function objects.
FunctionBase()
Constructor.