25 #include <queso/Defines.h>
27 #ifdef QUESO_HAVE_LIBMESH_SLEPC
29 #ifndef QUESO_LIBMESHFUNCTION_H
30 #define QUESO_LIBMESHFUNCTION_H
33 #include <queso/FunctionBase.h>
34 #include <queso/SharedPtr.h>
38 class EquationSystems;
43 class FunctionOperatorBuilder;
67 libMesh::MeshBase & m);
77 virtual void save_function(
const std::string & filename,
double time)
const;
87 virtual void scale(
double scale);
114 #endif // QUESO_LIBMESHFUNCTION_H
116 #endif // QUESO_HAVE_LIBMESH_SLEPC
std::shared_ptr< T > Type
virtual double L2_norm() const
Return the L2-norm of this.
SharedPtr< libMesh::EquationSystems >::Type equation_systems
const FunctionOperatorBuilder & builder
virtual SharedPtr< FunctionBase >::Type zero_clone() const
Create a zero function copy of this and return pointer to it.
virtual SharedPtr< libMesh::EquationSystems >::Type get_equation_systems() const
Return the internal libmesh equation systems object.
void print_info() const
Will print mesh-related libMesh foo to std::cerr.
~LibMeshFunction()
Destructor.
virtual void zero()
Set this to zero everywhere.
virtual void pointwise_mult(const FunctionBase &f1, const FunctionBase &f2)
Pointwise multiply f1 and f2 and store the result in *this.
virtual void save_function(const std::string &filename, double time) const
Save the current function to an Exodus file called filename. time is the time to attach to the functi...
Function objects using libMesh for the backend.
virtual void scale(double scale)
Execute this *= scale.
virtual void add(double scale, const FunctionBase &rhs)
Execute this += scale * rhs.
LibMeshFunction(const FunctionOperatorBuilder &builder, libMesh::MeshBase &m)
Construct a function with a user-provided mesh m and builder.
Abstract base class for function objects.