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