Go to the documentation of this file.00001
00008 #ifndef thinsheetspc_hh
00009 #define thinsheetspc_hh
00010
00011 #include "basics/typedefs.hh"
00012 #include "hp2D/hpAdaptiveSpaceH1.hh"
00013 #include "thinSheetGeom.hh"
00014
00015 namespace hp2D {
00016
00017 using concepts::Real;
00018
00019
00020 template<class F>
00021 class Quad;
00022
00023
00024
00025 class ThinSheetSpaceH1 : public hpAdaptiveSpaceH1 {
00026 public:
00027 typedef concepts::Scan<hp2D::Element<Real> > Scan;
00039
00040
00041
00042
00068 ThinSheetSpaceH1(hpFull& prebuild,
00069 concepts::BoundaryConditions* bc = 0,
00070 concepts::CellConditions* cc = 0, uint* idx = 0);
00074
00075 virtual ~ThinSheetSpaceH1();
00076
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107 protected:
00108 virtual std::ostream& info(std::ostream& os) const;
00109 private:
00112 virtual Element<Real>* newElement_(concepts::Cell2& cell, ushort* pMax,
00113 concepts::TColumn<Real>* T0,
00114 concepts::TColumn<Real>* T1) const;
00115
00116 bool fittingCells_(const concepts::ThinSheetQuad2d* quad0,
00117 const concepts::ThinSheetQuad2d* quad1) const;
00118
00119
00124 virtual concepts::TColumn<Real>*
00125 applySmatrices_(const concepts::Element<Real>& elm, uint i,
00126 const concepts::TColumn<Real>* T0,
00127 const concepts::TColumn<Real>* T1);
00128 };
00129
00130 }
00131
00132 #endif // thinsheetspc_hh