libMesh
fe_hierarchic_shape_0D.C
Go to the documentation of this file.
1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2025 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 // Local includes
20 #include "libmesh/fe.h"
21 #include "libmesh/elem.h"
22 
23 
24 namespace libMesh
25 {
26 
27 
31 
32 
33 
34 template <>
36  const Order,
37  const unsigned int libmesh_dbg_var(i),
38  const Point &)
39 {
40  libmesh_assert_less (i, 1);
41  return 1.;
42 }
43 
44 
45 
46 template <>
48  const Order,
49  const unsigned int libmesh_dbg_var(i),
50  const Point &)
51 {
52  libmesh_assert_less (i, 1);
53  return 1.;
54 }
55 
56 
57 
58 template <>
60  const Order,
61  const unsigned int,
62  const Point &)
63 {
64  libmesh_error_msg("No side variables in 0D!");
65  return 1.;
66 }
67 
68 
69 
70 template <>
72  const Order,
73  const unsigned int libmesh_dbg_var(i),
74  const Point &,
75  const bool)
76 {
77  libmesh_assert_less (i, 1);
78  return 1.;
79 }
80 
81 
82 
83 template <>
85  const Order,
86  const unsigned int libmesh_dbg_var(i),
87  const Point &,
88  const bool)
89 {
90  libmesh_assert_less (i, 1);
91  return 1.;
92 }
93 
94 
95 
96 template <>
98  const Order,
99  const unsigned int,
100  const Point &,
101  const bool)
102 {
103  libmesh_error_msg("No side variables in 0D!");
104  return 1.;
105 }
106 
107 
108 
109 template <>
111  const Elem *,
112  const unsigned int libmesh_dbg_var(i),
113  const Point &,
114  const bool)
115 {
116  libmesh_assert_less (i, 1);
117  return 1.;
118 }
119 
120 
121 
122 template <>
124  const Elem *,
125  const unsigned int libmesh_dbg_var(i),
126  const Point &,
127  const bool)
128 {
129  libmesh_assert_less (i, 1);
130  return 1.;
131 }
132 
133 
134 
135 template <>
137  const Elem *,
138  const unsigned int,
139  const Point &,
140  const bool)
141 {
142  libmesh_error_msg("No side variables in 0D!");
143  return 1.;
144 }
145 
146 
147 
148 template <>
150  const Order,
151  const unsigned int,
152  const unsigned int,
153  const Point &)
154 {
155  libmesh_error_msg("No spatial derivatives in 0D!");
156  return 0.;
157 }
158 
159 
160 
161 template <>
163  const Order,
164  const unsigned int,
165  const unsigned int,
166  const Point &,
167  const bool)
168 {
169  libmesh_error_msg("No spatial derivatives in 0D!");
170  return 0.;
171 }
172 
173 
174 
175 template <>
177  const Elem *,
178  const unsigned int,
179  const unsigned int,
180  const Point &,
181  const bool)
182 {
183  libmesh_error_msg("No spatial derivatives in 0D!");
184  return 0.;
185 }
186 
187 
188 
189 template <>
191  const Order,
192  const unsigned int,
193  const unsigned int,
194  const Point &)
195 {
196  libmesh_error_msg("No spatial derivatives in 0D!");
197  return 0.;
198 }
199 
200 
201 
202 template <>
204  const Order,
205  const unsigned int,
206  const unsigned int,
207  const Point &,
208  const bool)
209 {
210  libmesh_error_msg("No spatial derivatives in 0D!");
211  return 0.;
212 }
213 
214 
215 template <>
217  const Elem *,
218  const unsigned int,
219  const unsigned int,
220  const Point &,
221  const bool)
222 {
223  libmesh_error_msg("No spatial derivatives in 0D!");
224  return 0.;
225 }
226 
227 
228 
229 template <>
231  const Order,
232  const unsigned int,
233  const unsigned int,
234  const Point &)
235 {
236  libmesh_error_msg("No spatial derivatives in 0D!");
237  return 0.;
238 }
239 
240 
241 
242 template <>
244  const Order,
245  const unsigned int,
246  const unsigned int,
247  const Point &,
248  const bool)
249 {
250  libmesh_error_msg("No spatial derivatives in 0D!");
251  return 0.;
252 }
253 
254 
255 template <>
257  const Elem *,
258  const unsigned int,
259  const unsigned int,
260  const Point &,
261  const bool)
262 {
263  libmesh_error_msg("No spatial derivatives in 0D!");
264  return 0.;
265 }
266 
267 
268 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES
269 
270 template <>
272  const Order,
273  const unsigned int,
274  const unsigned int,
275  const Point &)
276 {
277  libmesh_error_msg("No spatial derivatives in 0D!");
278  return 0.;
279 }
280 
281 
282 
283 template <>
285  const Order,
286  const unsigned int,
287  const unsigned int,
288  const Point &,
289  const bool)
290 {
291  libmesh_error_msg("No spatial derivatives in 0D!");
292  return 0.;
293 }
294 
295 
296 template <>
298  const Elem *,
299  const unsigned int,
300  const unsigned int,
301  const Point &,
302  const bool)
303 {
304  libmesh_error_msg("No spatial derivatives in 0D!");
305  return 0.;
306 }
307 
308 
309 template <>
311  const Order,
312  const unsigned int,
313  const unsigned int,
314  const Point &)
315 {
316  libmesh_error_msg("No spatial derivatives in 0D!");
317  return 0.;
318 }
319 
320 
321 
322 template <>
324  const Order,
325  const unsigned int,
326  const unsigned int,
327  const Point &,
328  const bool)
329 {
330  libmesh_error_msg("No spatial derivatives in 0D!");
331  return 0.;
332 }
333 
334 
335 template <>
337  const Elem *,
338  const unsigned int,
339  const unsigned int,
340  const Point &,
341  const bool)
342 {
343  libmesh_error_msg("No spatial derivatives in 0D!");
344  return 0.;
345 }
346 
347 
348 
349 template <>
351  const Order,
352  const unsigned int,
353  const unsigned int,
354  const Point &)
355 {
356  libmesh_error_msg("No spatial derivatives in 0D!");
357  return 0.;
358 }
359 
360 
361 
362 template <>
364  const Order,
365  const unsigned int,
366  const unsigned int,
367  const Point &,
368  const bool)
369 {
370  libmesh_error_msg("No spatial derivatives in 0D!");
371  return 0.;
372 }
373 
374 
375 
376 template <>
378  const Elem *,
379  const unsigned int,
380  const unsigned int,
381  const Point &,
382  const bool)
383 {
384  libmesh_error_msg("No spatial derivatives in 0D!");
385  return 0.;
386 }
387 
388 #endif // LIBMESH_ENABLE_SECOND_DERIVATIVES
389 
390 } // namespace libMesh
class FEType hides (possibly multiple) FEFamily and approximation orders, thereby enabling specialize...
Definition: fe_type.h:196
ElemType
Defines an enum for geometric element types.
Order
defines an enum for polynomial orders.
Definition: enum_order.h:40
static OutputShape shape(const ElemType t, const Order o, const unsigned int i, const Point &p)
This is the base class from which all geometric element types are derived.
Definition: elem.h:94
static OutputShape shape_deriv(const ElemType t, const Order o, const unsigned int i, const unsigned int j, const Point &p)
The libMesh namespace provides an interface to certain functionality in the library.
LIBMESH_DEFAULT_VECTORIZED_FE(template<>Real FE< 0, BERNSTEIN)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
A Point defines a location in LIBMESH_DIM dimensional Real space.
Definition: point.h:39
static OutputShape shape_second_deriv(const ElemType t, const Order o, const unsigned int i, const unsigned int j, const Point &p)