1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2020 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 // C++ includes
20
21 // Local includes
22 #include "libmesh/fe.h"
23 #include "libmesh/elem.h"
24
25
26 namespace libMesh
27 {
28
29
30 LIBMESH_DEFAULT_VECTORIZED_FE(0,RATIONAL_BERNSTEIN)
31
32
33 template <>
shape(const ElemType,const Order,const unsigned int libmesh_dbg_var (i),const Point &)34 Real FE<0,RATIONAL_BERNSTEIN>::shape(const ElemType,
35 const Order,
36 const unsigned int libmesh_dbg_var(i),
37 const Point &)
38 {
39 libmesh_assert_less (i, 1);
40 return 1.;
41 }
42
43
44
45 template <>
shape(const Elem *,const Order,const unsigned int libmesh_dbg_var (i),const Point &,const bool)46 Real FE<0,RATIONAL_BERNSTEIN>::shape(const Elem *,
47 const Order,
48 const unsigned int libmesh_dbg_var(i),
49 const Point &,
50 const bool)
51 {
52 libmesh_assert_less (i, 1);
53 return 1.;
54 }
55
56 template <>
shape(const FEType,const Elem *,const unsigned int libmesh_dbg_var (i),const Point &,const bool)57 Real FE<0,RATIONAL_BERNSTEIN>::shape(const FEType,
58 const Elem *,
59 const unsigned int libmesh_dbg_var(i),
60 const Point &,
61 const bool)
62 {
63 libmesh_assert_less (i, 1);
64 return 1.;
65 }
66
67
68 template <>
shape_deriv(const ElemType,const Order,const unsigned int,const unsigned int,const Point &)69 Real FE<0,RATIONAL_BERNSTEIN>::shape_deriv(const ElemType,
70 const Order,
71 const unsigned int,
72 const unsigned int,
73 const Point &)
74 {
75 libmesh_error_msg("No spatial derivatives in 0D!");
76 return 0.;
77 }
78
79
80
81 template <>
shape_deriv(const Elem *,const Order,const unsigned int,const unsigned int,const Point &,const bool)82 Real FE<0,RATIONAL_BERNSTEIN>::shape_deriv(const Elem *,
83 const Order,
84 const unsigned int,
85 const unsigned int,
86 const Point &,
87 const bool)
88 {
89 libmesh_error_msg("No spatial derivatives in 0D!");
90 return 0.;
91 }
92
93
94
95 template <>
shape_deriv(const FEType,const Elem *,const unsigned int,const unsigned int,const Point &,const bool)96 Real FE<0,RATIONAL_BERNSTEIN>::shape_deriv(const FEType,
97 const Elem *,
98 const unsigned int,
99 const unsigned int,
100 const Point &,
101 const bool)
102 {
103 libmesh_error_msg("No spatial derivatives in 0D!");
104 return 0.;
105 }
106
107
108 #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES
109
110 template <>
shape_second_deriv(const ElemType,const Order,const unsigned int,const unsigned int,const Point &)111 Real FE<0,RATIONAL_BERNSTEIN>::shape_second_deriv(const ElemType,
112 const Order,
113 const unsigned int,
114 const unsigned int,
115 const Point &)
116 {
117 libmesh_error_msg("No spatial derivatives in 0D!");
118 return 0.;
119 }
120
121
122
123 template <>
shape_second_deriv(const Elem *,const Order,const unsigned int,const unsigned int,const Point &,const bool)124 Real FE<0,RATIONAL_BERNSTEIN>::shape_second_deriv(const Elem *,
125 const Order,
126 const unsigned int,
127 const unsigned int,
128 const Point &,
129 const bool)
130 {
131 libmesh_error_msg("No spatial derivatives in 0D!");
132 return 0.;
133 }
134
135
136
137 template <>
shape_second_deriv(const FEType,const Elem *,const unsigned int,const unsigned int,const Point &,const bool)138 Real FE<0,RATIONAL_BERNSTEIN>::shape_second_deriv(const FEType,
139 const Elem *,
140 const unsigned int,
141 const unsigned int,
142 const Point &,
143 const bool)
144 {
145 libmesh_error_msg("No spatial derivatives in 0D!");
146 return 0.;
147 }
148
149
150 #endif
151
152 } // namespace libMesh
153