1 #ifndef INTREPID_HGRAD_HEX_C2_FEMDEF_HPP 2 #define INTREPID_HGRAD_HEX_C2_FEMDEF_HPP 54 template<
class Scalar,
class ArrayScalar>
57 this -> basisCardinality_ = 27;
58 this -> basisDegree_ = 2;
59 this -> basisCellTopology_ = shards::CellTopology(shards::getCellTopologyData<shards::Hexahedron<8> >() );
60 this -> basisType_ = BASIS_FEM_DEFAULT;
61 this -> basisCoordinates_ = COORDINATES_CARTESIAN;
62 this -> basisTagsAreSet_ =
false;
67 template<
class Scalar,
class ArrayScalar>
77 int tags[] = { 0, 0, 0, 1,
108 this -> ordinalToTag_,
110 this -> basisCardinality_,
119 template<
class Scalar,
class ArrayScalar>
121 const ArrayScalar & inputPoints,
125 #ifdef HAVE_INTREPID_DEBUG 126 Intrepid::getValues_HGRAD_Args<Scalar, ArrayScalar>(outputValues,
129 this -> getBaseCellTopology(),
130 this -> getCardinality() );
134 int dim0 = inputPoints.dimension(0);
141 switch (operatorType) {
144 for (
int i0 = 0; i0 < dim0; i0++) {
145 x = inputPoints(i0, 0);
146 y = inputPoints(i0, 1);
147 z = inputPoints(i0, 2);
150 outputValues( 0, i0) = 0.125*(-1. + x)*x*(-1. + y)*y*(-1. + z)*z;
151 outputValues( 1, i0) = 0.125*x*(1.+ x)*(-1. + y)*y*(-1. + z)*z;
152 outputValues( 2, i0) = 0.125*x*(1.+ x)*y*(1.+ y)*(-1. + z)*z;
153 outputValues( 3, i0) = 0.125*(-1. + x)*x*y*(1.+ y)*(-1. + z)*z;
154 outputValues( 4, i0) = 0.125*(-1. + x)*x*(-1. + y)*y*z*(1.+ z);
155 outputValues( 5, i0) = 0.125*x*(1.+ x)*(-1. + y)*y*z*(1.+ z);
156 outputValues( 6, i0) = 0.125*x*(1.+ x)*y*(1.+ y)*z*(1.+ z);
157 outputValues( 7, i0) = 0.125*(-1. + x)*x*y*(1.+ y)*z*(1.+ z);
158 outputValues( 8, i0) = 0.25*(1. - x)*(1. + x)*(-1. + y)*y*(-1. + z)*z;
159 outputValues( 9, i0) = 0.25*x*(1.+ x)*(1. - y)*(1. + y)*(-1. + z)*z;
160 outputValues(10, i0) = 0.25*(1. - x)*(1. + x)*y*(1.+ y)*(-1. + z)*z;
161 outputValues(11, i0) = 0.25*(-1. + x)*x*(1. - y)*(1. + y)*(-1. + z)*z;
162 outputValues(12, i0) = 0.25*(-1. + x)*x*(-1. + y)*y*(1. - z)*(1. + z);
163 outputValues(13, i0) = 0.25*x*(1.+ x)*(-1. + y)*y*(1. - z)*(1. + z);
164 outputValues(14, i0) = 0.25*x*(1.+ x)*y*(1.+ y)*(1. - z)*(1. + z);
165 outputValues(15, i0) = 0.25*(-1. + x)*x*y*(1.+ y)*(1. - z)*(1. + z);
166 outputValues(16, i0) = 0.25*(1. - x)*(1. + x)*(-1. + y)*y*z*(1.+ z);
167 outputValues(17, i0) = 0.25*x*(1.+ x)*(1. - y)*(1. + y)*z*(1.+ z);
168 outputValues(18, i0) = 0.25*(1. - x)*(1. + x)*y*(1.+ y)*z*(1.+ z);
169 outputValues(19, i0) = 0.25*(-1. + x)*x*(1. - y)*(1. + y)*z*(1.+ z);
170 outputValues(20, i0) = (1. - x)*(1. + x)*(1. - y)*(1. + y)*(1. - z)*(1. + z);
171 outputValues(21, i0) = 0.5*(1. - x)*(1. + x)*(1. - y)*(1. + y)*(-1. + z)*z;
172 outputValues(22, i0) = 0.5*(1. - x)*(1. + x)*(1. - y)*(1. + y)*z*(1.+ z);
173 outputValues(23, i0) = 0.5*(-1. + x)*x*(1. - y)*(1. + y)*(1. - z)*(1. + z);
174 outputValues(24, i0) = 0.5*x*(1.+ x)*(1. - y)*(1. + y)*(1. - z)*(1. + z);
175 outputValues(25, i0) = 0.5*(1. - x)*(1. + x)*(-1. + y)*y*(1. - z)*(1. + z);
176 outputValues(26, i0) = 0.5*(1. - x)*(1. + x)*y*(1.+ y)*(1. - z)*(1. + z);
182 for (
int i0 = 0; i0 < dim0; i0++) {
183 x = inputPoints(i0,0);
184 y = inputPoints(i0,1);
185 z = inputPoints(i0,2);
188 outputValues(0, i0, 0) = (-0.125 + 0.25*x)*(-1. + y)*y*(-1. + z)*z;
189 outputValues(0, i0, 1) = (-1. + x)*x*(-0.125 + 0.25*y)*(-1. + z)*z;
190 outputValues(0, i0, 2) = (-1. + x)*x*(-1. + y)*y*(-0.125 + 0.25*z);
192 outputValues(1, i0, 0) = (0.125 + 0.25*x)*(-1. + y)*y*(-1. + z)*z;
193 outputValues(1, i0, 1) = x*(1. + x)*(-0.125 + 0.25*y)*(-1. + z)*z;
194 outputValues(1, i0, 2) = x*(1. + x)*(-1. + y)*y*(-0.125 + 0.25*z);
196 outputValues(2, i0, 0) = (0.125 + 0.25*x)*y*(1. + y)*(-1. + z)*z;
197 outputValues(2, i0, 1) = x*(1. + x)*(0.125 + 0.25*y)*(-1. + z)*z;
198 outputValues(2, i0, 2) = x*(1. + x)*y*(1. + y)*(-0.125 + 0.25*z);
200 outputValues(3, i0, 0) = (-0.125 + 0.25*x)*y*(1. + y)*(-1. + z)*z;
201 outputValues(3, i0, 1) = (-1. + x)*x*(0.125 + 0.25*y)*(-1. + z)*z;
202 outputValues(3, i0, 2) = (-1. + x)*x*y*(1. + y)*(-0.125 + 0.25*z);
204 outputValues(4, i0, 0) = (-0.125 + 0.25*x)*(-1. + y)*y*z*(1. + z);
205 outputValues(4, i0, 1) = (-1. + x)*x*(-0.125 + 0.25*y)*z*(1. + z);
206 outputValues(4, i0, 2) = (-1. + x)*x*(-1. + y)*y*(0.125 + 0.25*z);
208 outputValues(5, i0, 0) = (0.125 + 0.25*x)*(-1. + y)*y*z*(1. + z);
209 outputValues(5, i0, 1) = x*(1. + x)*(-0.125 + 0.25*y)*z*(1. + z);
210 outputValues(5, i0, 2) = x*(1. + x)*(-1. + y)*y*(0.125 + 0.25*z);
212 outputValues(6, i0, 0) = (0.125 + 0.25*x)*y*(1. + y)*z*(1. + z);
213 outputValues(6, i0, 1) = x*(1. + x)*(0.125 + 0.25*y)*z*(1. + z);
214 outputValues(6, i0, 2) = x*(1. + x)*y*(1. + y)*(0.125 + 0.25*z);
216 outputValues(7, i0, 0) = (-0.125 + 0.25*x)*y*(1. + y)*z*(1. + z);
217 outputValues(7, i0, 1) = (-1. + x)*x*(0.125 + 0.25*y)*z*(1. + z);
218 outputValues(7, i0, 2) = (-1. + x)*x*y*(1. + y)*(0.125 + 0.25*z);
220 outputValues(8, i0, 0) = -0.5*x*(-1. + y)*y*(-1. + z)*z;
221 outputValues(8, i0, 1) = (1. - x)*(1. + x)*(-0.25 + 0.5*y)*(-1. + z)*z;
222 outputValues(8, i0, 2) = (1. - x)*(1. + x)*(-1. + y)*y*(-0.25 + 0.5*z);
224 outputValues(9, i0, 0) = (0.25 + 0.5*x)*(1. - y)*(1. + y)*(-1. + z)*z;
225 outputValues(9, i0, 1) = x*(1. + x)*(-0.5*y)*(-1. + z)*z;
226 outputValues(9, i0, 2) = x*(1. + x)*(1. - y)*(1. + y)*(-0.25 + 0.5*z);
228 outputValues(10,i0, 0) = -0.5*x*y*(1. + y)*(-1. + z)*z;
229 outputValues(10,i0, 1) = (1. - x)*(1. + x)*(0.25 + 0.5*y)*(-1. + z)*z;
230 outputValues(10,i0, 2) = (1. - x)*(1. + x)*y*(1. + y)*(-0.25 + 0.5*z);
232 outputValues(11,i0, 0) = (-0.25 + 0.5*x)*(1. - y)*(1. + y)*(-1. + z)*z;
233 outputValues(11,i0, 1) = (-1. + x)*x*(-0.5*y)*(-1. + z)*z;
234 outputValues(11,i0, 2) = (-1. + x)*x*(1. - y)*(1. + y)*(-0.25 + 0.5*z);
236 outputValues(12,i0, 0) = (-0.25 + 0.5*x)*(-1. + y)*y*(1. - z)*(1. + z);
237 outputValues(12,i0, 1) = (-1. + x)*x*(-0.25 + 0.5*y)*(1. - z)*(1. + z);
238 outputValues(12,i0, 2) = (-1. + x)*x*(-1. + y)*y*(-0.5*z);
240 outputValues(13,i0, 0) = (0.25 + 0.5*x)*(-1. + y)*y*(1. - z)*(1. + z);
241 outputValues(13,i0, 1) = x*(1. + x)*(-0.25 + 0.5*y)*(1. - z)*(1. + z);
242 outputValues(13,i0, 2) = x*(1. + x)*(-1. + y)*y*(-0.5*z);
244 outputValues(14,i0, 0) = (0.25 + 0.5*x)*y*(1. + y)*(1. - z)*(1. + z);
245 outputValues(14,i0, 1) = x*(1. + x)*(0.25 + 0.5*y)*(1. - z)*(1. + z);
246 outputValues(14,i0, 2) = x*(1. + x)*y*(1. + y)*(-0.5*z);
248 outputValues(15,i0, 0) = (-0.25 + 0.5*x)*y*(1. + y)*(1. - z)*(1. + z);
249 outputValues(15,i0, 1) = (-1. + x)*x*(0.25 + 0.5*y)*(1. - z)*(1. + z);
250 outputValues(15,i0, 2) = (-1. + x)*x*y*(1. + y)*(-0.5*z);
252 outputValues(16,i0, 0) = -0.5*x*(-1. + y)*y*z*(1. + z);
253 outputValues(16,i0, 1) = (1. - x)*(1. + x)*(-0.25 + 0.5*y)*z*(1. + z);
254 outputValues(16,i0, 2) = (1. - x)*(1. + x)*(-1. + y)*y*(0.25 + 0.5*z);
256 outputValues(17,i0, 0) = (0.25 + 0.5*x)*(1. - y)*(1. + y)*z*(1. + z);
257 outputValues(17,i0, 1) = x*(1. + x)*(-0.5*y)*z*(1. + z);
258 outputValues(17,i0, 2) = x*(1. + x)*(1. - y)*(1. + y)*(0.25 + 0.5*z);
260 outputValues(18,i0, 0) = -0.5*x*y*(1. + y)*z*(1. + z);
261 outputValues(18,i0, 1) = (1. - x)*(1. + x)*(0.25 + 0.5*y)*z*(1. + z);
262 outputValues(18,i0, 2) = (1. - x)*(1. + x)*y*(1. + y)*(0.25 + 0.5*z);
264 outputValues(19,i0, 0) = (-0.25 + 0.5*x)*(1. - y)*(1. + y)*z*(1. + z);
265 outputValues(19,i0, 1) = (-1. + x)*x*(-0.5*y)*z*(1. + z);
266 outputValues(19,i0, 2) = (-1. + x)*x*(1. - y)*(1. + y)*(0.25 + 0.5*z);
268 outputValues(20,i0, 0) = -2.*x*(1. - y)*(1. + y)*(1. - z)*(1. + z);
269 outputValues(20,i0, 1) = (1. - x)*(1. + x)*(-2.*y)*(1. - z)*(1. + z);
270 outputValues(20,i0, 2) = (1. - x)*(1. + x)*(1. - y)*(1. + y)*(-2.*z);
272 outputValues(21,i0, 0) = -x*(1. - y)*(1. + y)*(-1. + z)*z;
273 outputValues(21,i0, 1) = (1. - x)*(1. + x)*(-y)*(-1. + z)*z;
274 outputValues(21,i0, 2) = (1. - x)*(1. + x)*(1. - y)*(1. + y)*(-0.5 + z);
276 outputValues(22,i0, 0) = -x*(1. - y)*(1. + y)*z*(1. + z);
277 outputValues(22,i0, 1) = (1. - x)*(1. + x)*(-y)*z*(1. + z);
278 outputValues(22,i0, 2) = (1. - x)*(1. + x)*(1. - y)*(1. + y)*(0.5 + z);
280 outputValues(23,i0, 0) = (-0.5 + x)*(1. - y)*(1. + y)*(1. - z)*(1. + z);
281 outputValues(23,i0, 1) = (-1. + x)*x*(-y)*(1. - z)*(1. + z);
282 outputValues(23,i0, 2) = (-1. + x)*x*(1. - y)*(1. + y)*(-z);
284 outputValues(24,i0, 0) = (0.5 + x)*(1. - y)*(1. + y)*(1. - z)*(1. + z);
285 outputValues(24,i0, 1) = x*(1. + x)*(-y)*(1. - z)*(1. + z);
286 outputValues(24,i0, 2) = x*(1. + x)*(1. - y)*(1. + y)*(-z);
288 outputValues(25,i0, 0) = -x*(-1. + y)*y*(1. - z)*(1. + z);
289 outputValues(25,i0, 1) = (1. - x)*(1. + x)*(-0.5 + y)*(1. - z)*(1. + z);
290 outputValues(25,i0, 2) = (1. - x)*(1. + x)*(-1. + y)*y*(-z);
292 outputValues(26,i0, 0) = -x*y*(1. + y)*(1. - z)*(1. + z);
293 outputValues(26,i0, 1) = (1. - x)*(1. + x)*(0.5 + y)*(1. - z)*(1. + z);
294 outputValues(26,i0, 2) = (1. - x)*(1. + x)*y*(1. + y)*(-z);
299 TEUCHOS_TEST_FOR_EXCEPTION( (operatorType == OPERATOR_CURL), std::invalid_argument,
300 ">>> ERROR (Basis_HGRAD_HEX_C2_FEM): CURL is invalid operator for rank-0 (scalar) functions in 3D");
304 TEUCHOS_TEST_FOR_EXCEPTION( (operatorType == OPERATOR_DIV), std::invalid_argument,
305 ">>> ERROR (Basis_HGRAD_HEX_C2_FEM): DIV is invalid operator for rank-0 (scalar) functions in 3D");
309 for (
int i0 = 0; i0 < dim0; i0++) {
310 x = inputPoints(i0,0);
311 y = inputPoints(i0,1);
312 z = inputPoints(i0,2);
315 outputValues(0, i0, 0) = 0.25*(-1. + y)*y*(-1. + z)*z;
316 outputValues(0, i0, 1) = (-0.125 + y*(0.25 - 0.25*z) + x*(0.25 + y*(-0.5 + 0.5*z) - 0.25*z) + 0.125*z)*z;
317 outputValues(0, i0, 2) = y*(-0.125 + x*(0.25 + y*(-0.25 + 0.5*z) - 0.5*z) + y*(0.125 - 0.25*z) + 0.25*z);
318 outputValues(0, i0, 3) = 0.25*(-1. + x)*x*(-1. + z)*z;
319 outputValues(0, i0, 4) = x*(-0.125 + y*(0.25 - 0.5*z) + x*(0.125 + y*(-0.25 + 0.5*z) - 0.25*z) + 0.25*z);
320 outputValues(0, i0, 5) = 0.25*(-1. + x)*x*(-1. + y)*y;
322 outputValues(1, i0, 0) = 0.25*(-1. + y)*y*(-1. + z)*z;
323 outputValues(1, i0, 1) = (0.125 + x*(0.25 + y*(-0.5 + 0.5*z) - 0.25*z) + y*(-0.25 + 0.25*z) - 0.125*z)*z;
324 outputValues(1, i0, 2) = y*(0.125 + x*(0.25 + y*(-0.25 + 0.5*z) - 0.5*z) + y*(-0.125 + 0.25*z) - 0.25*z);
325 outputValues(1, i0, 3) = 0.25*x*(1 + x)*(-1. + z)*z;
326 outputValues(1, i0, 4) = x*(1. + x)*(0.125 + y*(-0.25 + 0.5*z) - 0.25*z);
327 outputValues(1, i0, 5) = 0.25*x*(1 + x)*(-1. + y)*y;
329 outputValues(2, i0, 0) = 0.25*y*(1 + y)*(-1. + z)*z;
330 outputValues(2, i0, 1) = (0.125 + x*(0.25 + 0.5*y) + 0.25*y)*(-1. + z)*z;
331 outputValues(2, i0, 2) = y*(1. + y)*(-0.125 + x*(-0.25 + 0.5*z) + 0.25*z);
332 outputValues(2, i0, 3) = 0.25*x*(1 + x)*(-1. + z)*z;
333 outputValues(2, i0, 4) = x*(1. + x)*(-0.125 + y*(-0.25 + 0.5*z) + 0.25*z);
334 outputValues(2, i0, 5) = 0.25*x*(1 + x)*y*(1 + y);
336 outputValues(3, i0, 0) = 0.25*y*(1 + y)*(-1. + z)*z;
337 outputValues(3, i0, 1) = (0.125 + y*(0.25 - 0.25*z) + x*(-0.25 + y*(-0.5 + 0.5*z) + 0.25*z) - 0.125*z)*z;
338 outputValues(3, i0, 2) = y*(1. + y)*(0.125 + x*(-0.25 + 0.5*z) - 0.25*z);
339 outputValues(3, i0, 3) = 0.25*(-1. + x)*x*(-1. + z)*z;
340 outputValues(3, i0, 4) = x*(0.125 + y*(0.25 - 0.5*z) + x*(-0.125 + y*(-0.25 + 0.5*z) + 0.25*z) - 0.25*z);
341 outputValues(3, i0, 5) = 0.25*(-1. + x)*x*y*(1 + y);
343 outputValues(4, i0, 0) = 0.25*(-1. + y)*y*z*(1 + z);
344 outputValues(4, i0, 1) = (0.125 + x*(-0.25 + 0.5*y) - 0.25*y)*z*(1. + z);
345 outputValues(4, i0, 2) = y*(0.125 + x*(-0.25 + y*(0.25 + 0.5*z) - 0.5*z) + y*(-0.125 - 0.25*z) + 0.25*z);
346 outputValues(4, i0, 3) = 0.25*(-1. + x)*x*z*(1 + z);
347 outputValues(4, i0, 4) = x*(0.125 + y*(-0.25 - 0.5*z) + x*(-0.125 + y*(0.25 + 0.5*z) - 0.25*z) + 0.25*z);
348 outputValues(4, i0, 5) = 0.25*(-1. + x)*x*(-1. + y)*y;
350 outputValues(5, i0, 0) = 0.25*(-1. + y)*y*z*(1 + z);
351 outputValues(5, i0, 1) = (-0.125 + x*(-0.25 + 0.5*y) + 0.25*y)*z*(1. + z);
352 outputValues(5, i0, 2) = (-1. + y)*y*(0.125 + x*(0.25 + 0.5*z) + 0.25*z);
353 outputValues(5, i0, 3) = 0.25*x*(1 + x)*z*(1 + z);
354 outputValues(5, i0, 4) = x*(1. + x)*(-0.125 + y*(0.25 + 0.5*z) - 0.25*z);
355 outputValues(5, i0, 5) = 0.25*x*(1 + x)*(-1. + y)*y;
357 outputValues(6, i0, 0) = 0.25*y*(1 + y)*z*(1 + z);
358 outputValues(6, i0, 1) = (0.125 + x*(0.25 + 0.5*y) + 0.25*y)*z*(1. + z);
359 outputValues(6, i0, 2) = y*(1. + y)*(0.125 + x*(0.25 + 0.5*z) + 0.25*z);
360 outputValues(6, i0, 3) = 0.25*x*(1 + x)*z*(1 + z);
361 outputValues(6, i0, 4) = x*(1. + x)*(0.125 + y*(0.25 + 0.5*z) + 0.25*z);
362 outputValues(6, i0, 5) = 0.25*x*(1 + x)*y*(1 + y);
364 outputValues(7, i0, 0) = 0.25*y*(1 + y)*z*(1 + z);
365 outputValues(7, i0, 1) = (-0.125 + x*(0.25 + 0.5*y) - 0.25*y)*z*(1. + z);
366 outputValues(7, i0, 2) = y*(1. + y)*(-0.125 + x*(0.25 + 0.5*z) - 0.25*z);
367 outputValues(7, i0, 3) = 0.25*(-1. + x)*x*z*(1 + z);
368 outputValues(7, i0, 4) = (-1. + x)*x*(0.125 + y*(0.25 + 0.5*z) + 0.25*z);
369 outputValues(7, i0, 5) = 0.25*(-1. + x)*x*y*(1 + y);
371 outputValues(8, i0, 0) = -0.5*(-1. + y)*y*(-1. + z)*z;
372 outputValues(8, i0, 1) = (0. + x*(-0.5 + y))*z + (x*(0.5 - y) )*(z*z);
373 outputValues(8, i0, 2) = (y*y)*(x*(0.5 - z) ) + y*(x*(-0.5 + z));
374 outputValues(8, i0, 3) = 0.5*(1. - x)*(1. + x)*(-1. + z)*z;
375 outputValues(8, i0, 4) = 0.25 + (x*x)*(-0.25 + y*(0.5 - z) + 0.5*z) - 0.5*z + y*(-0.5 + z);
376 outputValues(8, i0, 5) = 0.5*(1. - x)*(1. + x)*(-1. + y)*y;
378 outputValues(9, i0, 0) = 0.5*(1. - y)*(1. + y)*(-1. + z)*z;
379 outputValues(9, i0, 1) = (0.5*y + x*(y))*z + (x*(-y) - 0.5*y)*(z*z);
380 outputValues(9, i0, 2) = -0.25 + (y*y)*(0.25 - 0.5*z) + 0.5*z + x*(-0.5 + (y*y)*(0.5 - z) + z);
381 outputValues(9, i0, 3) = -0.5*x*(1 + x)*(-1. + z)*z;
382 outputValues(9, i0, 4) = x*(y*(0.5 - z) ) + (x*x)*(y*(0.5 - z) );
383 outputValues(9, i0, 5) = 0.5*x*(1 + x)*(1. - y)*(1. + y);
385 outputValues(10,i0, 0) = -0.5*y*(1 + y)*(-1. + z)*z;
386 outputValues(10,i0, 1) = (0. + x*(0.5 + y))*z + (x*(-0.5 - y) )*(z*z);
387 outputValues(10,i0, 2) = y*(x*(0.5 - z) ) + (y*y)*(x*(0.5 - z) );
388 outputValues(10,i0, 3) = 0.5*(1. - x)*(1. + x)*(-1. + z)*z;
389 outputValues(10,i0, 4) = -0.25 + (x*x)*(0.25 + y*(0.5 - z) - 0.5*z) + 0.5*z + y*(-0.5 + z);
390 outputValues(10,i0, 5) = 0.5*(1. - x)*(1. + x)*y*(1 + y);
392 outputValues(11,i0, 0) = 0.5*(1. - y)*(1. + y)*(-1. + z)*z;
393 outputValues(11,i0, 1) = (-0.5*y + x*(y))*z + (x*(-y) + 0.5*y)*(z*z);
394 outputValues(11,i0, 2) = 0.25 + (y*y)*(-0.25 + 0.5*z) - 0.5*z + x*(-0.5 + (y*y)*(0.5 - z) + z);
395 outputValues(11,i0, 3) = -0.5*(-1. + x)*x*(-1. + z)*z;
396 outputValues(11,i0, 4) = (x*x)*(y*(0.5 - z) ) + x*(y*(-0.5 + z));
397 outputValues(11,i0, 5) = 0.5*(-1. + x)*x*(1. - y)*(1. + y);
399 outputValues(12,i0, 0) = 0.5*(-1. + y)*y*(1. - z)*(1. + z);
400 outputValues(12,i0, 1) = 0.25 - 0.25*(z*z) + y*(-0.5 + 0.5*(z*z)) + x*(-0.5 + 0.5*(z*z) + y*(1. - (z*z)));
401 outputValues(12,i0, 2) = (y*y)*(x*(-z) + 0.5*z) + y*(-0.5*z + x*(z));
402 outputValues(12,i0, 3) = 0.5*(-1. + x)*x*(1. - z)*(1. + z);
403 outputValues(12,i0, 4) = (x*x)*(y*(-z) + 0.5*z) + x*(-0.5*z + y*(z));
404 outputValues(12,i0, 5) = -0.5*(-1. + x)*x*(-1. + y)*y;
406 outputValues(13,i0, 0) = 0.5*(-1. + y)*y*(1. - z)*(1. + z);
407 outputValues(13,i0, 1) = -0.25 + 0.25*(z*z) + y*(0.5 - 0.5*(z*z)) + x*(-0.5 + 0.5*(z*z) + y*(1. - (z*z)));
408 outputValues(13,i0, 2) = (y*y)*(x*(-z) - 0.5*z) + y*(0.5*z + x*(z));
409 outputValues(13,i0, 3) = 0.5*x*(1 + x)*(1. - z)*(1. + z);
410 outputValues(13,i0, 4) = x*(y*(-z) + 0.5*z) + (x*x)*(y*(-z) + 0.5*z);
411 outputValues(13,i0, 5) = -0.5*x*(1 + x)*(-1. + y)*y;
413 outputValues(14,i0, 0) = 0.5*y*(1 + y)*(1. - z)*(1. + z);
414 outputValues(14,i0, 1) = 0.25 - 0.25*(z*z) + y*(0.5 - 0.5*(z*z)) + x*(0.5 - 0.5*(z*z) + y*(1. - (z*z)));
415 outputValues(14,i0, 2) = y*(x*(-z) - 0.5*z) + (y*y)*(x*(-z) - 0.5*z);
416 outputValues(14,i0, 3) = 0.5*x*(1 + x)*(1. - z)*(1. + z);
417 outputValues(14,i0, 4) = x*(y*(-z) - 0.5*z) + (x*x)*(y*(-z) - 0.5*z);
418 outputValues(14,i0, 5) = -0.5*x*(1 + x)*y*(1 + y);
420 outputValues(15,i0, 0) = 0.5*y*(1 + y)*(1. - z)*(1. + z);
421 outputValues(15,i0, 1) = -0.25 + 0.25*(z*z) + y*(-0.5 + 0.5*(z*z)) + x*(0.5 - 0.5*(z*z) + y*(1. - (z*z)));
422 outputValues(15,i0, 2) = y*(x*(-z) + 0.5*z) + (y*y)*(x*(-z) + 0.5*z);
423 outputValues(15,i0, 3) = 0.5*(-1. + x)*x*(1. - z)*(1. + z);
424 outputValues(15,i0, 4) = (x*x)*(y*(-z) - 0.5*z) + x*(0.5*z + y*(z));
425 outputValues(15,i0, 5) = -0.5*(-1. + x)*x*y*(1 + y);
427 outputValues(16,i0, 0) = -0.5*(-1. + y)*y*z*(1 + z);
428 outputValues(16,i0, 1) = (x*(0.5 - y) )*z + (x*(0.5 - y) )*(z*z);
429 outputValues(16,i0, 2) = (y*y)*(x*(-0.5 - z) ) + y*(x*(0.5 + z));
430 outputValues(16,i0, 3) = 0.5*(1. - x)*(1. + x)*z*(1 + z);
431 outputValues(16,i0, 4) = -0.25 + (x*x)*(0.25 + y*(-0.5 - z) + 0.5*z) - 0.5*z + y*(0.5 + z);
432 outputValues(16,i0, 5) = 0.5*(1. - x)*(1. + x)*(-1. + y)*y;
434 outputValues(17,i0, 0) = 0.5*(1. - y)*(1. + y)*z*(1 + z);
435 outputValues(17,i0, 1) = (x*(-y) - 0.5*y)*z + (x*(-y) - 0.5*y)*(z*z);
436 outputValues(17,i0, 2) = 0.25 + (y*y)*(-0.25 - 0.5*z) + 0.5*z + x*(0.5 + (y*y)*(-0.5 - z) + z);
437 outputValues(17,i0, 3) = -0.5*x*(1 + x)*z*(1 + z);
438 outputValues(17,i0, 4) = x*(y*(-0.5 - z) ) + (x*x)*(y*(-0.5 - z) );
439 outputValues(17,i0, 5) = 0.5*x*(1 + x)*(1. - y)*(1. + y);
441 outputValues(18,i0, 0) = -0.5*y*(1 + y)*z*(1 + z);
442 outputValues(18,i0, 1) = (x*(-0.5 - y) )*z + (x*(-0.5 - y) )*(z*z);
443 outputValues(18,i0, 2) = y*(x*(-0.5 - z) ) + (y*y)*(x*(-0.5 - z) );
444 outputValues(18,i0, 3) = 0.5*(1. - x)*(1. + x)*z*(1 + z);
445 outputValues(18,i0, 4) = 0.25 + (x*x)*(-0.25 + y*(-0.5 - z) - 0.5*z) + 0.5*z + y*(0.5 + z);
446 outputValues(18,i0, 5) = 0.5*(1. - x)*(1. + x)*y*(1 + y);
448 outputValues(19,i0, 0) = 0.5*(1. - y)*(1. + y)*z*(1 + z);
449 outputValues(19,i0, 1) = (x*(-y) + 0.5*y)*z + (x*(-y) + 0.5*y)*(z*z);
450 outputValues(19,i0, 2) = -0.25 + (y*y)*(0.25 + 0.5*z) - 0.5*z + x*(0.5 + (y*y)*(-0.5 - z) + z);
451 outputValues(19,i0, 3) = -0.5*(-1. + x)*x*z*(1 + z);
452 outputValues(19,i0, 4) = (x*x)*(y*(-0.5 - z) ) + x*(y*(0.5 + z));
453 outputValues(19,i0, 5) = 0.5*(-1. + x)*x*(1. - y)*(1. + y);
455 outputValues(20,i0, 0) = -2.*(1. - y)*(1. + y)*(1. - z)*(1. + z);
456 outputValues(20,i0, 1) = -4.*x*y*(-1. + z*z);
457 outputValues(20,i0, 2) = x*((y*y)*(-4.*z) + 4.*z);
458 outputValues(20,i0, 3) = -2.*(1. - x)*(1. + x)*(1. - z)*(1. + z);
459 outputValues(20,i0, 4) = (x*x)*(y*(-4.*z) ) + y*(4.*z);
460 outputValues(20,i0, 5) = -2.*(1. - x)*(1. + x)*(1. - y)*(1. + y);
462 outputValues(21,i0, 0) = -(1. - y)*(1. + y)*(-1. + z)*z;
463 outputValues(21,i0, 1) = (x*(-2.*y) )*z + (0. + x*(2.*y))*(z*z);
464 outputValues(21,i0, 2) = x*(1. - 2.*z + (y*y)*(-1. + 2.*z));
465 outputValues(21,i0, 3) = -(1. - x)*(1. + x)*(-1. + z)*z;
466 outputValues(21,i0, 4) = y*(1. - 2.*z) + (x*x)*(y*(-1. + 2.*z));
467 outputValues(21,i0, 5) = (1. - x)*(1. + x)*(1. - y)*(1. + y);
469 outputValues(22,i0, 0) = -(1. - y)*(1. + y)*z*(1 + z);
470 outputValues(22,i0, 1) = (0. + x*(2.*y))*z + (0. + x*(2.*y))*(z*z);
471 outputValues(22,i0, 2) = x*(-1. - 2.*z + (y*y)*(1. + 2.*z));
472 outputValues(22,i0, 3) = -(1. - x)*(1. + x)*z*(1 + z);
473 outputValues(22,i0, 4) = y*(-1. - 2.*z) + (x*x)*(y*(1. + 2.*z));
474 outputValues(22,i0, 5) = (1. - x)*(1. + x)*(1. - y)*(1. + y);
476 outputValues(23,i0, 0) = (1. - y)*(1. + y)*(1. - z)*(1. + z);
477 outputValues(23,i0, 1) = (-1. + 2.*x)*y*(-1. + z*z);
478 outputValues(23,i0, 2) = (-1. + 2.*x)*(-1. + y*y)*z;
479 outputValues(23,i0, 3) =-(-1. + x)*x*(1. - z)*(1. + z);
480 outputValues(23,i0, 4) = 2.*(-1. + x)*x*y*z;
481 outputValues(23,i0, 5) =-(-1. + x)*x*(1. - y)*(1. + y);
483 outputValues(24,i0, 0) = (1. - y)*(1. + y)*(1. - z)*(1. + z);
484 outputValues(24,i0, 1) = (1. + 2.*x)*y*(-1. + z*z);
485 outputValues(24,i0, 2) = (1. + 2.*x)*(-1. + y*y)*z;
486 outputValues(24,i0, 3) = x*(1. + x)*(-1. + z)*(1. + z);
487 outputValues(24,i0, 4) = 2.*x*(1. + x)*y*z;
488 outputValues(24,i0, 5) = x*(1. + x)*(-1. + y)*(1. + y);
490 outputValues(25,i0, 0) = -(-1. + y)*y*(1. - z)*(1. + z);
491 outputValues(25,i0, 1) = x*(-1. + 2.*y)*(-1. + z*z);
492 outputValues(25,i0, 2) = 2.*x*(-1. + y)*y*z;
493 outputValues(25,i0, 3) = (1. - x)*(1. + x)*(1. - z)*(1. + z);
494 outputValues(25,i0, 4) = (-1. + x*x)*(-1. + 2.*y)*z;
495 outputValues(25,i0, 5) =-(1. - x)*(1. + x)*(-1. + y)*y;
497 outputValues(26,i0, 0) = y*(1. + y)*(-1. + z)*(1. + z);
498 outputValues(26,i0, 1) = x*(1. + 2.*y)*(-1. + z*z);
499 outputValues(26,i0, 2) = 2.*x*y*(1. + y)*z;
500 outputValues(26,i0, 3) = (-1. + x)*(1. + x)*(-1. + z)*(1. + z);
501 outputValues(26,i0, 4) = (-1. + x*x)*(1. + 2.*y)*z;
502 outputValues(26,i0, 5) = (-1. + x)*(1. + x)*y*(1. + y);
507 for (
int i0 = 0; i0 < dim0; i0++) {
508 x = inputPoints(i0,0);
509 y = inputPoints(i0,1);
510 z = inputPoints(i0,2);
512 outputValues(0,i0, 0) = 0.;
513 outputValues(0,i0, 1) = ((-1.+ 2.*y)*(-1.+ z)*z)/4.;
514 outputValues(0,i0, 2) = ((-1.+ y)*y*(-1.+ 2.*z))/4.;
515 outputValues(0,i0, 3) = ((-1.+ 2.*x)*(-1.+ z)*z)/4.;
516 outputValues(0,i0, 4) = ((-1.+ 2.*x)*(-1.+ 2.*y)*(-1.+ 2.*z))/8.;
517 outputValues(0,i0, 5) = ((-1.+ 2.*x)*(-1.+ y)*y)/4.;
518 outputValues(0,i0, 6) = 0.;
519 outputValues(0,i0, 7) = ((-1.+ x)*x*(-1.+ 2.*z))/4.;
520 outputValues(0,i0, 8) = ((-1.+ x)*x*(-1.+ 2.*y))/4.;
521 outputValues(0,i0, 9) = 0.;
523 outputValues(1, i0, 0) = 0.;
524 outputValues(1, i0, 1) = ((-1.+ 2.*y)*(-1.+ z)*z)/4.;
525 outputValues(1, i0, 2) = ((-1.+ y)*y*(-1.+ 2.*z))/4.;
526 outputValues(1, i0, 3) = ((1.+ 2.*x)*(-1.+ z)*z)/4.;
527 outputValues(1, i0, 4) = ((1.+ 2.*x)*(-1.+ 2.*y)*(-1.+ 2.*z))/8.;
528 outputValues(1, i0, 5) = ((1.+ 2.*x)*(-1.+ y)*y)/4.;
529 outputValues(1, i0, 6) = 0.;
530 outputValues(1, i0, 7) = (x*(1.+ x)*(-1.+ 2.*z))/4.;
531 outputValues(1, i0, 8) = (x*(1.+ x)*(-1.+ 2.*y))/4.;
532 outputValues(1, i0, 9) = 0.;
534 outputValues(2, i0, 0) = 0.;
535 outputValues(2, i0, 1) = ((1.+ 2.*y)*(-1.+ z)*z)/4.;
536 outputValues(2, i0, 2) = (y*(1.+ y)*(-1.+ 2.*z))/4.;
537 outputValues(2, i0, 3) = ((1.+ 2.*x)*(-1.+ z)*z)/4.;
538 outputValues(2, i0, 4) = ((1.+ 2.*x)*(1.+ 2.*y)*(-1.+ 2.*z))/8.;
539 outputValues(2, i0, 5) = ((1.+ 2.*x)*y*(1.+ y))/4.;
540 outputValues(2, i0, 6) = 0.;
541 outputValues(2, i0, 7) = (x*(1.+ x)*(-1.+ 2.*z))/4.;
542 outputValues(2, i0, 8) = (x*(1.+ x)*(1.+ 2.*y))/4.;
543 outputValues(2, i0, 9) = 0.;
545 outputValues(3, i0, 0) = 0.;
546 outputValues(3, i0, 1) = ((1.+ 2.*y)*(-1.+ z)*z)/4.;
547 outputValues(3, i0, 2) = (y*(1.+ y)*(-1.+ 2.*z))/4.;
548 outputValues(3, i0, 3) = ((-1.+ 2.*x)*(-1.+ z)*z)/4.;
549 outputValues(3, i0, 4) = ((-1.+ 2.*x)*(1.+ 2.*y)*(-1.+ 2.*z))/8.;
550 outputValues(3, i0, 5) = ((-1.+ 2.*x)*y*(1.+ y))/4.;
551 outputValues(3, i0, 6) = 0.;
552 outputValues(3, i0, 7) = ((-1.+ x)*x*(-1.+ 2.*z))/4.;
553 outputValues(3, i0, 8) = ((-1.+ x)*x*(1.+ 2.*y))/4.;
554 outputValues(3, i0, 9) = 0.;
556 outputValues(4, i0, 0) = 0.;
557 outputValues(4, i0, 1) = ((-1.+ 2.*y)*z*(1.+ z))/4.;
558 outputValues(4, i0, 2) = ((-1.+ y)*y*(1.+ 2.*z))/4.;
559 outputValues(4, i0, 3) = ((-1.+ 2.*x)*z*(1.+ z))/4.;
560 outputValues(4, i0, 4) = ((-1.+ 2.*x)*(-1.+ 2.*y)*(1.+ 2.*z))/8.;
561 outputValues(4, i0, 5) = ((-1.+ 2.*x)*(-1.+ y)*y)/4.;
562 outputValues(4, i0, 6) = 0.;
563 outputValues(4, i0, 7) = ((-1.+ x)*x*(1.+ 2.*z))/4.;
564 outputValues(4, i0, 8) = ((-1.+ x)*x*(-1.+ 2.*y))/4.;
565 outputValues(4, i0, 9) = 0.;
567 outputValues(5, i0, 0) = 0.;
568 outputValues(5, i0, 1) = ((-1.+ 2.*y)*z*(1.+ z))/4.;
569 outputValues(5, i0, 2) = ((-1.+ y)*y*(1.+ 2.*z))/4.;
570 outputValues(5, i0, 3) = ((1.+ 2.*x)*z*(1.+ z))/4.;
571 outputValues(5, i0, 4) = ((1.+ 2.*x)*(-1.+ 2.*y)*(1.+ 2.*z))/8.;
572 outputValues(5, i0, 5) = ((1.+ 2.*x)*(-1.+ y)*y)/4.;
573 outputValues(5, i0, 6) = 0.;
574 outputValues(5, i0, 7) = (x*(1.+ x)*(1.+ 2.*z))/4.;
575 outputValues(5, i0, 8) = (x*(1.+ x)*(-1.+ 2.*y))/4.;
576 outputValues(5, i0, 9) = 0.;
578 outputValues(6, i0, 0) = 0.;
579 outputValues(6, i0, 1) = ((1.+ 2.*y)*z*(1.+ z))/4.;
580 outputValues(6, i0, 2) = (y*(1.+ y)*(1.+ 2.*z))/4.;
581 outputValues(6, i0, 3) = ((1.+ 2.*x)*z*(1.+ z))/4.;
582 outputValues(6, i0, 4) = ((1.+ 2.*x)*(1.+ 2.*y)*(1.+ 2.*z))/8.;
583 outputValues(6, i0, 5) = ((1.+ 2.*x)*y*(1.+ y))/4.;
584 outputValues(6, i0, 6) = 0.;
585 outputValues(6, i0, 7) = (x*(1.+ x)*(1.+ 2.*z))/4.;
586 outputValues(6, i0, 8) = (x*(1.+ x)*(1.+ 2.*y))/4.;
587 outputValues(6, i0, 9) = 0.;
589 outputValues(7, i0, 0) = 0.;
590 outputValues(7, i0, 1) = ((1.+ 2.*y)*z*(1.+ z))/4.;
591 outputValues(7, i0, 2) = (y*(1.+ y)*(1.+ 2.*z))/4.;
592 outputValues(7, i0, 3) = ((-1.+ 2.*x)*z*(1.+ z))/4.;
593 outputValues(7, i0, 4) = ((-1.+ 2.*x)*(1.+ 2.*y)*(1.+ 2.*z))/8.;
594 outputValues(7, i0, 5) = ((-1.+ 2.*x)*y*(1.+ y))/4.;
595 outputValues(7, i0, 6) = 0.;
596 outputValues(7, i0, 7) = ((-1.+ x)*x*(1.+ 2.*z))/4.;
597 outputValues(7, i0, 8) = ((-1.+ x)*x*(1.+ 2.*y))/4.;
598 outputValues(7, i0, 9) = 0.;
600 outputValues(8, i0, 0) = 0.;
601 outputValues(8, i0, 1) = -((-1.+ 2.*y)*(-1.+ z)*z)/2.;
602 outputValues(8, i0, 2) = -((-1.+ y)*y*(-1.+ 2.*z))/2.;
603 outputValues(8, i0, 3) = -(x*(-1.+ z)*z);
604 outputValues(8, i0, 4) = -(x*(-1.+ 2.*y)*(-1.+ 2.*z))/2.;
605 outputValues(8, i0, 5) = -(x*(-1.+ y)*y);
606 outputValues(8, i0, 6) = 0.;
607 outputValues(8, i0, 7) = -((-1.+ (x*x))*(-1.+ 2.*z))/2.;
608 outputValues(8, i0, 8) = -((-1.+ (x*x))*(-1.+ 2.*y))/2.;
609 outputValues(8, i0, 9) = 0.;
611 outputValues(9, i0, 0) = 0.;
612 outputValues(9, i0, 1) = -(y*(-1.+ z)*z);
613 outputValues(9, i0, 2) = -((-1.+ (y*y))*(-1.+ 2.*z))/2.;
614 outputValues(9, i0, 3) = -((1.+ 2.*x)*(-1.+ z)*z)/2.;
615 outputValues(9, i0, 4) = -((1.+ 2.*x)*y*(-1.+ 2.*z))/2.;
616 outputValues(9, i0, 5) = -((1.+ 2.*x)*(-1.+ (y*y)))/2.;
617 outputValues(9, i0, 6) = 0.;
618 outputValues(9, i0, 7) = -(x*(1.+ x)*(-1.+ 2.*z))/2.;
619 outputValues(9, i0, 8) = -(x*(1.+ x)*y);
620 outputValues(9, i0, 9) = 0.;
622 outputValues(10,i0, 0) = 0.;
623 outputValues(10,i0, 1) = -((1.+ 2.*y)*(-1.+ z)*z)/2.;
624 outputValues(10,i0, 2) = -(y*(1.+ y)*(-1.+ 2.*z))/2.;
625 outputValues(10,i0, 3) = -(x*(-1.+ z)*z);
626 outputValues(10,i0, 4) = -(x*(1.+ 2.*y)*(-1.+ 2.*z))/2.;
627 outputValues(10,i0, 5) = -(x*y*(1.+ y));
628 outputValues(10,i0, 6) = 0.;
629 outputValues(10,i0, 7) = -((-1.+ (x*x))*(-1.+ 2.*z))/2.;
630 outputValues(10,i0, 8) = -((-1.+ (x*x))*(1.+ 2.*y))/2.;
631 outputValues(10,i0, 9) = 0.;
633 outputValues(11,i0, 0) = 0.;
634 outputValues(11,i0, 1) = -(y*(-1.+ z)*z);
635 outputValues(11,i0, 2) = -((-1.+ (y*y))*(-1.+ 2.*z))/2.;
636 outputValues(11,i0, 3) = -((-1.+ 2.*x)*(-1.+ z)*z)/2.;
637 outputValues(11,i0, 4) = -((-1.+ 2.*x)*y*(-1.+ 2.*z))/2.;
638 outputValues(11,i0, 5) = -((-1.+ 2.*x)*(-1.+ (y*y)))/2.;
639 outputValues(11,i0, 6) = 0.;
640 outputValues(11,i0, 7) = -((-1.+ x)*x*(-1.+ 2.*z))/2.;
641 outputValues(11,i0, 8) = -((-1.+ x)*x*y);
642 outputValues(11,i0, 9) = 0.;
644 outputValues(12,i0, 0) = 0.;
645 outputValues(12,i0, 1) = -((-1.+ 2.*y)*(-1.+ (z*z)))/2.;
646 outputValues(12,i0, 2) = -((-1.+ y)*y*z);
647 outputValues(12,i0, 3) = -((-1.+ 2.*x)*(-1.+ (z*z)))/2.;
648 outputValues(12,i0, 4) = -((-1.+ 2.*x)*(-1.+ 2.*y)*z)/2.;
649 outputValues(12,i0, 5) = -((-1.+ 2.*x)*(-1.+ y)*y)/2.;
650 outputValues(12,i0, 6) = 0.;
651 outputValues(12,i0, 7) = -((-1.+ x)*x*z);
652 outputValues(12,i0, 8) = -((-1.+ x)*x*(-1.+ 2.*y))/2.;
653 outputValues(12,i0, 9) = 0.;
655 outputValues(13,i0, 0) = 0.;
656 outputValues(13,i0, 1) = -((-1.+ 2.*y)*(-1.+ (z*z)))/2.;
657 outputValues(13,i0, 2) = -((-1.+ y)*y*z);
658 outputValues(13,i0, 3) = -((1.+ 2.*x)*(-1.+ (z*z)))/2.;
659 outputValues(13,i0, 4) = -((1.+ 2.*x)*(-1.+ 2.*y)*z)/2.;
660 outputValues(13,i0, 5) = -((1.+ 2.*x)*(-1.+ y)*y)/2.;
661 outputValues(13,i0, 6) = 0.;
662 outputValues(13,i0, 7) = -(x*(1.+ x)*z);
663 outputValues(13,i0, 8) = -(x*(1.+ x)*(-1.+ 2.*y))/2.;
664 outputValues(13,i0, 9) = 0.;
666 outputValues(14,i0, 0) = 0.;
667 outputValues(14,i0, 1) = -((1.+ 2.*y)*(-1.+ (z*z)))/2.;
668 outputValues(14,i0, 2) = -(y*(1.+ y)*z);
669 outputValues(14,i0, 3) = -((1.+ 2.*x)*(-1.+ (z*z)))/2.;
670 outputValues(14,i0, 4) = -((1.+ 2.*x)*(1.+ 2.*y)*z)/2.;
671 outputValues(14,i0, 5) = -((1.+ 2.*x)*y*(1.+ y))/2.;
672 outputValues(14,i0, 6) = 0.;
673 outputValues(14,i0, 7) = -(x*(1.+ x)*z);
674 outputValues(14,i0, 8) = -(x*(1.+ x)*(1.+ 2.*y))/2.;
675 outputValues(14,i0, 9) = 0.;
677 outputValues(15,i0, 0) = 0.;
678 outputValues(15,i0, 1) = -((1.+ 2.*y)*(-1.+ (z*z)))/2.;
679 outputValues(15,i0, 2) = -(y*(1.+ y)*z);
680 outputValues(15,i0, 3) = -((-1.+ 2.*x)*(-1.+ (z*z)))/2.;
681 outputValues(15,i0, 4) = -((-1.+ 2.*x)*(1.+ 2.*y)*z)/2.;
682 outputValues(15,i0, 5) = -((-1.+ 2.*x)*y*(1.+ y))/2.;
683 outputValues(15,i0, 6) = 0.;
684 outputValues(15,i0, 7) = -((-1.+ x)*x*z);
685 outputValues(15,i0, 8) = -((-1.+ x)*x*(1.+ 2.*y))/2.;
686 outputValues(15,i0, 9) = 0.;
688 outputValues(16,i0, 0) = 0.;
689 outputValues(16,i0, 1) = -((-1.+ 2.*y)*z*(1.+ z))/2.;
690 outputValues(16,i0, 2) = -((-1.+ y)*y*(1.+ 2.*z))/2.;
691 outputValues(16,i0, 3) = -(x*z*(1.+ z));
692 outputValues(16,i0, 4) = -(x*(-1.+ 2.*y)*(1.+ 2.*z))/2.;
693 outputValues(16,i0, 5) = -(x*(-1.+ y)*y);
694 outputValues(16,i0, 6) = 0.;
695 outputValues(16,i0, 7) = -((-1.+ (x*x))*(1.+ 2.*z))/2.;
696 outputValues(16,i0, 8) = -((-1.+ (x*x))*(-1.+ 2.*y))/2.;
697 outputValues(16,i0, 9) = 0.;
699 outputValues(17,i0, 0) = 0.;
700 outputValues(17,i0, 1) = -(y*z*(1.+ z));
701 outputValues(17,i0, 2) = -((-1.+ (y*y))*(1.+ 2.*z))/2.;
702 outputValues(17,i0, 3) = -((1.+ 2.*x)*z*(1.+ z))/2.;
703 outputValues(17,i0, 4) = -((1.+ 2.*x)*y*(1.+ 2.*z))/2.;
704 outputValues(17,i0, 5) = -((1.+ 2.*x)*(-1.+ (y*y)))/2.;
705 outputValues(17,i0, 6) = 0.;
706 outputValues(17,i0, 7) = -(x*(1.+ x)*(1.+ 2.*z))/2.;
707 outputValues(17,i0, 8) = -(x*(1.+ x)*y);
708 outputValues(17,i0, 9) = 0.;
710 outputValues(18,i0, 0) = 0.;
711 outputValues(18,i0, 1) = -((1.+ 2.*y)*z*(1.+ z))/2.;
712 outputValues(18,i0, 2) = -(y*(1.+ y)*(1.+ 2.*z))/2.;
713 outputValues(18,i0, 3) = -(x*z*(1.+ z));
714 outputValues(18,i0, 4) = -(x*(1.+ 2.*y)*(1.+ 2.*z))/2.;
715 outputValues(18,i0, 5) = -(x*y*(1.+ y));
716 outputValues(18,i0, 6) = 0.;
717 outputValues(18,i0, 7) = -((-1.+ (x*x))*(1.+ 2.*z))/2.;
718 outputValues(18,i0, 8) = -((-1.+ (x*x))*(1.+ 2.*y))/2.;
719 outputValues(18,i0, 9) = 0.;
721 outputValues(19,i0, 0) = 0.;
722 outputValues(19,i0, 1) = -(y*z*(1.+ z));
723 outputValues(19,i0, 2) = -((-1.+ (y*y))*(1.+ 2.*z))/2.;
724 outputValues(19,i0, 3) = -((-1.+ 2.*x)*z*(1.+ z))/2.;
725 outputValues(19,i0, 4) = -((-1.+ 2.*x)*y*(1.+ 2.*z))/2.;
726 outputValues(19,i0, 5) = -((-1.+ 2.*x)*(-1.+ (y*y)))/2.;
727 outputValues(19,i0, 6) = 0.;
728 outputValues(19,i0, 7) = -((-1.+ x)*x*(1.+ 2.*z))/2.;
729 outputValues(19,i0, 8) = -((-1.+ x)*x*y);
730 outputValues(19,i0, 9) = 0.;
732 outputValues(20,i0, 0) = 0.;
733 outputValues(20,i0, 1) = -4*y*(-1.+ (z*z));
734 outputValues(20,i0, 2) = -4*(-1.+ (y*y))*z;
735 outputValues(20,i0, 3) = -4*x*(-1.+ (z*z));
736 outputValues(20,i0, 4) = -8*x*y*z;
737 outputValues(20,i0, 5) = -4*x*(-1.+ (y*y));
738 outputValues(20,i0, 6) = 0.;
739 outputValues(20,i0, 7) = -4*(-1.+ (x*x))*z;
740 outputValues(20,i0, 8) = -4*(-1.+ (x*x))*y;
741 outputValues(20,i0, 9) = 0.;
743 outputValues(21,i0, 0) = 0.;
744 outputValues(21,i0, 1) = 2.*y*(-1.+ z)*z;
745 outputValues(21,i0, 2) = (-1.+ (y*y))*(-1.+ 2.*z);
746 outputValues(21,i0, 3) = 2.*x*(-1.+ z)*z;
747 outputValues(21,i0, 4) = 2.*x*y*(-1.+ 2.*z);
748 outputValues(21,i0, 5) = 2.*x*(-1.+ (y*y));
749 outputValues(21,i0, 6) = 0.;
750 outputValues(21,i0, 7) = (-1.+ (x*x))*(-1.+ 2.*z);
751 outputValues(21,i0, 8) = 2.*(-1.+ (x*x))*y;
752 outputValues(21,i0, 9) = 0.;
754 outputValues(22,i0, 0) = 0.;
755 outputValues(22,i0, 1) = 2.*y*z*(1.+ z);
756 outputValues(22,i0, 2) = (-1.+ (y*y))*(1.+ 2.*z);
757 outputValues(22,i0, 3) = 2.*x*z*(1.+ z);
758 outputValues(22,i0, 4) = 2.*x*y*(1.+ 2.*z);
759 outputValues(22,i0, 5) = 2.*x*(-1.+ (y*y));
760 outputValues(22,i0, 6) = 0.;
761 outputValues(22,i0, 7) = (-1.+ (x*x))*(1.+ 2.*z);
762 outputValues(22,i0, 8) = 2.*(-1.+ (x*x))*y;
763 outputValues(22,i0, 9) = 0.;
765 outputValues(23,i0, 0) = 0.;
766 outputValues(23,i0, 1) = 2.*y*(-1.+ (z*z));
767 outputValues(23,i0, 2) = 2.*(-1.+ (y*y))*z;
768 outputValues(23,i0, 3) = (-1.+ 2.*x)*(-1.+ (z*z));
769 outputValues(23,i0, 4) = 2.*(-1.+ 2.*x)*y*z;
770 outputValues(23,i0, 5) = (-1.+ 2.*x)*(-1.+ (y*y));
771 outputValues(23,i0, 6) = 0.;
772 outputValues(23,i0, 7) = 2.*(-1.+ x)*x*z;
773 outputValues(23,i0, 8) = 2.*(-1.+ x)*x*y;
774 outputValues(23,i0, 9) = 0.;
776 outputValues(24,i0, 0) = 0.;
777 outputValues(24,i0, 1) = 2.*y*(-1.+ (z*z));
778 outputValues(24,i0, 2) = 2.*(-1.+ (y*y))*z;
779 outputValues(24,i0, 3) = (1.+ 2.*x)*(-1.+ (z*z));
780 outputValues(24,i0, 4) = 2.*(1.+ 2.*x)*y*z;
781 outputValues(24,i0, 5) = (1.+ 2.*x)*(-1.+ (y*y));
782 outputValues(24,i0, 6) = 0.;
783 outputValues(24,i0, 7) = 2.*x*(1.+ x)*z;
784 outputValues(24,i0, 8) = 2.*x*(1.+ x)*y;
785 outputValues(24,i0, 9) = 0.;
787 outputValues(25,i0, 0) = 0.;
788 outputValues(25,i0, 1) = (-1.+ 2.*y)*(-1.+ (z*z));
789 outputValues(25,i0, 2) = 2.*(-1.+ y)*y*z;
790 outputValues(25,i0, 3) = 2.*x*(-1.+ (z*z));
791 outputValues(25,i0, 4) = 2.*x*(-1.+ 2.*y)*z;
792 outputValues(25,i0, 5) = 2.*x*(-1.+ y)*y;
793 outputValues(25,i0, 6) = 0.;
794 outputValues(25,i0, 7) = 2.*(-1.+ (x*x))*z;
795 outputValues(25,i0, 8) = (-1.+ (x*x))*(-1.+ 2.*y);
796 outputValues(25,i0, 9) = 0.;
798 outputValues(26,i0, 0) = 0.;
799 outputValues(26,i0, 1) = (1.+ 2.*y)*(-1.+ (z*z));
800 outputValues(26,i0, 2) = 2.*y*(1.+ y)*z;
801 outputValues(26,i0, 3) = 2.*x*(-1.+ (z*z));
802 outputValues(26,i0, 4) = 2.*x*(1.+ 2.*y)*z;
803 outputValues(26,i0, 5) = 2.*x*y*(1.+ y);
804 outputValues(26,i0, 6) = 0.;
805 outputValues(26,i0, 7) = 2.*(-1.+ (x*x))*z;
806 outputValues(26,i0, 8) = (-1.+ (x*x))*(1.+ 2.*y);
807 outputValues(26,i0, 9) = 0.;
816 for(
int dofOrd = 0; dofOrd <
this -> basisCardinality_; dofOrd++) {
817 for (
int i0 = 0; i0 < dim0; i0++) {
818 for(
int dkOrd = 0; dkOrd < DkCardinality; dkOrd++){
819 outputValues(dofOrd, i0, dkOrd) = 0.0;
824 for (
int i0 = 0; i0 < dim0; i0++) {
825 x = inputPoints(i0,0);
826 y = inputPoints(i0,1);
827 z = inputPoints(i0,2);
829 outputValues(0, i0, 3) = ((-1.+ z)*z)/2.;
830 outputValues(0, i0, 4) = ((-1.+ 2.*y)*(-1.+ 2.*z))/4.;
831 outputValues(0, i0, 5) = ((-1.+ y)*y)/2.;
832 outputValues(0, i0, 7) = ((-1.+ 2.*x)*(-1.+ 2.*z))/4.;
833 outputValues(0, i0, 8) = ((-1.+ 2.*x)*(-1.+ 2.*y))/4.;
834 outputValues(0, i0, 12)= ((-1.+ x)*x)/2.;
836 outputValues(1, i0, 3) = ((-1.+ z)*z)/2.;
837 outputValues(1, i0, 4) = ((-1.+ 2.*y)*(-1.+ 2.*z))/4.;
838 outputValues(1, i0, 5) = ((-1.+ y)*y)/2.;
839 outputValues(1, i0, 7) = ((1. + 2.*x)*(-1.+ 2.*z))/4.;
840 outputValues(1, i0, 8) = ((1. + 2.*x)*(-1.+ 2.*y))/4.;
841 outputValues(1, i0, 12)= (x*(1. + x))/2.;
843 outputValues(2, i0, 3) = ((-1.+ z)*z)/2.;
844 outputValues(2, i0, 4) = ((1. + 2.*y)*(-1.+ 2.*z))/4.;
845 outputValues(2, i0, 5) = (y*(1. + y))/2.;
846 outputValues(2, i0, 7) = ((1. + 2.*x)*(-1.+ 2.*z))/4.;
847 outputValues(2, i0, 8) = ((1. + 2.*x)*(1. + 2.*y))/4.;
848 outputValues(2, i0, 12)= (x*(1. + x))/2.;
850 outputValues(3, i0, 3) = ((-1.+ z)*z)/2.;
851 outputValues(3, i0, 4) = ((1. + 2.*y)*(-1.+ 2.*z))/4.;
852 outputValues(3, i0, 5) = (y*(1. + y))/2.;
853 outputValues(3, i0, 7) = ((-1.+ 2.*x)*(-1.+ 2.*z))/4.;
854 outputValues(3, i0, 8) = ((-1.+ 2.*x)*(1. + 2.*y))/4.;
855 outputValues(3, i0, 12)= ((-1.+ x)*x)/2.;
857 outputValues(4, i0, 3) = (z*(1. + z))/2.;
858 outputValues(4, i0, 4) = ((-1.+ 2.*y)*(1. + 2.*z))/4.;
859 outputValues(4, i0, 5) = ((-1.+ y)*y)/2.;
860 outputValues(4, i0, 7) = ((-1.+ 2.*x)*(1. + 2.*z))/4.;
861 outputValues(4, i0, 8) = ((-1.+ 2.*x)*(-1.+ 2.*y))/4.;
862 outputValues(4, i0, 12)= ((-1.+ x)*x)/2.;
864 outputValues(5, i0, 3) = (z*(1. + z))/2.;
865 outputValues(5, i0, 4) = ((-1.+ 2.*y)*(1. + 2.*z))/4.;
866 outputValues(5, i0, 5) = ((-1.+ y)*y)/2.;
867 outputValues(5, i0, 7) = ((1. + 2.*x)*(1. + 2.*z))/4.;
868 outputValues(5, i0, 8) = ((1. + 2.*x)*(-1.+ 2.*y))/4.;
869 outputValues(5, i0, 12)= (x*(1. + x))/2.;
871 outputValues(6, i0, 3) = (z*(1. + z))/2.;
872 outputValues(6, i0, 4) = ((1. + 2.*y)*(1. + 2.*z))/4.;
873 outputValues(6, i0, 5) = (y*(1. + y))/2.;
874 outputValues(6, i0, 7) = ((1. + 2.*x)*(1. + 2.*z))/4.;
875 outputValues(6, i0, 8) = ((1. + 2.*x)*(1. + 2.*y))/4.;
876 outputValues(6, i0, 12)= (x*(1. + x))/2.;
878 outputValues(7, i0, 3) = (z*(1. + z))/2.;
879 outputValues(7, i0, 4) = ((1. + 2.*y)*(1. + 2.*z))/4.;
880 outputValues(7, i0, 5) = (y*(1. + y))/2.;
881 outputValues(7, i0, 7) = ((-1.+ 2.*x)*(1. + 2.*z))/4.;
882 outputValues(7, i0, 8) = ((-1.+ 2.*x)*(1. + 2.*y))/4.;
883 outputValues(7, i0, 12)= ((-1.+ x)*x)/2.;
885 outputValues(8, i0, 3) = -((-1.+ z)*z);
886 outputValues(8, i0, 4) = -0.5 + y + z - 2.*y*z;
887 outputValues(8, i0, 5) = -((-1.+ y)*y);
888 outputValues(8, i0, 7) = x - 2.*x*z;
889 outputValues(8, i0, 8) = x - 2.*x*y;
890 outputValues(8, i0, 12)= 1. - x*x;
892 outputValues(9, i0, 3) = -((-1.+ z)*z);
893 outputValues(9, i0, 4) = y - 2.*y*z;
894 outputValues(9, i0, 5) = 1 - y*y;
895 outputValues(9, i0, 7) = 0.5 + x - z - 2.*x*z;
896 outputValues(9, i0, 8) = -((1. + 2.*x)*y);
897 outputValues(9, i0, 12)= -(x*(1. + x));
899 outputValues(10,i0, 3) = -((-1.+ z)*z);
900 outputValues(10,i0, 4) = 0.5 + y - z - 2.*y*z;
901 outputValues(10,i0, 5) = -(y*(1. + y));
902 outputValues(10,i0, 7) = x - 2.*x*z;
903 outputValues(10,i0, 8) = -(x*(1. + 2.*y));
904 outputValues(10,i0, 12)= 1. - x*x;
906 outputValues(11,i0, 3) = -((-1.+ z)*z);
907 outputValues(11,i0, 4) = y - 2.*y*z;
908 outputValues(11,i0, 5) = 1. - y*y;
909 outputValues(11,i0, 7) = -0.5 + x + z - 2.*x*z;
910 outputValues(11,i0, 8) = y - 2.*x*y;
911 outputValues(11,i0, 12)= -((-1.+ x)*x);
913 outputValues(12,i0, 3) = 1. - z*z;
914 outputValues(12,i0, 4) = z - 2.*y*z;
915 outputValues(12,i0, 5) = -((-1.+ y)*y);
916 outputValues(12,i0, 7) = z - 2.*x*z;
917 outputValues(12,i0, 8) = -0.5 + x + y - 2.*x*y;
918 outputValues(12,i0, 12)= -((-1.+ x)*x);
920 outputValues(13,i0, 3) = 1. - z*z;
921 outputValues(13,i0, 4) = z - 2.*y*z;
922 outputValues(13,i0, 5) = -((-1.+ y)*y);
923 outputValues(13,i0, 7) = -((1. + 2.*x)*z);
924 outputValues(13,i0, 8) = 0.5 + x - y - 2.*x*y;
925 outputValues(13,i0, 12)= -(x*(1. + x));
927 outputValues(14,i0, 3) = 1. - z*z;
928 outputValues(14,i0, 4) = -((1. + 2.*y)*z);
929 outputValues(14,i0, 5) = -(y*(1. + y));
930 outputValues(14,i0, 7) = -((1. + 2.*x)*z);
931 outputValues(14,i0, 8) = -((1. + 2.*x)*(1. + 2.*y))/2.;
932 outputValues(14,i0, 12)= -(x*(1. + x));
934 outputValues(15,i0, 3) = 1. - z*z;
935 outputValues(15,i0, 4) = -((1. + 2.*y)*z);
936 outputValues(15,i0, 5) = -(y*(1. + y));
937 outputValues(15,i0, 7) = z - 2.*x*z;
938 outputValues(15,i0, 8) = 0.5 + y - x*(1. + 2.*y);
939 outputValues(15,i0, 12)= -((-1.+ x)*x);
941 outputValues(16,i0, 3) = -(z*(1. + z));
942 outputValues(16,i0, 4) = 0.5 + z - y*(1. + 2.*z);
943 outputValues(16,i0, 5) = -((-1.+ y)*y);
944 outputValues(16,i0, 7) = -(x*(1. + 2.*z));
945 outputValues(16,i0, 8) = x - 2.*x*y;
946 outputValues(16,i0, 12)= 1. - x*x;
948 outputValues(17,i0, 3) = -(z*(1. + z));
949 outputValues(17,i0, 4) = -(y*(1. + 2.*z));
950 outputValues(17,i0, 5) = 1. - y*y;
951 outputValues(17,i0, 7) = -((1. + 2.*x)*(1. + 2.*z))/2.;
952 outputValues(17,i0, 8) = -((1. + 2.*x)*y);
953 outputValues(17,i0, 12)= -(x*(1. + x));
955 outputValues(18,i0, 3) = -(z*(1. + z));
956 outputValues(18,i0, 4) = -((1. + 2.*y)*(1. + 2.*z))/2.;
957 outputValues(18,i0, 5) = -(y*(1. + y));
958 outputValues(18,i0, 7) = -(x*(1. + 2.*z));
959 outputValues(18,i0, 8) = -(x*(1. + 2.*y));
960 outputValues(18,i0, 12)= 1. - x*x;
962 outputValues(19,i0, 3) = -(z*(1. + z));
963 outputValues(19,i0, 4) = -(y*(1. + 2.*z));
964 outputValues(19,i0, 5) = 1. - y*y;
965 outputValues(19,i0, 7) = 0.5 + z - x*(1. + 2.*z);
966 outputValues(19,i0, 8) = y - 2.*x*y;
967 outputValues(19,i0, 12)= -((-1.+ x)*x);
969 outputValues(20,i0, 3) = 4. - 4.*z*z;
970 outputValues(20,i0, 4) = -8.*y*z;
971 outputValues(20,i0, 5) = 4. - 4.*y*y;
972 outputValues(20,i0, 7) = -8.*x*z;
973 outputValues(20,i0, 8) = -8.*x*y;
974 outputValues(20,i0, 12)= 4. - 4.*x*x;
976 outputValues(21,i0, 3) = 2.*(-1.+ z)*z;
977 outputValues(21,i0, 4) = 2.*y*(-1.+ 2.*z);
978 outputValues(21,i0, 5) = 2.*(-1.+ y*y);
979 outputValues(21,i0, 7) = 2.*x*(-1.+ 2.*z);
980 outputValues(21,i0, 8) = 4.*x*y;
981 outputValues(21,i0, 12)= 2.*(-1.+ x*x);
983 outputValues(22,i0, 3) = 2.*z*(1. + z);
984 outputValues(22,i0, 4) = 2.*(y + 2.*y*z);
985 outputValues(22,i0, 5) = 2.*(-1.+ y*y);
986 outputValues(22,i0, 7) = 2.*(x + 2.*x*z);
987 outputValues(22,i0, 8) = 4.*x*y;
988 outputValues(22,i0, 12)= 2.*(-1.+ x*x);
990 outputValues(23,i0, 3) = 2.*(-1.+ z*z);
991 outputValues(23,i0, 4) = 4.*y*z;
992 outputValues(23,i0, 5) = 2.*(-1.+ y*y);
993 outputValues(23,i0, 7) = 2.*(-1.+ 2.*x)*z;
994 outputValues(23,i0, 8) = 2.*(-1.+ 2.*x)*y;
995 outputValues(23,i0, 12)= 2.*(-1.+ x)*x;
997 outputValues(24,i0, 3) = 2.*(-1.+ z*z);
998 outputValues(24,i0, 4) = 4.*y*z;
999 outputValues(24,i0, 5) = 2.*(-1.+ y*y);
1000 outputValues(24,i0, 7) = 2.*(z + 2.*x*z);
1001 outputValues(24,i0, 8) = 2.*(y + 2.*x*y);
1002 outputValues(24,i0, 12)= 2.*x*(1. + x);
1004 outputValues(25,i0, 3) = 2.*(-1.+ z*z);
1005 outputValues(25,i0, 4) = 2.*(-1.+ 2.*y)*z;
1006 outputValues(25,i0, 5) = 2.*(-1.+ y)*y;
1007 outputValues(25,i0, 7) = 4.*x*z;
1008 outputValues(25,i0, 8) = 2.*x*(-1.+ 2.*y);
1009 outputValues(25,i0, 12)= 2.*(-1.+ x*x);
1011 outputValues(26,i0, 3) = 2.*(-1.+ z*z);
1012 outputValues(26,i0, 4) = 2.*(z + 2.*y*z);
1013 outputValues(26,i0, 5) = 2.*y*(1. + y);
1014 outputValues(26,i0, 7) = 4.*x*z;
1015 outputValues(26,i0, 8) = 2.*(x + 2.*x*y);
1016 outputValues(26,i0, 12)= 2.*(-1.+ x*x);
1023 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::invalid_argument,
1024 ">>> ERROR (Basis_HGRAD_HEX_C2_FEM): operator not supported");
1034 this -> basisCellTopology_.getDimension() );
1035 for(
int dofOrd = 0; dofOrd <
this -> basisCardinality_; dofOrd++) {
1036 for (
int i0 = 0; i0 < dim0; i0++) {
1037 for(
int dkOrd = 0; dkOrd < DkCardinality; dkOrd++){
1038 outputValues(dofOrd, i0, dkOrd) = 0.0;
1047 ">>> ERROR (Basis_HGRAD_HEX_C2_FEM): Invalid operator type");
1053 template<
class Scalar,
class ArrayScalar>
1055 const ArrayScalar & inputPoints,
1056 const ArrayScalar & cellVertices,
1058 TEUCHOS_TEST_FOR_EXCEPTION( (
true), std::logic_error,
1059 ">>> ERROR (Basis_HGRAD_HEX_C2_FEM): FEM Basis calling an FVD member function");
1062 template<
class Scalar,
class ArrayScalar>
1064 #ifdef HAVE_INTREPID_DEBUG 1066 TEUCHOS_TEST_FOR_EXCEPTION( !(DofCoords.rank() == 2), std::invalid_argument,
1067 ">>> ERROR: (Intrepid::Basis_HGRAD_HEX_C2_FEM::getDofCoords) rank = 2 required for DofCoords array");
1069 TEUCHOS_TEST_FOR_EXCEPTION( !( DofCoords.dimension(0) ==
this -> basisCardinality_ ), std::invalid_argument,
1070 ">>> ERROR: (Intrepid::Basis_HGRAD_HEX_C2_FEM::getDofCoords) mismatch in number of DoF and 0th dimension of DofCoords array");
1072 TEUCHOS_TEST_FOR_EXCEPTION( !( DofCoords.dimension(1) == (int)(
this -> basisCellTopology_.getDimension()) ), std::invalid_argument,
1073 ">>> ERROR: (Intrepid::Basis_HGRAD_HEX_C2_FEM::getDofCoords) incorrect reference cell (1st) dimension in DofCoords array");
1076 DofCoords(0,0) = -1.0; DofCoords(0,1) = -1.0; DofCoords(0,2) = -1.0;
1077 DofCoords(1,0) = 1.0; DofCoords(1,1) = -1.0; DofCoords(1,2) = -1.0;
1078 DofCoords(2,0) = 1.0; DofCoords(2,1) = 1.0; DofCoords(2,2) = -1.0;
1079 DofCoords(3,0) = -1.0; DofCoords(3,1) = 1.0; DofCoords(3,2) = -1.0;
1080 DofCoords(4,0) = -1.0; DofCoords(4,1) = -1.0; DofCoords(4,2) = 1.0;
1081 DofCoords(5,0) = 1.0; DofCoords(5,1) = -1.0; DofCoords(5,2) = 1.0;
1082 DofCoords(6,0) = 1.0; DofCoords(6,1) = 1.0; DofCoords(6,2) = 1.0;
1083 DofCoords(7,0) = -1.0; DofCoords(7,1) = 1.0; DofCoords(7,2) = 1.0;
1085 DofCoords(8,0) = 0.0; DofCoords(8,1) = -1.0; DofCoords(8,2) = -1.0;
1086 DofCoords(9,0) = 1.0; DofCoords(9,1) = 0.0; DofCoords(9,2) = -1.0;
1087 DofCoords(10,0) = 0.0; DofCoords(10,1) = 1.0; DofCoords(10,2) = -1.0;
1088 DofCoords(11,0) = -1.0; DofCoords(11,1) = 0.0; DofCoords(11,2) = -1.0;
1089 DofCoords(12,0) = -1.0; DofCoords(12,1) = -1.0; DofCoords(12,2) = 0.0;
1090 DofCoords(13,0) = 1.0; DofCoords(13,1) = -1.0; DofCoords(13,2) = 0.0;
1091 DofCoords(14,0) = 1.0; DofCoords(14,1) = 1.0; DofCoords(14,2) = 0.0;
1092 DofCoords(15,0) = -1.0; DofCoords(15,1) = 1.0; DofCoords(15,2) = 0.0;
1093 DofCoords(16,0) = 0.0; DofCoords(16,1) = -1.0; DofCoords(16,2) = 1.0;
1094 DofCoords(17,0) = 1.0; DofCoords(17,1) = 0.0; DofCoords(17,2) = 1.0;
1095 DofCoords(18,0) = 0.0; DofCoords(18,1) = 1.0; DofCoords(18,2) = 1.0;
1096 DofCoords(19,0) = -1.0; DofCoords(19,1) = 0.0; DofCoords(19,2) = 1.0;
1098 DofCoords(20,0) = 0.0; DofCoords(20,1) = 0.0; DofCoords(20,2) = 0.0;
1100 DofCoords(21,0) = 0.0; DofCoords(21,1) = 0.0; DofCoords(21,2) = -1.0;
1101 DofCoords(22,0) = 0.0; DofCoords(22,1) = 0.0; DofCoords(22,2) = 1.0;
1102 DofCoords(23,0) = -1.0; DofCoords(23,1) = 0.0; DofCoords(23,2) = 0.0;
1103 DofCoords(24,0) = 1.0; DofCoords(24,1) = 0.0; DofCoords(24,2) = 0.0;
1104 DofCoords(25,0) = 0.0; DofCoords(25,1) = -1.0; DofCoords(25,2) = 0.0;
1105 DofCoords(26,0) = 0.0; DofCoords(26,1) = 1.0; DofCoords(26,2) = 0.0;
void initializeTags()
Initializes tagToOrdinal_ and ordinalToTag_ lookup arrays.
Basis_HGRAD_HEX_C2_FEM()
Constructor.
void getValues(ArrayScalar &outputValues, const ArrayScalar &inputPoints, const EOperator operatorType) const
Evaluation of a FEM basis on a reference Hexahedron cell.
void setOrdinalTagData(std::vector< std::vector< std::vector< int > > > &tagToOrdinal, std::vector< std::vector< int > > &ordinalToTag, const int *tags, const int basisCard, const int tagSize, const int posScDim, const int posScOrd, const int posDfOrd)
Fills ordinalToTag_ and tagToOrdinal_ by basis-specific tag data.
EOperator
Enumeration of primitive operators available in Intrepid. Primitive operators act on reconstructed fu...
int getDkCardinality(const EOperator operatorType, const int spaceDim)
Returns cardinality of Dk, i.e., the number of all derivatives of order k.
int isValidOperator(const EOperator operatorType)
Verifies validity of an operator enum.
void getDofCoords(ArrayScalar &DofCoords) const
Returns spatial locations (coordinates) of degrees of freedom on a reference Quadrilateral.