hpAdaptiveSpaceL2.hh

Go to the documentation of this file.
1 
8 #ifndef hpAdaptSpace2DL2_hh
9 #define hpAdaptSpace2DL2_hh
10 
11 #include "basics/typedefs.hh"
12 #include "toolbox/inputOutput.hh"
13 #include "hp2D/hpAdaptiveSpace.hh"
14 #include "hp2D/buildL2TColumns.hh"
15 
16 namespace hp2D {
17 
18  using concepts::Real;
19 
20  // forward declarations
21  template<class F>
22  class Quad;
23 
24  class hpAdaptiveSpaceL2;
25 
26  // ******************************************** hpAdaptiveSpaceL2FromInput **
27 
47  hpAdaptiveSpaceL2*
49  const concepts::InOutParameters input,
50  bool verbose = false);
51 
52  // ***************************************************** hpAdaptiveSpaceL2 **
53 
54  class hpAdaptiveSpaceL2 : public hpAdaptiveSpace<Real> {
55  public:
57 
72  hpAdaptiveSpaceL2(concepts::Mesh2& msh, uint l, uint p,
74  concepts::CellConditions* cc = 0);
75 
82  const concepts::InOutParameters input);
83 
106  concepts::CellConditions* cc = 0 , uint spcNo = 0,
107  uint* offset = 0, uint* idx = 0);
108 
114 
128  }
138  }
149  }
151 
155  virtual void recomputeShapefunctions();
156  protected:
157  virtual std::ostream& info(std::ostream& os) const;
158 
163  concepts::TColumn<Real>* T1) const;
164  protected:
165  virtual concepts::TColumn<Real>*
167  const concepts::TColumn<Real>* T0,
168  const concepts::TColumn<Real>* T1);
169  };
170 
171 } // namespace hp2D
172 
173 namespace concepts {
174 
175  template<>
176  struct number<hp2D::hpAdaptiveSpaceL2> {
177  static inline std::string name() { return "hp2D::hpAdaptiveSpaceL2"; }
178  };
179 
180 } // namespace concepts
181 
182 #endif // hpAdaptSpace2DL2_hh
A column of a T matrix.
Definition: analytical.hh:18
hpAdaptiveSpaceL2(concepts::Mesh2 &msh, uint l, uint p, concepts::BoundaryConditions *bc=0, concepts::CellConditions *cc=0)
Constructor.
hpAdaptiveSpaceL2(const hpAdaptiveSpaceL2 &spc)
Copy constructor.
void buildVertexDofs(const BuildTColumnsBase< Real > *b)
Change the strategy how the degrees of freedom for the vertices are built.
void buildInnerDofs(const BuildTColumnsBase< Real > *b)
Change the strategy how the degrees of freedom for the interior are built.
Holds parameters in hashes.
Definition: inputOutput.hh:75
Helper class for building 2D hp-FEM spaces (space pre builder).
virtual uint offset() const
hp-adaptive space with 2D elements.
2D hp-FEM for H1-conforming elements.
virtual Element< Real > * newElement_(concepts::Cell2 &cell, ushort *pMax, concepts::TColumn< Real > *T0, concepts::TColumn< Real > *T1) const
Creates and returns an element for cell.
void buildEdgeDofs(const BuildTColumnsBase< Real > *b)
Change the strategy how the degrees of freedom for the edge are built.
void setBuildEdgeDofs_(const BuildTColumnsBase< Real > *b)
Change the strategy how the degrees of freedom for the edge are built.
Base class for classes for building T columns for elements in a space with help of a 2D space pre bui...
Name traits for number types.
Definition: typedefs.hh:68
hpAdaptiveSpaceL2 * hpAdaptiveSpaceL2FromInput(concepts::Mesh2 &msh, const concepts::InOutParameters input, bool verbose=false)
Builds and refines a hp-adaptive -conforming space with use of input parameters.
concepts::Scan< hp2D::Element< Real > > Scan
An abstract class for scanning a mesh (a set of cells) or a space (a set of elements).
hpAdaptiveSpaceL2(hpFull &prebuild, concepts::BoundaryConditions *bc=0, concepts::CellConditions *cc=0, uint spcNo=0, uint *offset=0, uint *idx=0)
Constructor for using same mesh and distribution of degrees of freedom object as another space.
An abstract class for 2D meshes.
Definition: mesh.hh:103
Two dimensional cell.
Definition: cell.hh:89
void setBuildInnerDofs_(const BuildTColumnsBase< Real > *b)
Change the strategy how the degrees of freedom for the interior are built.
hpAdaptiveSpaceL2(concepts::Mesh2 &msh, const concepts::InOutParameters input)
Constructor with boundary conditions and refinement strategy from input parameters.
unsigned short ushort
Abbreviation for unsigned short.
Definition: typedefs.hh:48
virtual void recomputeShapefunctions()
Recompute shape functions, e.g.
virtual std::ostream & info(std::ostream &os) const
Change the strategy how the degrees of freedom for the vertices are built.
void setBuildVertexDofs_(const BuildTColumnsBase< Real > *b)
Change the strategy how the degrees of freedom for the vertices are built.
double Real
Type normally used for a floating point number.
Definition: typedefs.hh:36
virtual concepts::TColumn< Real > * applySmatrices_(const concepts::Element< Real > &elm, uint i, const concepts::TColumn< Real > *T0, const concepts::TColumn< Real > *T1)
Change the strategy how the degrees of freedom for the vertices are built.
Basic namespace for Concepts-2.
Definition: pml_formula.h:16
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich