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

hp3D/aprioriRef.hh
Go to the documentation of this file.
00001 /* a priori refinement for hexahedra
00002  */
00003 
00004 #ifndef APRIORIRef3D_hh
00005 #define APRIORIRef3D_hh
00006 
00007 #include "basics/typedefs.hh"
00008 #include "basics/exceptions.hh"
00009 #include "geometry/connector.hh"
00010 #include "space/postProcess.hh"
00011 #include "space/hpMethod.hh"
00012 
00013 // forward declaration
00014 namespace concepts {
00015   class Hexahedron;
00016 }
00017 
00018 namespace hp3D {
00019 
00020   using concepts::Real;
00021 
00022   // ***************************************************** APrioriRefinement **
00023 
00036   class APrioriRefinement : public concepts::CellPostprocess<Real> {
00037   public:
00047     APrioriRefinement
00048     (concepts::AdaptiveSpace<Real, concepts::AdaptiveAdjustP<3> >& spc,
00049      concepts::Attribute attribVtx, concepts::Attribute attribEdge,
00050      concepts::Attribute attribFace, const int* const p) :
00051       spc_(spc), attribVtx_(attribVtx), attribEdge_(attribEdge),
00052       attribFace_(attribFace), p_(p) {}
00053     virtual void operator() (const concepts::Element<Real>& elm)
00054       throw(concepts::MissingFeature);
00055     virtual void operator() (const concepts::Cell& cell)
00056       throw(concepts::MissingFeature) {}
00057   protected:
00058     virtual std::ostream& info(std::ostream& os) const;
00059   private:
00061     concepts::AdaptiveSpace<Real, concepts::AdaptiveAdjustP<3> >& spc_;
00063     concepts::Attribute attribVtx_, attribEdge_, attribFace_;
00065     const int* const p_;
00067     concepts::AdaptiveAdjustP<3> computeRef_
00068     (const concepts::Hexahedron& h) const;
00069   };
00070 
00071 
00072 } // namespace hp3D
00073 
00074 #endif // APRIORIRef3D_hh
00075 

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