25 #include <queso/Defines.h>
27 #ifdef QUESO_HAVE_LIBMESH
29 #ifndef QUESO_LIBMESHFUNCTION_H
30 #define QUESO_LIBMESHFUNCTION_H
33 #include <boost/shared_ptr.hpp>
34 #include <queso/FunctionBase.h>
38 class EquationSystems;
43 class FunctionOperatorBuilder;
53 class LibMeshFunction :
public FunctionBase {
66 LibMeshFunction(
const FunctionOperatorBuilder & builder,
67 libMesh::MeshBase & m);
74 void print_info()
const;
77 virtual void save_function(
const std::string & filename,
double time)
const;
80 virtual void add(
double scale,
const FunctionBase & rhs);
83 virtual void pointwise_mult(
const FunctionBase & f1,
84 const FunctionBase & f2);
93 virtual double L2_norm()
const;
101 virtual boost::shared_ptr<FunctionBase> zero_clone()
const;
104 virtual boost::shared_ptr<libMesh::EquationSystems> get_equation_systems()
const;
107 const FunctionOperatorBuilder & builder;
109 boost::shared_ptr<libMesh::EquationSystems> equation_systems;
114 #endif // QUESO_LIBMESHFUNCTION_H
116 #endif // QUESO_HAVE_LIBMESH