libMesh
quadrature_gm.h
Go to the documentation of this file.
1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2017 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License, or (at your option) any later version.
8 
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
13 
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 
18 
19 
20 #ifndef LIBMESH_QUADRATURE_GM_H
21 #define LIBMESH_QUADRATURE_GM_H
22 
23 // Local includes
24 #include "libmesh/quadrature.h"
25 
26 namespace libMesh
27 {
28 
96 class QGrundmann_Moller libmesh_final : public QBase
97 {
98 public:
99 
103  QGrundmann_Moller (const unsigned int _dim,
104  const Order _order=INVALID_ORDER);
105 
109  ~QGrundmann_Moller();
110 
114  virtual QuadratureType type() const libmesh_override { return QGRUNDMANN_MOLLER; }
115 
116 
117 private:
118 
122  virtual void init_1D (const ElemType,
123  unsigned int = 0) libmesh_override;
124 
128  virtual void init_3D (const ElemType _type=INVALID_ELEM,
129  unsigned int p_level=0) libmesh_override;
130 
134  virtual void init_2D (const ElemType _type=INVALID_ELEM,
135  unsigned int p_level=0) libmesh_override;
136 
142  void gm_rule(unsigned int s, unsigned int dim);
143 
149  void compose_all(unsigned int s, // number to be compositioned
150  unsigned int p, // # of partitions
151  std::vector<std::vector<unsigned int>> & result);
152 };
153 
154 } // namespace libMesh
155 
156 #endif // LIBMESH_QUADRATURE_GM_H
QuadratureType
Defines an enum for currently available quadrature rules.
virtual QuadratureType type() const libmesh_override
unsigned int dim
ElemType
Defines an enum for geometric element types.
The libMesh namespace provides an interface to certain functionality in the library.
Order
defines an enum for polynomial orders.
Definition: enum_order.h:32