1 
2 #ifndef L_QOI_H
3 #define L_QOI_H
4 
5 #include "libmesh/libmesh_common.h"
6 #include "libmesh/elem.h"
7 #include "libmesh/fe_base.h"
8 #include "libmesh/fem_context.h"
9 #include "libmesh/point.h"
10 #include "libmesh/quadrature.h"
11 #include "libmesh/diff_qoi.h"
12 #include "libmesh/auto_ptr.h" // libmesh_make_unique
13 
14 // Bring in everything from the libMesh namespace
15 using namespace libMesh;
16 
17 class LaplaceQoI : public DifferentiableQoI
18 {
19 public:
LaplaceQoI()20   LaplaceQoI(){}
~LaplaceQoI()21   virtual ~LaplaceQoI(){}
22 
23   virtual void init_qoi(std::vector<Number> & sys_qoi);
24 
25   // Context initialization
26   virtual void init_context (DiffContext & context);
27 
postprocess()28   virtual void postprocess() {}
29 
30   virtual void element_qoi_derivative(DiffContext & context, const QoISet & qois);
31 
32   virtual void element_qoi (DiffContext & context, const QoISet & qois);
33 
clone()34   virtual std::unique_ptr<DifferentiableQoI> clone()
35   {
36     return libmesh_make_unique<LaplaceQoI>(*this);
37   }
38 
39 };
40 #endif // L_QOI_H
41