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 :
20 : // Local includes
21 : #include "libmesh/libmesh_config.h"
22 :
23 : #ifdef LIBMESH_ENABLE_HIGHER_ORDER_SHAPES
24 :
25 : #include "libmesh/fe.h"
26 :
27 :
28 : namespace libMesh
29 : {
30 :
31 :
32 0 : LIBMESH_DEFAULT_VECTORIZED_FE(3,SZABAB)
33 :
34 :
35 : template <>
36 0 : Real FE<3,SZABAB>::shape(const ElemType,
37 : const Order,
38 : const unsigned int,
39 : const Point &)
40 : {
41 0 : libmesh_error_msg("Szabo-Babuska polynomials are not defined in 3D");
42 : return 0.;
43 : }
44 :
45 :
46 :
47 : template <>
48 0 : Real FE<3,SZABAB>::shape(const Elem *,
49 : const Order,
50 : const unsigned int,
51 : const Point &,
52 : const bool)
53 : {
54 0 : libmesh_error_msg("Szabo-Babuska polynomials are not defined in 3D");
55 : return 0.;
56 : }
57 :
58 :
59 : template <>
60 0 : Real FE<3,SZABAB>::shape(const FEType,
61 : const Elem *,
62 : const unsigned int,
63 : const Point &,
64 : const bool)
65 : {
66 0 : libmesh_error_msg("Szabo-Babuska polynomials are not defined in 3D");
67 : return 0;
68 : }
69 :
70 :
71 : template <>
72 0 : Real FE<3,SZABAB>::shape_deriv(const ElemType,
73 : const Order,
74 : const unsigned int,
75 : const unsigned int,
76 : const Point &)
77 : {
78 0 : libmesh_error_msg("Szabo-Babuska polynomials are not defined in 3D");
79 : return 0.;
80 : }
81 :
82 :
83 :
84 : template <>
85 0 : Real FE<3,SZABAB>::shape_deriv(const Elem *,
86 : const Order,
87 : const unsigned int,
88 : const unsigned int,
89 : const Point &,
90 : const bool)
91 : {
92 0 : libmesh_error_msg("Szabo-Babuska polynomials are not defined in 3D");
93 : return 0.;
94 : }
95 :
96 :
97 : template <>
98 0 : Real FE<3,SZABAB>::shape_deriv(const FEType,
99 : const Elem *,
100 : const unsigned int,
101 : const unsigned int,
102 : const Point &,
103 : const bool)
104 : {
105 0 : libmesh_error_msg("Szabo-Babuska polynomials are not defined in 3D");
106 : return 0;
107 : }
108 :
109 :
110 : #ifdef LIBMESH_ENABLE_SECOND_DERIVATIVES
111 :
112 : template <>
113 0 : Real FE<3,SZABAB>::shape_second_deriv(const ElemType,
114 : const Order,
115 : const unsigned int,
116 : const unsigned int,
117 : const Point &)
118 : {
119 0 : libmesh_error_msg("Szabo-Babuska polynomials are not defined in 3D");
120 : return 0.;
121 : }
122 :
123 :
124 :
125 : template <>
126 0 : Real FE<3,SZABAB>::shape_second_deriv(const Elem *,
127 : const Order,
128 : const unsigned int,
129 : const unsigned int,
130 : const Point &,
131 : const bool)
132 : {
133 0 : libmesh_error_msg("Szabo-Babuska polynomials are not defined in 3D");
134 : return 0.;
135 : }
136 :
137 :
138 : template <>
139 0 : Real FE<3,SZABAB>::shape_second_deriv(const FEType,
140 : const Elem *,
141 : const unsigned int,
142 : const unsigned int,
143 : const Point &,
144 : const bool)
145 : {
146 : static bool warning_given = false;
147 :
148 0 : if (!warning_given)
149 0 : libMesh::err << "Second derivatives for Szabab elements "
150 0 : << " are not yet implemented!"
151 0 : << std::endl;
152 :
153 0 : warning_given = true;
154 0 : return 0.;
155 : }
156 :
157 : #endif
158 :
159 : } // namespace libMesh
160 :
161 : #endif //LIBMESH_ENABLE_HIGHER_ORDER_SHAPES
|