Hermes2D  2.0
shapeset_hd_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_HD_ALL_H
17 #define __H2D_SHAPESET_HD_ALL_H
18 
19 #include "shapeset.h"
20 
21 namespace Hermes
22 {
23  namespace Hermes2D
24  {
27  class HERMES_API HdivShapesetLegendre : public Shapeset
28  {
29  public:
31  virtual Shapeset* clone() { return new HdivShapesetLegendre(*this); };
32  virtual SpaceType get_space_type() const { return HERMES_HDIV_SPACE; }
33  virtual int get_max_index(ElementMode2D mode);
34  protected:
35  virtual int get_id() const { return 20; }
36  template<typename Scalar> friend class DiscreteProblem;
37  template<typename Scalar> friend class VectorForm;
38  template<typename Scalar> friend class MatrixForm;
39  template<typename Scalar> friend class Solution;
40  friend class CurvMap; friend class RefMap;
41  template<typename Scalar> friend class RefinementSelectors::H1ProjBasedSelector;
42  template<typename Scalar> friend class RefinementSelectors::L2ProjBasedSelector;
43  template<typename Scalar> friend class RefinementSelectors::HcurlProjBasedSelector;
44  template<typename Scalar> friend class RefinementSelectors::OptimumSelector; friend class PrecalcShapeset;
45  static const int max_index[H2D_NUM_MODES];
46  };
47 
50  }
51 }
52 #endif