Line data Source code
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 : // 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 391392 : LIBMESH_DEFAULT_VECTORIZED_FE(0,RATIONAL_BERNSTEIN)
31 :
32 :
33 : template <>
34 0 : Real FE<0,RATIONAL_BERNSTEIN>::shape(const ElemType,
35 : const Order,
36 : const unsigned int libmesh_dbg_var(i),
37 : const Point &)
38 : {
39 0 : libmesh_assert_less (i, 1);
40 0 : return 1.;
41 : }
42 :
43 :
44 :
45 : template <>
46 195696 : 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 18792 : libmesh_assert_less (i, 1);
53 195696 : return 1.;
54 : }
55 :
56 : template <>
57 35994 : 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 3186 : libmesh_assert_less (i, 1);
64 35994 : return 1.;
65 : }
66 :
67 :
68 : template <>
69 0 : 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 0 : libmesh_error_msg("No spatial derivatives in 0D!");
76 : return 0.;
77 : }
78 :
79 :
80 :
81 : template <>
82 0 : 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 0 : libmesh_error_msg("No spatial derivatives in 0D!");
90 : return 0.;
91 : }
92 :
93 :
94 :
95 : template <>
96 0 : 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 0 : libmesh_error_msg("No spatial derivatives in 0D!");
104 : return 0.;
105 : }
106 :
107 :
108 : #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES
109 :
110 : template <>
111 0 : 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 0 : libmesh_error_msg("No spatial derivatives in 0D!");
118 : return 0.;
119 : }
120 :
121 :
122 :
123 : template <>
124 0 : 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 0 : libmesh_error_msg("No spatial derivatives in 0D!");
132 : return 0.;
133 : }
134 :
135 :
136 :
137 : template <>
138 0 : 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 0 : libmesh_error_msg("No spatial derivatives in 0D!");
146 : return 0.;
147 : }
148 :
149 :
150 : #endif
151 :
152 : } // namespace libMesh
|