Go to the documentation of this file.00001
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
00014 namespace concepts {
00015 class Hexahedron;
00016 }
00017
00018 namespace hp3D {
00019
00020 using concepts::Real;
00021
00022
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 }
00073
00074 #endif // APRIORIRef3D_hh
00075