Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

hp1D/hpExtension.hh
Go to the documentation of this file.
00001 /* hp extension for 1D FEM: ie. determine wether to refine or raise p
00002  * in an element
00003  */
00004 
00005 #ifndef hpExtension1D_hh
00006 #define hpExtension1D_hh
00007 
00008 #include "basics/typedefs.hh"
00009 #include "basics/exceptions.hh"
00010 #include "space/postProcess.hh"
00011 
00012 namespace concepts {
00013   // forward declaration
00014   template<typename F>
00015   class Vector;
00016 
00017   template<typename F>
00018   class Array;
00019 }
00020 
00021 namespace hp1D {
00022   using concepts::Real;
00023 
00024   // ******************************************************** RefineOrRaise  **
00025 
00037   template<typename F>
00038   class RefineOrRaise : public concepts::CellPostprocess<F> {
00039   public:
00045     RefineOrRaise(const concepts::Vector<F>& solution, 
00046                   const Real theta,
00047                   concepts::AdaptiveSpace<Real,
00048                   concepts::AdaptiveAdjustP<1> >& spc);
00049     virtual void operator() (const concepts::Element<F>& elm)
00050       throw(concepts::MissingFeature);
00051     virtual void operator() (const concepts::Cell& cell)
00052       throw(concepts::MissingFeature) {}
00053   private:
00055     concepts::Array<F> coeff_;
00057     concepts::Array<F> legendre_;
00059     const concepts::Vector<F>& solution_;
00061     concepts::AdaptiveSpace<Real, concepts::AdaptiveAdjustP<1> >& spc_;
00063     const Real theta_;
00064   };
00065 
00066 } // namespace hp1D
00067 
00068 #endif // hpExtension1D_hh

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)