Class documentation of Concepts

Loading...
Searching...
No Matches
hpAdaptiveSpaceH1.hh
Go to the documentation of this file.
1
8#ifndef hpAdaptSpace2DH1_hh
9#define hpAdaptSpace2DH1_hh
10
11#include "basics/typedefs.hh"
15
16namespace concepts {
17
18 // forward declarations
19 template<class F>
20 class SMatrixBase;
21
22 class SMatrix1D;
23}
24
25namespace hp2D {
26
27 using concepts::Real;
28
29 // forward declarations
30 template<class F>
31 class Quad;
32
33 class hpAdaptiveSpaceH1;
34
35 // ******************************************** hpAdaptiveSpaceH1FromInput **
36
56 hpAdaptiveSpaceH1*
58 const concepts::InOutParameters input,
59 bool verbose = false);
60
61 // ***************************************************** hpAdaptiveSpaceH1 **
62
63 class hpAdaptiveSpaceH1 : public hpAdaptiveSpace<Real> {
64 public:
66
81 hpAdaptiveSpaceH1(concepts::Mesh2& msh, uint l, uint p,
84
91 const concepts::InOutParameters input);
92
115 concepts::CellConditions* cc = 0 , uint spcNo = 0,
116 uint* offset = 0, uint* idx = 0);
117
122 virtual ~hpAdaptiveSpaceH1();
123
160
165 protected:
166 virtual std::ostream& info(std::ostream& os) const;
167
170 virtual Element<Real>* newElement_(concepts::Cell2& cell, ushort* pMax,
172 concepts::TColumn<Real>* T1) const;
173
180 const concepts::TColumn<Real>* T0,
181 const concepts::TColumn<Real>* T1);
182 private:
189 void recomputeSmatrices_(const Quad<Real>& elm);
190
192 std::unique_ptr<concepts::SMatrix1D> S1left_, S1right_;
193
197 std::unique_ptr<concepts::SMatrixBase<Real> > Smatrices2H_[2];
198
202 std::unique_ptr<concepts::SMatrixBase<Real> > Smatrices2V_[2];
203
207 std::unique_ptr<concepts::SMatrixBase<Real> > Smatrices4_[4];
208
209 };
210
211} // namespace hp2D
212
213namespace concepts {
214
215 template<>
216 struct number<hp2D::hpAdaptiveSpaceH1> {
217 static inline std::string name() { return "hp2D::hpAdaptiveSpaceH1"; }
218 };
219
220} // namespace concepts
221
222#endif // hpAdaptSpace2DH1_hh
Two dimensional cell.
Definition cell.hh:89
hpAdaptiveSpaceH1(concepts::Mesh2 &msh, const concepts::InOutParameters input)
virtual concepts::TColumn< Real > * applySmatrices_(const concepts::Element< Real > &elm, uint i, const concepts::TColumn< Real > *T0, const concepts::TColumn< Real > *T1)
virtual Element< Real > * newElement_(concepts::Cell2 &cell, ushort *pMax, concepts::TColumn< Real > *T0, concepts::TColumn< Real > *T1) const
void buildEdgeDofs(const BuildTColumnsBase< Real > *b)
void buildVertexDofs(const BuildTColumnsBase< Real > *b)
hpAdaptiveSpaceH1(const hpAdaptiveSpaceH1 &spc)
hpAdaptiveSpaceH1(hpFull &prebuild, concepts::BoundaryConditions *bc=0, concepts::CellConditions *cc=0, uint spcNo=0, uint *offset=0, uint *idx=0)
void buildInnerDofs(const BuildTColumnsBase< Real > *b)
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
hpAdaptiveSpaceH1(concepts::Mesh2 &msh, uint l, uint p, concepts::BoundaryConditions *bc=0, concepts::CellConditions *cc=0)
virtual void recomputeShapefunctions()
void setBuildVertexDofs_(const BuildTColumnsBase< Real > *b)
void setBuildInnerDofs_(const BuildTColumnsBase< Real > *b)
void setBuildEdgeDofs_(const BuildTColumnsBase< Real > *b)
double Real
Definition typedefs.hh:39
hpAdaptiveSpaceH1 * hpAdaptiveSpaceH1FromInput(concepts::Mesh2 &msh, const concepts::InOutParameters input, bool verbose=false)