Hermes2D  3.0
shapeset_l2_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_L2_ALL
17 #define __H2D_SHAPESET_L2_ALL
18 
19 // This file is a common header for all L2 shapesets.
20 
21 #include "shapeset.h"
22 
23 namespace Hermes
24 {
25  namespace Hermes2D
26  {
28  class HERMES_API L2ShapesetLegendre : public Shapeset
29  {
30  public:
32  virtual Shapeset* clone() { return new L2ShapesetLegendre(*this); };
33  virtual SpaceType get_space_type() const { return HERMES_L2_SPACE; }
34  virtual unsigned short get_max_index(ElementMode2D mode) const;
35  virtual unsigned char get_id() const { return HERMES_L2_LEGENDRE; }
36 
37  static const unsigned short max_index[H2D_NUM_MODES];
38  };
39 
41  class HERMES_API L2ShapesetTaylor : public Shapeset
42  {
43  public:
44  L2ShapesetTaylor(bool contains_means = true);
45  virtual Shapeset* clone() { return new L2ShapesetTaylor(*this); };
46  virtual SpaceType get_space_type() const { return HERMES_L2_SPACE; }
47  virtual unsigned short get_max_index(ElementMode2D mode) const;
48  virtual unsigned char get_id() const { return HERMES_L2_TAYLOR; }
49 
52  short* get_bubble_indices(unsigned short order, ElementMode2D mode) const;
53 
56  virtual unsigned short get_num_bubbles(unsigned short order, ElementMode2D mode) const;
57 
58  static const unsigned short max_index[H2D_NUM_MODES];
59  };
60 
63  }
64 }
65 #endif
Definition: adapt.h:24
L2 Taylor shapeset - Taylor basis functions as proposed by Kuzmin, Luo.
virtual SpaceType get_space_type() const
L2 shapeset - products of legendre polynomials.
#define H2D_NUM_MODES
Internal.
Definition: global.h:35
virtual unsigned char get_id() const
Should be exactly the same as is the count of enum ShapesetType.
Definition: shapeset.h:95
virtual SpaceType get_space_type() const
L2ShapesetLegendre L2Shapeset
This is the default shapeset typedef.
virtual unsigned char get_id() const