Hermes2D  2.0
shapeset_h1_all.h
1 // This file is part of Hermes2D.
2 //
3 // Hermes2D is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 2 of the License, or
6 // (at your option) any later version.
7 //
8 // Hermes2D is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with Hermes2D. If not, see <http://www.gnu.org/licenses/>.
15 
16 #ifndef __H2D_SHAPESET_H1_ALL
17 #define __H2D_SHAPESET_H1_ALL
18 
20 
21 #include "shapeset.h"
22 namespace Hermes
23 {
24  namespace Hermes2D
25  {
28  class HERMES_API H1ShapesetOrtho : public Shapeset
29  {
30  public:
32  virtual Shapeset* clone() { return new H1ShapesetOrtho(*this); };
33  virtual SpaceType get_space_type() const { return HERMES_H1_SPACE; }
34  virtual int get_max_index(ElementMode2D mode);
35  private:
36  virtual int get_id() const { return 0; }
37  template<typename Scalar> friend class DiscreteProblem; template<typename Scalar> friend class Solution; friend class CurvMap; friend class RefMap; template<typename Scalar> friend class RefinementSelectors::H1ProjBasedSelector; template<typename Scalar> friend class RefinementSelectors::L2ProjBasedSelector; template<typename Scalar> friend class RefinementSelectors::HcurlProjBasedSelector; template<typename Scalar> friend class RefinementSelectors::OptimumSelector; friend class PrecalcShapeset;
38  template<typename Scalar> friend class VectorForm;
39  template<typename Scalar> friend class MatrixForm;
40  static const int max_index[H2D_NUM_MODES];
41  };
42 
45  class HERMES_API H1ShapesetJacobi : public Shapeset
46  {
47  public:
49  virtual Shapeset* clone() { return new H1ShapesetJacobi(*this); };
50  virtual int get_max_index(ElementMode2D mode);
51  private:
52  virtual int get_id() const { return 1; }
53  static const int max_index[H2D_NUM_MODES];
54  template<typename Scalar> friend class VectorForm;
55  template<typename Scalar> friend class MatrixForm;
56  virtual SpaceType get_space_type() const { return HERMES_H1_SPACE; }
57  template<typename Scalar> friend class DiscreteProblem; template<typename Scalar> friend class Solution; friend class CurvMap; friend class RefMap; template<typename Scalar> friend class RefinementSelectors::H1ProjBasedSelector; template<typename Scalar> friend class RefinementSelectors::L2ProjBasedSelector; template<typename Scalar> friend class RefinementSelectors::HcurlProjBasedSelector; template<typename Scalar> friend class RefinementSelectors::OptimumSelector; friend class PrecalcShapeset;
58  };
59 
62  /*
63  class HERMES_API H1ShapesetEigen : public Shapeset
64  {
65  public:
66  H1ShapesetEigen();
67  virtual Shapeset* clone() { return new H1ShapesetEigen(*this); };
68  virtual int get_max_index(ElementMode2D mode) {};
69  private:
70  virtual int get_id() const { return 2; }
71  template<typename Scalar> friend class VectorForm;
72  template<typename Scalar> friend class MatrixForm;
73  virtual SpaceType get_space_type() const { return HERMES_H1_SPACE; }
74  template<typename Scalar> friend class DiscreteProblem; template<typename Scalar> friend class Solution; friend class CurvMap; friend class RefMap; template<typename Scalar> friend class RefinementSelectors::H1ProjBasedSelector; template<typename Scalar> friend class RefinementSelectors::L2ProjBasedSelector; template<typename Scalar> friend class RefinementSelectors::HcurlProjBasedSelector; template<typename Scalar> friend class RefinementSelectors::OptimumSelector; friend class PrecalcShapeset;
75  static const int max_index[H2D_NUM_MODES];
76  };
77  */
78 
81  }
82 }
83 #endif