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,
107 Intrepid::setOrdinalTagData(
this -> tagToOrdinal_,
108 this -> ordinalToTag_,
110 this -> basisCardinality_,
119 template<
class Scalar,
class ArrayScalar>
121 const ArrayScalar & inputPoints,
122 const EOperator operatorType)
const {
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.;
815 int DkCardinality = Intrepid::getDkCardinality(operatorType,
this -> basisCellTopology_.getDimension() );
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");
1033 int DkCardinality = Intrepid::getDkCardinality(operatorType,
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;
1046 TEUCHOS_TEST_FOR_EXCEPTION( !( Intrepid::isValidOperator(operatorType) ), std::invalid_argument,
1047 ">>> ERROR (Basis_HGRAD_HEX_C2_FEM): Invalid operator type");
1053 template<
class Scalar,
class ArrayScalar>
1055 const ArrayScalar & inputPoints,
1056 const ArrayScalar & cellVertices,
1057 const EOperator operatorType)
const {
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 getValues(ArrayScalar &outputValues, const ArrayScalar &inputPoints, const EOperator operatorType) const
Evaluation of a FEM basis on a reference Hexahedron cell.
void initializeTags()
Initializes tagToOrdinal_ and ordinalToTag_ lookup arrays.
Basis_HGRAD_HEX_C2_FEM()
Constructor.
void getDofCoords(ArrayScalar &DofCoords) const
Returns spatial locations (coordinates) of degrees of freedom on a reference Quadrilateral.