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

hp2D/hpAdaptiveSpaceDG.hh
Go to the documentation of this file.
00001 
00007 #pragma once
00008 
00009 #include "toolbox/set.hh"
00010 #include "hp2D/hpAdaptiveSpace.hh"
00011 
00012 namespace hp2D {
00013 
00014   using concepts::Real;
00015 
00016   // ****************************************************** hpAdaptiveSpaceDG **
00017 
00023   template<class F>
00024   class hpAdaptiveSpaceDG : public concepts::SpaceOnCells<Real> {
00025   public:
00026     typedef concepts::Scan<hp2D::Element<Real> > Scan;
00027 
00028     hpAdaptiveSpaceDG(concepts::Mesh2& msh, uint l, uint p,
00029                       concepts::Sequence<concepts::Set<uint> > attrib,
00030                       concepts::BoundaryConditions* bc = 0,
00031                       bool linearTrunk = false);
00032     ~hpAdaptiveSpaceDG();
00033     inline virtual uint dim() const  { return dim_; }
00034     inline virtual uint nelm() const { return nelm_; }
00035     inline virtual Scan* scan() const {
00036       return new concepts::PListScan<Element<Real> >(*elm_);
00037     }
00038     
00040     void rebuild();
00041 
00045     void recomputeShapefunctions();
00046 
00047     const concepts::Sequence<F*> spaces() const { return spc_; }
00048   protected:
00049     virtual std::ostream& info(std::ostream& os) const;
00051     concepts::Sequence<F*> spc_;
00052   private:
00054     uint dim_;
00056     uint nelm_;
00058     uint build_;
00060     concepts::Joiner<Element<Real>*, 1>* elm_;
00062     concepts::Sequence<concepts::CellConditions> cc_;
00063   };
00064 
00065   // **************************************************** hpAdaptiveSpaceH1_DG **
00066 
00067   typedef hpAdaptiveSpaceDG<hpAdaptiveSpaceH1> hpAdaptiveSpaceH1_DG;
00068 
00069   // ******************************************* hpAdaptiveSpaceH1_DGFromInput **
00070 
00091    hpAdaptiveSpaceH1_DG*
00092    hpAdaptiveSpaceH1_DGFromInput(concepts::Mesh2& msh,
00093                                  const concepts::InOutParameters input,
00094                                  bool verbose = false);
00095 
00096 
00097 } // namespace hp2D

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