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