00001 00006 #ifndef buildInnerDofs2D_hh 00007 #define buildInnerDofs2D_hh 00008 00009 #include "hp2D/space.hh" 00010 #include "hp2D/buildDofsBase.hh" 00011 00012 namespace hp2D { 00013 00014 // forward declaration 00015 class Space; 00016 00017 // ******************************************************** BuildInnerDofs ** 00018 00055 class BuildInnerDofs : public BuildDofsBase { 00056 public: 00058 BuildInnerDofs() {} 00062 BuildInnerDofs(Space& spc) : BuildDofsBase(spc) {} 00063 virtual void operator()(concepts::Quad& cntr, 00064 concepts::TColumn<Real>*& T1, 00065 const uint nn[2]); 00066 virtual BuildInnerDofs* clone(Space* spc = 0) const; 00081 virtual bool trunk(uint p, uint q, const ushort P[2]); 00082 }; 00083 00084 // ************************************************ BuildInnerDofsLinTrunk ** 00085 00102 class BuildInnerDofsLinTrunk : public BuildInnerDofs { 00103 public: 00105 BuildInnerDofsLinTrunk() {} 00109 BuildInnerDofsLinTrunk(Space& spc) : BuildInnerDofs(spc) {} 00110 virtual BuildInnerDofsLinTrunk* clone(Space* spc = 0) const; 00111 virtual bool trunk(uint p, uint q, const ushort P[2]); 00112 }; 00113 00114 // ************************************************ BuildInnerDofsHypTrunk ** 00115 00129 class BuildInnerDofsHypTrunk : public BuildInnerDofs { 00130 public: 00132 BuildInnerDofsHypTrunk() {} 00136 BuildInnerDofsHypTrunk(Space& spc) : BuildInnerDofs(spc) {} 00137 virtual BuildInnerDofsHypTrunk* clone(Space* spc = 0) const; 00138 virtual bool trunk(uint p, uint q, const ushort P[2]); 00139 }; 00140 00141 } // namespace hp2D 00142 00143 #endif // buildInnerDofs2D_hh