00001 00006 #ifndef buildFaceDofs_hh 00007 #define buildFaceDofs_hh 00008 00009 #include "hp3D/space.hh" 00010 #include "hp3D/buildDofsBase.hh" 00011 00012 namespace hp3D { 00013 00014 // forward declaration 00015 class Space; 00016 00017 // ********************************************************* BuildFaceDofs ** 00018 00037 class BuildFaceDofs : public BuildDofsBase { 00038 public: 00040 BuildFaceDofs() {} 00044 BuildFaceDofs(Space& spc) : BuildDofsBase(spc) {} 00045 virtual void operator()(concepts::Hexahedron& cntr, 00046 concepts::TColumn<Real>*& T1); 00047 virtual BuildFaceDofs* clone(Space* spc = 0) const; 00062 virtual bool trunk(uint p, uint q, const ushort P[2]); 00063 }; 00064 00065 // ************************************************* BuildFaceDofsLinTrunk ** 00066 00082 class BuildFaceDofsLinTrunk : public BuildFaceDofs { 00083 public: 00085 BuildFaceDofsLinTrunk() {} 00089 BuildFaceDofsLinTrunk(Space& spc) : BuildFaceDofs(spc) {} 00090 virtual BuildFaceDofsLinTrunk* clone(Space* spc = 0) const; 00091 virtual bool trunk(uint p, uint q, const ushort P[2]); 00092 }; 00093 00094 // ************************************************* BuildFaceDofsHypTrunk ** 00095 00109 class BuildFaceDofsHypTrunk : public BuildFaceDofs { 00110 public: 00112 BuildFaceDofsHypTrunk() {} 00116 BuildFaceDofsHypTrunk(Space& spc) : BuildFaceDofs(spc) {} 00117 virtual BuildFaceDofsHypTrunk* clone(Space* spc = 0) const; 00118 virtual bool trunk(uint p, uint q, const ushort P[2]); 00119 }; 00120 00121 } // namespace hp3D 00122 00123 #endif // buildFaceDofs_hh