Line data Source code
1 : /*
2 : * Copyright (c) 2013: G-CSC, Goethe University Frankfurt
3 : *
4 : * This file is part of UG4.
5 : *
6 : * UG4 is free software: you can redistribute it and/or modify it under the
7 : * terms of the GNU Lesser General Public License version 3 (as published by the
8 : * Free Software Foundation) with the following additional attribution
9 : * requirements (according to LGPL/GPL v3 §7):
10 : *
11 : * (1) The following notice must be displayed in the Appropriate Legal Notices
12 : * of covered and combined works: "Based on UG4 (www.ug4.org/license)".
13 : *
14 : * (2) The following notice must be displayed at a prominent place in the
15 : * terminal output of covered works: "Based on UG4 (www.ug4.org/license)".
16 : *
17 : * (3) The following bibliography is recommended for citation and must be
18 : * preserved in all covered files:
19 : * "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively
20 : * parallel geometric multigrid solver on hierarchically distributed grids.
21 : * Computing and visualization in science 16, 4 (2013), 151-164"
22 : * "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 -- a novel
23 : * flexible software system for simulating pde based models on high performance
24 : * computers. Computing and visualization in science 16, 4 (2013), 165-179"
25 : *
26 : * This program is distributed in the hope that it will be useful,
27 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
28 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29 : * GNU Lesser General Public License for more details.
30 : */
31 :
32 : // This file is parsed from UG 3.9.
33 : // It provides the Gauss Quadratures for a reference vertex.
34 :
35 : #ifndef __H__UG__LIB_DISC__QUADRATURE__GAUSS_QUAD__GAUSS_QUAD_VERTEX__
36 : #define __H__UG__LIB_DISC__QUADRATURE__GAUSS_QUAD__GAUSS_QUAD_VERTEX__
37 :
38 : #include "gauss_quad.h"
39 :
40 : namespace ug{
41 :
42 :
43 : // TODO: This class might be superfluous now that the specializations below exist.
44 : class GaussQuadratureVertex : public QuadratureRule<0>
45 : {
46 : public:
47 : /// Constructor
48 0 : GaussQuadratureVertex(){
49 0 : m_order = 20; // something large
50 0 : m_numPoints = 1;
51 0 : m_vPoint[0][0] = 0.000000000000000000;
52 0 : m_vWeight[0] = 1.000000000000000000;
53 0 : m_pvPoint = &m_vPoint[0];
54 0 : m_pvWeight = &m_vWeight[0];
55 : }
56 :
57 : protected:
58 : /// integration points
59 : MathVector<dim> m_vPoint[1];
60 :
61 : /// weights
62 : number m_vWeight[1];
63 : };
64 :
65 :
66 : template <>
67 : class GaussQuadrature<ReferenceVertex, 0>
68 : : public GaussQuadBase<GaussQuadrature<ReferenceVertex, 0>, 0, 0, 1> {};
69 :
70 :
71 : template <>
72 : class GaussQuadrature<ReferenceVertex, 1>
73 : : public GaussQuadrature<ReferenceVertex, 0> {};
74 :
75 : template <>
76 : class GaussQuadrature<ReferenceVertex, 2>
77 : : public GaussQuadrature<ReferenceVertex, 0> {};
78 :
79 : template <>
80 : class GaussQuadrature<ReferenceVertex, 3>
81 : : public GaussQuadrature<ReferenceVertex, 0> {};
82 :
83 : template <>
84 : class GaussQuadrature<ReferenceVertex, 4>
85 : : public GaussQuadrature<ReferenceVertex, 0> {};
86 :
87 : template <>
88 : class GaussQuadrature<ReferenceVertex, 5>
89 : : public GaussQuadrature<ReferenceVertex, 0> {};
90 :
91 : template <>
92 : class GaussQuadrature<ReferenceVertex, 6>
93 : : public GaussQuadrature<ReferenceVertex, 0> {};
94 :
95 : template <>
96 : class GaussQuadrature<ReferenceVertex, 7>
97 : : public GaussQuadrature<ReferenceVertex, 0> {};
98 :
99 : template <>
100 : class GaussQuadrature<ReferenceVertex, 8>
101 : : public GaussQuadrature<ReferenceVertex, 0> {};
102 :
103 : template <>
104 : class GaussQuadrature<ReferenceVertex, 9>
105 : : public GaussQuadrature<ReferenceVertex, 0> {};
106 :
107 : template <>
108 : class GaussQuadrature<ReferenceVertex, 10>
109 : : public GaussQuadrature<ReferenceVertex, 0> {};
110 :
111 : template <>
112 : class GaussQuadrature<ReferenceVertex, 11>
113 : : public GaussQuadrature<ReferenceVertex, 0> {};
114 :
115 : template <>
116 : class GaussQuadrature<ReferenceVertex, 12>
117 : : public GaussQuadrature<ReferenceVertex, 0> {};
118 :
119 : template <>
120 : class GaussQuadrature<ReferenceVertex, 13>
121 : : public GaussQuadrature<ReferenceVertex, 0> {};
122 :
123 : template <>
124 : class GaussQuadrature<ReferenceVertex, 14>
125 : : public GaussQuadrature<ReferenceVertex, 0> {};
126 :
127 : template <>
128 : class GaussQuadrature<ReferenceVertex, 15>
129 : : public GaussQuadrature<ReferenceVertex, 0> {};
130 :
131 : template <>
132 : class GaussQuadrature<ReferenceVertex, 16>
133 : : public GaussQuadrature<ReferenceVertex, 0> {};
134 :
135 : template <>
136 : class GaussQuadrature<ReferenceVertex, 17>
137 : : public GaussQuadrature<ReferenceVertex, 0> {};
138 :
139 : template <>
140 : class GaussQuadrature<ReferenceVertex, 18>
141 : : public GaussQuadrature<ReferenceVertex, 0> {};
142 :
143 : template <>
144 : class GaussQuadrature<ReferenceVertex, 19>
145 : : public GaussQuadrature<ReferenceVertex, 0> {};
146 :
147 : }; // namespace ug
148 :
149 :
150 : #endif //__H__UG__LIB_DISC__QUADRATURE__GAUSS_QUAD__GAUSS_QUAD_VERTEX__
|