libMesh
cell_hex27.C
Go to the documentation of this file.
1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2019 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 // Local includes
20 #include "libmesh/side.h"
21 #include "libmesh/cell_hex27.h"
22 #include "libmesh/edge_edge3.h"
23 #include "libmesh/face_quad9.h"
24 #include "libmesh/enum_io_package.h"
25 #include "libmesh/enum_order.h"
26 
27 namespace libMesh
28 {
29 
30 
31 
32 // ------------------------------------------------------------
33 // Hex27 class static member initializations
34 const int Hex27::num_nodes;
35 const int Hex27::num_sides;
36 const int Hex27::num_edges;
37 const int Hex27::num_children;
38 const int Hex27::nodes_per_side;
39 const int Hex27::nodes_per_edge;
40 
42  {
43  {0, 3, 2, 1, 11, 10, 9, 8, 20}, // Side 0
44  {0, 1, 5, 4, 8, 13, 16, 12, 21}, // Side 1
45  {1, 2, 6, 5, 9, 14, 17, 13, 22}, // Side 2
46  {2, 3, 7, 6, 10, 15, 18, 14, 23}, // Side 3
47  {3, 0, 4, 7, 11, 12, 19, 15, 24}, // Side 4
48  {4, 5, 6, 7, 16, 17, 18, 19, 25} // Side 5
49  };
50 
52  {
53  {0, 1, 8}, // Edge 0
54  {1, 2, 9}, // Edge 1
55  {2, 3, 10}, // Edge 2
56  {0, 3, 11}, // Edge 3
57  {0, 4, 12}, // Edge 4
58  {1, 5, 13}, // Edge 5
59  {2, 6, 14}, // Edge 6
60  {3, 7, 15}, // Edge 7
61  {4, 5, 16}, // Edge 8
62  {5, 6, 17}, // Edge 9
63  {6, 7, 18}, // Edge 10
64  {4, 7, 19} // Edge 11
65  };
66 
67 
68 
69 // ------------------------------------------------------------
70 // Hex27 class member functions
71 
72 bool Hex27::is_vertex(const unsigned int i) const
73 {
74  if (i < 8)
75  return true;
76  return false;
77 }
78 
79 bool Hex27::is_edge(const unsigned int i) const
80 {
81  if (i < 8)
82  return false;
83  if (i > 19)
84  return false;
85  return true;
86 }
87 
88 bool Hex27::is_face(const unsigned int i) const
89 {
90  if (i == 26)
91  return false;
92  if (i > 19)
93  return true;
94  return false;
95 }
96 
97 bool Hex27::is_node_on_side(const unsigned int n,
98  const unsigned int s) const
99 {
100  libmesh_assert_less (s, n_sides());
101  return std::find(std::begin(side_nodes_map[s]),
103  n) != std::end(side_nodes_map[s]);
104 }
105 
106 std::vector<unsigned>
107 Hex27::nodes_on_side(const unsigned int s) const
108 {
109  libmesh_assert_less(s, n_sides());
110  return {std::begin(side_nodes_map[s]), std::end(side_nodes_map[s])};
111 }
112 
113 bool Hex27::is_node_on_edge(const unsigned int n,
114  const unsigned int e) const
115 {
116  libmesh_assert_less (e, n_edges());
117  return std::find(std::begin(edge_nodes_map[e]),
119  n) != std::end(edge_nodes_map[e]);
120 }
121 
122 
123 
125 {
126  // Make sure x-edge endpoints are affine
127  Point v = this->point(1) - this->point(0);
128  if (!v.relative_fuzzy_equals(this->point(2) - this->point(3)) ||
129  !v.relative_fuzzy_equals(this->point(5) - this->point(4)) ||
130  !v.relative_fuzzy_equals(this->point(6) - this->point(7)))
131  return false;
132  // Make sure x-edges are straight
133  // and x-face and center points are centered
134  v /= 2;
135  if (!v.relative_fuzzy_equals(this->point(8) - this->point(0)) ||
136  !v.relative_fuzzy_equals(this->point(10) - this->point(3)) ||
137  !v.relative_fuzzy_equals(this->point(16) - this->point(4)) ||
138  !v.relative_fuzzy_equals(this->point(18) - this->point(7)) ||
139  !v.relative_fuzzy_equals(this->point(20) - this->point(11)) ||
140  !v.relative_fuzzy_equals(this->point(21) - this->point(12)) ||
141  !v.relative_fuzzy_equals(this->point(23) - this->point(15)) ||
142  !v.relative_fuzzy_equals(this->point(25) - this->point(19)) ||
143  !v.relative_fuzzy_equals(this->point(26) - this->point(24)))
144  return false;
145  // Make sure xz-faces are identical parallelograms
146  v = this->point(4) - this->point(0);
147  if (!v.relative_fuzzy_equals(this->point(7) - this->point(3)))
148  return false;
149  v /= 2;
150  if (!v.relative_fuzzy_equals(this->point(12) - this->point(0)) ||
151  !v.relative_fuzzy_equals(this->point(13) - this->point(1)) ||
152  !v.relative_fuzzy_equals(this->point(14) - this->point(2)) ||
153  !v.relative_fuzzy_equals(this->point(15) - this->point(3)) ||
154  !v.relative_fuzzy_equals(this->point(22) - this->point(9)) ||
155  !v.relative_fuzzy_equals(this->point(24) - this->point(11)))
156  return false;
157  // Make sure y-edges are straight
158  v = (this->point(3) - this->point(0))/2;
159  if (!v.relative_fuzzy_equals(this->point(11) - this->point(0)) ||
160  !v.relative_fuzzy_equals(this->point(9) - this->point(1)) ||
161  !v.relative_fuzzy_equals(this->point(17) - this->point(5)) ||
162  !v.relative_fuzzy_equals(this->point(19) - this->point(4)))
163  return false;
164  // If all the above checks out, the map is affine
165  return true;
166 }
167 
168 
169 
171 {
172  return SECOND;
173 }
174 
175 
176 
177 dof_id_type Hex27::key (const unsigned int s) const
178 {
179  libmesh_assert_less (s, this->n_sides());
180 
181  // Think of a unit cube: (-1,1) x (-1,1) x (1,1)
182  switch (s)
183  {
184  case 0: // the face at z=0
185 
186  return
187  this->compute_key (this->node_id(20));
188 
189  case 1: // the face at y = 0
190 
191  return
192  this->compute_key (this->node_id(21));
193 
194  case 2: // the face at x=1
195 
196  return
197  this->compute_key (this->node_id(22));
198 
199  case 3: // the face at y=1
200 
201  return
202  this->compute_key (this->node_id(23));
203 
204  case 4: // the face at x=0
205 
206  return
207  this->compute_key (this->node_id(24));
208 
209  case 5: // the face at z=1
210 
211  return
212  this->compute_key (this->node_id(25));
213 
214  default:
215  libmesh_error_msg("Invalid side " << s);
216  }
217 }
218 
219 
220 
221 unsigned int Hex27::which_node_am_i(unsigned int side,
222  unsigned int side_node) const
223 {
224  libmesh_assert_less (side, this->n_sides());
225  libmesh_assert_less (side_node, Hex27::nodes_per_side);
226 
227  return Hex27::side_nodes_map[side][side_node];
228 }
229 
230 
231 
232 std::unique_ptr<Elem> Hex27::build_side_ptr (const unsigned int i,
233  bool proxy)
234 {
235  libmesh_assert_less (i, this->n_sides());
236 
237  if (proxy)
238  return libmesh_make_unique<Side<Quad9,Hex27>>(this,i);
239 
240  else
241  {
242  std::unique_ptr<Elem> face = libmesh_make_unique<Quad9>();
243  face->subdomain_id() = this->subdomain_id();
244 
245  for (auto n : face->node_index_range())
246  face->set_node(n) = this->node_ptr(Hex27::side_nodes_map[i][n]);
247 
248  return face;
249  }
250 }
251 
252 
253 
254 void Hex27::build_side_ptr (std::unique_ptr<Elem> & side,
255  const unsigned int i)
256 {
257  this->simple_build_side_ptr<Hex27>(side, i, QUAD9);
258 }
259 
260 
261 
262 std::unique_ptr<Elem> Hex27::build_edge_ptr (const unsigned int i)
263 {
264  libmesh_assert_less (i, this->n_edges());
265 
266  return libmesh_make_unique<SideEdge<Edge3,Hex27>>(this,i);
267 }
268 
269 
270 
271 void Hex27::connectivity(const unsigned int sc,
272  const IOPackage iop,
273  std::vector<dof_id_type> & conn) const
274 {
276  libmesh_assert_less (sc, this->n_sub_elem());
277  libmesh_assert_not_equal_to (iop, INVALID_IO_PACKAGE);
278 
279  conn.resize(8);
280 
281  switch (iop)
282  {
283  case TECPLOT:
284  {
285  switch (sc)
286  {
287  case 0:
288 
289  conn[0] = this->node_id(0)+1;
290  conn[1] = this->node_id(8)+1;
291  conn[2] = this->node_id(20)+1;
292  conn[3] = this->node_id(11)+1;
293  conn[4] = this->node_id(12)+1;
294  conn[5] = this->node_id(21)+1;
295  conn[6] = this->node_id(26)+1;
296  conn[7] = this->node_id(24)+1;
297 
298  return;
299 
300  case 1:
301 
302  conn[0] = this->node_id(8)+1;
303  conn[1] = this->node_id(1)+1;
304  conn[2] = this->node_id(9)+1;
305  conn[3] = this->node_id(20)+1;
306  conn[4] = this->node_id(21)+1;
307  conn[5] = this->node_id(13)+1;
308  conn[6] = this->node_id(22)+1;
309  conn[7] = this->node_id(26)+1;
310 
311  return;
312 
313  case 2:
314 
315  conn[0] = this->node_id(11)+1;
316  conn[1] = this->node_id(20)+1;
317  conn[2] = this->node_id(10)+1;
318  conn[3] = this->node_id(3)+1;
319  conn[4] = this->node_id(24)+1;
320  conn[5] = this->node_id(26)+1;
321  conn[6] = this->node_id(23)+1;
322  conn[7] = this->node_id(15)+1;
323 
324  return;
325 
326  case 3:
327 
328  conn[0] = this->node_id(20)+1;
329  conn[1] = this->node_id(9)+1;
330  conn[2] = this->node_id(2)+1;
331  conn[3] = this->node_id(10)+1;
332  conn[4] = this->node_id(26)+1;
333  conn[5] = this->node_id(22)+1;
334  conn[6] = this->node_id(14)+1;
335  conn[7] = this->node_id(23)+1;
336 
337  return;
338 
339  case 4:
340 
341  conn[0] = this->node_id(12)+1;
342  conn[1] = this->node_id(21)+1;
343  conn[2] = this->node_id(26)+1;
344  conn[3] = this->node_id(24)+1;
345  conn[4] = this->node_id(4)+1;
346  conn[5] = this->node_id(16)+1;
347  conn[6] = this->node_id(25)+1;
348  conn[7] = this->node_id(19)+1;
349 
350  return;
351 
352  case 5:
353 
354  conn[0] = this->node_id(21)+1;
355  conn[1] = this->node_id(13)+1;
356  conn[2] = this->node_id(22)+1;
357  conn[3] = this->node_id(26)+1;
358  conn[4] = this->node_id(16)+1;
359  conn[5] = this->node_id(5)+1;
360  conn[6] = this->node_id(17)+1;
361  conn[7] = this->node_id(25)+1;
362 
363  return;
364 
365  case 6:
366 
367  conn[0] = this->node_id(24)+1;
368  conn[1] = this->node_id(26)+1;
369  conn[2] = this->node_id(23)+1;
370  conn[3] = this->node_id(15)+1;
371  conn[4] = this->node_id(19)+1;
372  conn[5] = this->node_id(25)+1;
373  conn[6] = this->node_id(18)+1;
374  conn[7] = this->node_id(7)+1;
375 
376  return;
377 
378  case 7:
379 
380  conn[0] = this->node_id(26)+1;
381  conn[1] = this->node_id(22)+1;
382  conn[2] = this->node_id(14)+1;
383  conn[3] = this->node_id(23)+1;
384  conn[4] = this->node_id(25)+1;
385  conn[5] = this->node_id(17)+1;
386  conn[6] = this->node_id(6)+1;
387  conn[7] = this->node_id(18)+1;
388 
389  return;
390 
391  default:
392  libmesh_error_msg("Invalid sc = " << sc);
393  }
394  }
395 
396  case VTK:
397  {
398  // VTK now supports VTK_TRIQUADRATIC_HEXAHEDRON directly
399  conn.resize(27);
400 
401  conn[0] = this->node_id(0);
402  conn[1] = this->node_id(1);
403  conn[2] = this->node_id(2);
404  conn[3] = this->node_id(3);
405  conn[4] = this->node_id(4);
406  conn[5] = this->node_id(5);
407  conn[6] = this->node_id(6);
408  conn[7] = this->node_id(7);
409  conn[8] = this->node_id(8);
410  conn[9] = this->node_id(9);
411  conn[10] = this->node_id(10);
412  conn[11] = this->node_id(11); //
413  conn[12] = this->node_id(16);
414  conn[13] = this->node_id(17);
415  conn[14] = this->node_id(18);
416  conn[15] = this->node_id(19);
417  conn[16] = this->node_id(12);
418  conn[17] = this->node_id(13); //
419  conn[18] = this->node_id(14);
420  conn[19] = this->node_id(15);
421  conn[20] = this->node_id(24);
422  conn[21] = this->node_id(22);
423  conn[22] = this->node_id(21);
424  conn[23] = this->node_id(23);
425  conn[24] = this->node_id(20);
426  conn[25] = this->node_id(25);
427  conn[26] = this->node_id(26);
428 
429  return;
430 
431  /*
432  switch (sc)
433  {
434  case 0:
435 
436  conn[0] = this->node_id(0);
437  conn[1] = this->node_id(8);
438  conn[2] = this->node_id(20);
439  conn[3] = this->node_id(11);
440  conn[4] = this->node_id(12);
441  conn[5] = this->node_id(21);
442  conn[6] = this->node_id(26);
443  conn[7] = this->node_id(24);
444 
445  return;
446 
447  case 1:
448 
449  conn[0] = this->node_id(8);
450  conn[1] = this->node_id(1);
451  conn[2] = this->node_id(9);
452  conn[3] = this->node_id(20);
453  conn[4] = this->node_id(21);
454  conn[5] = this->node_id(13);
455  conn[6] = this->node_id(22);
456  conn[7] = this->node_id(26);
457 
458  return;
459 
460  case 2:
461 
462  conn[0] = this->node_id(11);
463  conn[1] = this->node_id(20);
464  conn[2] = this->node_id(10);
465  conn[3] = this->node_id(3);
466  conn[4] = this->node_id(24);
467  conn[5] = this->node_id(26);
468  conn[6] = this->node_id(23);
469  conn[7] = this->node_id(15);
470 
471  return;
472 
473  case 3:
474 
475  conn[0] = this->node_id(20);
476  conn[1] = this->node_id(9);
477  conn[2] = this->node_id(2);
478  conn[3] = this->node_id(10);
479  conn[4] = this->node_id(26);
480  conn[5] = this->node_id(22);
481  conn[6] = this->node_id(14);
482  conn[7] = this->node_id(23);
483 
484  return;
485 
486  case 4:
487 
488  conn[0] = this->node_id(12);
489  conn[1] = this->node_id(21);
490  conn[2] = this->node_id(26);
491  conn[3] = this->node_id(24);
492  conn[4] = this->node_id(4);
493  conn[5] = this->node_id(16);
494  conn[6] = this->node_id(25);
495  conn[7] = this->node_id(19);
496 
497  return;
498 
499  case 5:
500 
501  conn[0] = this->node_id(21);
502  conn[1] = this->node_id(13);
503  conn[2] = this->node_id(22);
504  conn[3] = this->node_id(26);
505  conn[4] = this->node_id(16);
506  conn[5] = this->node_id(5);
507  conn[6] = this->node_id(17);
508  conn[7] = this->node_id(25);
509 
510  return;
511 
512  case 6:
513 
514  conn[0] = this->node_id(24);
515  conn[1] = this->node_id(26);
516  conn[2] = this->node_id(23);
517  conn[3] = this->node_id(15);
518  conn[4] = this->node_id(19);
519  conn[5] = this->node_id(25);
520  conn[6] = this->node_id(18);
521  conn[7] = this->node_id(7);
522 
523  return;
524 
525  case 7:
526 
527  conn[0] = this->node_id(26);
528  conn[1] = this->node_id(22);
529  conn[2] = this->node_id(14);
530  conn[3] = this->node_id(23);
531  conn[4] = this->node_id(25);
532  conn[5] = this->node_id(17);
533  conn[6] = this->node_id(6);
534  conn[7] = this->node_id(18);
535 
536  return;
537 
538  default:
539  libmesh_error_msg("Invalid sc = " << sc);
540  }
541  */
542  }
543 
544  default:
545  libmesh_error_msg("Unsupported IO package " << iop);
546  }
547 }
548 
549 
550 
551 
552 
553 unsigned int Hex27::n_second_order_adjacent_vertices (const unsigned int n) const
554 {
555  switch (n)
556  {
557  case 8:
558  case 9:
559  case 10:
560  case 11:
561  case 12:
562  case 13:
563  case 14:
564  case 15:
565  case 16:
566  case 17:
567  case 18:
568  case 19:
569  return 2;
570 
571  case 20:
572  case 21:
573  case 22:
574  case 23:
575  case 24:
576  case 25:
577  return 4;
578 
579  case 26:
580  return 8;
581 
582  default:
583  libmesh_error_msg("Invalid node number n = " << n);
584  }
585 }
586 
587 
588 
589 unsigned short int Hex27::second_order_adjacent_vertex (const unsigned int n,
590  const unsigned int v) const
591 {
592  libmesh_assert_greater_equal (n, this->n_vertices());
593  libmesh_assert_less (n, this->n_nodes());
594 
595  switch (n)
596  {
597  /*
598  * these are all nodes that are unique to Hex27,
599  * use our _remaining.... matrix
600  */
601  case 20:
602  case 21:
603  case 22:
604  case 23:
605  case 24:
606  case 25:
607  {
608  libmesh_assert_less (v, 4);
610  }
611 
612  /*
613  * for the bubble node the return value is simply v.
614  * Why? -- the user asks for the v-th adjacent vertex,
615  * from \p n_second_order_adjacent_vertices() there
616  * are 8 adjacent vertices, and these happen to be
617  * 0..7
618  */
619  case 26:
620  {
621  libmesh_assert_less (v, 8);
622  return static_cast<unsigned short int>(v);
623  }
624 
625  /*
626  * nodes 8..19:
627  * these are all nodes that are identical for
628  * Hex20 and Hex27. Therefore use the
629  * matrix stored in cell_hex.C
630  */
631  default:
632  {
633  libmesh_assert_less (v, 2);
634  return _second_order_adjacent_vertices[n-this->n_vertices()][v];
635  }
636  }
637 }
638 
639 
640 
641 const unsigned short int Hex27::_remaining_second_order_adjacent_vertices[6][4] =
642  {
643  { 0, 1, 2, 3}, // vertices adjacent to node 20 face nodes
644  { 0, 1, 4, 5}, // vertices adjacent to node 21
645  { 1, 2, 5, 6}, // vertices adjacent to node 22
646  { 2, 3, 6, 7}, // vertices adjacent to node 23
647  { 0, 3, 4, 7}, // vertices adjacent to node 24
648  { 4, 5, 6, 7}, // vertices adjacent to node 25
649  };
650 
651 
652 
653 std::pair<unsigned short int, unsigned short int>
654 Hex27::second_order_child_vertex (const unsigned int n) const
655 {
656  libmesh_assert_greater_equal (n, this->n_vertices());
657  libmesh_assert_less (n, this->n_nodes());
658  /*
659  * the _second_order_vertex_child_* vectors are
660  * stored in cell_hex.C, since they are identical
661  * for Hex20 and Hex27 (for the first 12 higher-order nodes)
662  */
663  return std::pair<unsigned short int, unsigned short int>
666 }
667 
668 
669 
671 {
672  // This specialization is good for Lagrange mappings only
673  if (this->mapping_type() != LAGRANGE_MAP)
674  return this->Elem::volume();
675 
676  // Make copies of our points. It makes the subsequent calculations a bit
677  // shorter and avoids dereferencing the same pointer multiple times.
678  Point
679  x0 = point(0), x1 = point(1), x2 = point(2), x3 = point(3), x4 = point(4), x5 = point(5), x6 = point(6), x7 = point(7), x8 = point(8),
680  x9 = point(9), x10 = point(10), x11 = point(11), x12 = point(12), x13 = point(13), x14 = point(14), x15 = point(15), x16 = point(16), x17 = point(17),
681  x18 = point(18), x19 = point(19), x20 = point(20), x21 = point(21), x22 = point(22), x23 = point(23), x24 = point(24), x25 = point(25), x26 = point(26);
682 
683  // The constant components of the dx/dxi vector,
684  // dx/dxi = \vec{a000} + \vec{a001}*zeta + \vec{a002}*zeta^2 + ...
685  // All of the xi^2 terms are zero.
686  // These were copied directly from the output of a Python script.
687  Point dx_dxi[3][3][3] =
688  {
689  {
690  {
691  x22/2 - x24/2, // 0, 0, 0
692  x11/4 + x17/4 - x19/4 - x9/4, // 0, 0, 1
693  -x11/4 + x17/4 - x19/4 - x22/2 + x24/2 + x9/4 // 0, 0, 2
694  },
695 
696  {
697  x12/4 - x13/4 + x14/4 - x15/4, // 0, 1, 0
698  -x0/8 + x1/8 - x2/8 + x3/8 + x4/8 - x5/8 + x6/8 - x7/8, // 0, 1, 1
699  x0/8 - x1/8 - x12/4 + x13/4 - x14/4 + x15/4 + x2/8 - x3/8 + x4/8 - x5/8 + x6/8 - x7/8 // 0, 1, 2
700  },
701 
702  {
703  -x12/4 + x13/4 + x14/4 - x15/4 - x22/2 + x24/2, // 0, 2, 0
704  x0/8 - x1/8 - x11/4 - x17/4 + x19/4 - x2/8 + x3/8 - x4/8 + x5/8 + x6/8 - x7/8 + x9/4, // 0, 2, 1
705  -x0/8 + x1/8 + x11/4 + x12/4 - x13/4 - x14/4 + x15/4 - x17/4 + x19/4 + x2/8 + x22/2 - x24/2 - x3/8 - x4/8 + x5/8 + x6/8 - x7/8 - x9/4 // 0, 2, 2
706  }
707  },
708  {
709  {
710  x22 + x24 - 2*x26, // 1, 0, 0
711  -x11/2 + x17/2 + x19/2 + x20 - x25 - x9/2, // 1, 0, 1
712  x11/2 + x17/2 + x19/2 - x20 - x22 - x24 - x25 + 2*x26 + x9/2 // 1, 0, 2
713  },
714 
715  {
716  -x12/2 - x13/2 + x14/2 + x15/2 + x21 - x23, // 1, 1, 0
717  x0/4 + x1/4 + x10/2 + x16/2 - x18/2 - x2/4 - x3/4 - x4/4 - x5/4 + x6/4 + x7/4 - x8/2, // 1, 1, 1
718  -x0/4 - x1/4 - x10/2 + x12/2 + x13/2 - x14/2 - x15/2 + x16/2 - x18/2 + x2/4 - x21 + x23 + x3/4 - x4/4 - x5/4 + x6/4 + x7/4 + x8/2 // 1, 1, 2
719  },
720 
721  {
722  x12/2 + x13/2 + x14/2 + x15/2 - x21 - x22 - x23 - x24 + 2*x26, // 1, 2, 0
723  -x0/4 - x1/4 + x10/2 + x11/2 - x16/2 - x17/2 - x18/2 - x19/2 - x2/4 - x20 + x25 - x3/4 + x4/4 + x5/4 + x6/4 + x7/4 + x8/2 + x9/2, // 1, 2, 1
724  x0/4 + x1/4 - x10/2 - x11/2 - x12/2 - x13/2 - x14/2 - x15/2 - x16/2 - x17/2 - x18/2 - x19/2 + x2/4 + x20 + x21 + x22 + x23 + x24 + x25 - 2*x26 + x3/4 + x4/4 + x5/4 + x6/4 + x7/4 - x8/2 - x9/2 // 1, 2, 2
725  }
726  },
727  {
728  {Point(0,0,0), Point(0,0,0), Point(0,0,0)},
729  {Point(0,0,0), Point(0,0,0), Point(0,0,0)},
730  {Point(0,0,0), Point(0,0,0), Point(0,0,0)}
731  }
732  };
733 
734 
735 
736  // The constant components of the dx/deta vector, all of the eta^2
737  // terms are zero. These were copied directly from the output of a
738  // Python script.
739  Point dx_deta[3][3][3] =
740  {
741  {
742  {
743  -x21/2 + x23/2, // 0, 0, 0
744  -x10/4 - x16/4 + x18/4 + x8/4, // 0, 0, 1
745  x10/4 - x16/4 + x18/4 + x21/2 - x23/2 - x8/4 // 0, 0, 2
746  },
747  {
748  x21 + x23 - 2*x26, // 0, 1, 0
749  -x10/2 + x16/2 + x18/2 + x20 - x25 - x8/2, // 0, 1, 1
750  x10/2 + x16/2 + x18/2 - x20 - x21 - x23 - x25 + 2*x26 + x8/2 // 0, 1, 2
751  },
752  {
753  Point(0,0,0), // 0, 2, 0
754  Point(0,0,0), // 0, 2, 1
755  Point(0,0,0) // 0, 2, 2
756  }
757  },
758 
759  {
760  {
761  x12/4 - x13/4 + x14/4 - x15/4, // 1, 0, 0
762  -x0/8 + x1/8 - x2/8 + x3/8 + x4/8 - x5/8 + x6/8 - x7/8, // 1, 0, 1
763  x0/8 - x1/8 - x12/4 + x13/4 - x14/4 + x15/4 + x2/8 - x3/8 + x4/8 - x5/8 + x6/8 - x7/8 // 1, 0, 2
764  },
765  {
766  -x12/2 + x13/2 + x14/2 - x15/2 - x22 + x24, // 1, 1, 0
767  x0/4 - x1/4 - x11/2 - x17/2 + x19/2 - x2/4 + x3/4 - x4/4 + x5/4 + x6/4 - x7/4 + x9/2, // 1, 1, 1
768  -x0/4 + x1/4 + x11/2 + x12/2 - x13/2 - x14/2 + x15/2 - x17/2 + x19/2 + x2/4 + x22 - x24 - x3/4 - x4/4 + x5/4 + x6/4 - x7/4 - x9/2 // 1, 1, 2
769  },
770  {
771  Point(0,0,0), // 1, 2, 0
772  Point(0,0,0), // 1, 2, 1
773  Point(0,0,0) // 1, 2, 2
774  }
775  },
776 
777  {
778  {
779  -x12/4 - x13/4 + x14/4 + x15/4 + x21/2 - x23/2, // 2, 0, 0
780  x0/8 + x1/8 + x10/4 + x16/4 - x18/4 - x2/8 - x3/8 - x4/8 - x5/8 + x6/8 + x7/8 - x8/4, // 2, 0, 1
781  -x0/8 - x1/8 - x10/4 + x12/4 + x13/4 - x14/4 - x15/4 + x16/4 - x18/4 + x2/8 - x21/2 + x23/2 + x3/8 - x4/8 - x5/8 + x6/8 + x7/8 + x8/4, // 2, 0, 2
782  },
783  {
784  x12/2 + x13/2 + x14/2 + x15/2 - x21 - x22 - x23 - x24 + 2*x26, // 2, 1, 0
785  -x0/4 - x1/4 + x10/2 + x11/2 - x16/2 - x17/2 - x18/2 - x19/2 - x2/4 - x20 + x25 - x3/4 + x4/4 + x5/4 + x6/4 + x7/4 + x8/2 + x9/2, // 2, 1, 1
786  x0/4 + x1/4 - x10/2 - x11/2 - x12/2 - x13/2 - x14/2 - x15/2 - x16/2 - x17/2 - x18/2 - x19/2 + x2/4 + x20 + x21 + x22 + x23 + x24 + x25 - 2*x26 + x3/4 + x4/4 + x5/4 + x6/4 + x7/4 - x8/2 - x9/2 // 2, 1, 2
787  },
788  {
789  Point(0,0,0), // 2, 2, 0
790  Point(0,0,0), // 2, 2, 1
791  Point(0,0,0) // 2, 2, 2
792  }
793  }
794  };
795 
796 
797 
798  // The constant components of the dx/dzeta vector, all of the zeta^2
799  // terms are zero. These were copied directly from the output of a
800  // Python script.
801  Point dx_dzeta[3][3][3] =
802  {
803  {
804  {
805  -x20/2 + x25/2, // 0, 0, 0
806  x20 + x25 - 2*x26, // 0, 0, 1
807  Point(0,0,0) // 0, 0, 2
808  },
809  {
810  -x10/4 - x16/4 + x18/4 + x8/4, // 0, 1, 0
811  x10/2 - x16/2 + x18/2 + x21 - x23 - x8/2, // 0, 1, 1
812  Point(0,0,0) // 0, 1, 2
813  },
814  {
815  -x10/4 + x16/4 + x18/4 + x20/2 - x25/2 - x8/4, // 0, 2, 0
816  x10/2 + x16/2 + x18/2 - x20 - x21 - x23 - x25 + 2*x26 + x8/2, // 0, 2, 1
817  Point(0,0,0) // 0, 2, 2
818  }
819  },
820  {
821  {
822  x11/4 + x17/4 - x19/4 - x9/4, // 1, 0, 0
823  -x11/2 + x17/2 - x19/2 - x22 + x24 + x9/2, // 1, 0, 1
824  Point(0,0,0) // 1, 0, 2
825  },
826  {
827  -x0/8 + x1/8 - x2/8 + x3/8 + x4/8 - x5/8 + x6/8 - x7/8, // 1, 1, 0
828  x0/4 - x1/4 - x12/2 + x13/2 - x14/2 + x15/2 + x2/4 - x3/4 + x4/4 - x5/4 + x6/4 - x7/4, // 1, 1, 1
829  Point(0,0,0) // 1, 1, 2
830  },
831  {
832  x0/8 - x1/8 - x11/4 - x17/4 + x19/4 - x2/8 + x3/8 - x4/8 + x5/8 + x6/8 - x7/8 + x9/4, // 1, 2, 0
833  -x0/4 + x1/4 + x11/2 + x12/2 - x13/2 - x14/2 + x15/2 - x17/2 + x19/2 + x2/4 + x22 - x24 - x3/4 - x4/4 + x5/4 + x6/4 - x7/4 - x9/2, // 1, 2, 1
834  Point(0,0,0) // 1, 2, 2
835  }
836  },
837  {
838  {
839  -x11/4 + x17/4 + x19/4 + x20/2 - x25/2 - x9/4, // 2, 0, 0
840  x11/2 + x17/2 + x19/2 - x20 - x22 - x24 - x25 + 2*x26 + x9/2, // 2, 0, 1
841  Point(0,0,0) // 2, 0, 2
842  },
843  {
844  x0/8 + x1/8 + x10/4 + x16/4 - x18/4 - x2/8 - x3/8 - x4/8 - x5/8 + x6/8 + x7/8 - x8/4, // 2, 1, 0
845  -x0/4 - x1/4 - x10/2 + x12/2 + x13/2 - x14/2 - x15/2 + x16/2 - x18/2 + x2/4 - x21 + x23 + x3/4 - x4/4 - x5/4 + x6/4 + x7/4 + x8/2, // 2, 1, 1
846  Point(0,0,0) // 2, 1, 2
847  },
848  {
849  -x0/8 - x1/8 + x10/4 + x11/4 - x16/4 - x17/4 - x18/4 - x19/4 - x2/8 - x20/2 + x25/2 - x3/8 + x4/8 + x5/8 + x6/8 + x7/8 + x8/4 + x9/4, // 2, 2, 0
850  x0/4 + x1/4 - x10/2 - x11/2 - x12/2 - x13/2 - x14/2 - x15/2 - x16/2 - x17/2 - x18/2 - x19/2 + x2/4 + x20 + x21 + x22 + x23 + x24 + x25 - 2*x26 + x3/4 + x4/4 + x5/4 + x6/4 + x7/4 - x8/2 - x9/2, // 2, 2, 1
851  Point(0,0,0) // 2, 2, 2
852  }
853  }
854  };
855 
856  // 3x3 quadrature, exact for bi-quintics
857  const int N = 3;
858  const Real w[N] = {5./9, 8./9, 5./9};
859 
860  // Quadrature point locations raised to powers. q[0][2] is
861  // quadrature point 0, squared, q[1][1] is quadrature point 1 to the
862  // first power, etc.
863  const Real q[N][N] =
864  {
865  //^0 ^1 ^2
866  { 1., -std::sqrt(15)/5., 15./25},
867  { 1., 0., 0.},
868  { 1., std::sqrt(15)/5., 15./25}
869  };
870 
871  Real vol = 0.;
872  for (int i=0; i<N; ++i)
873  for (int j=0; j<N; ++j)
874  for (int k=0; k<N; ++k)
875  {
876  // Compute dx_dxi, dx_deta, dx_dzeta at the current quadrature point.
877  Point dx_dxi_q, dx_deta_q, dx_dzeta_q;
878  for (int ii=0; ii<N; ++ii)
879  for (int jj=0; jj<N; ++jj)
880  for (int kk=0; kk<N; ++kk)
881  {
882  Real coeff = q[i][ii] * q[j][jj] * q[k][kk];
883 
884  dx_dxi_q += coeff * dx_dxi[ii][jj][kk];
885  dx_deta_q += coeff * dx_deta[ii][jj][kk];
886  dx_dzeta_q += coeff * dx_dzeta[ii][jj][kk];
887  }
888 
889  // Compute scalar triple product, multiply by weight, and accumulate volume.
890  vol += w[i] * w[j] * w[k] * triple_product(dx_dxi_q, dx_deta_q, dx_dzeta_q);
891  }
892 
893  return vol;
894 }
895 
896 
897 
898 
899 
900 
901 
902 #ifdef LIBMESH_ENABLE_AMR
903 
905  {
906  // embedding matrix for child 0
907  {
908  // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
909  { 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 0
910  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 1
911  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 2
912  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 3
913  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 4
914  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 5
915  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 }, // 6
916  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000 }, // 7
917  { 0.375000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 8
918  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 9
919  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 10
920  { 0.375000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 11
921  { 0.375000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 12
922  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 13
923  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.750000 }, // 14
924  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000 }, // 15
925  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 16
926  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.00000, 0.750000 }, // 17
927  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.750000 }, // 18
928  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000 }, // 19
929  { 0.140625, -0.0468750, 0.0156250, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.281250, -0.0937500, -0.0937500, 0.281250, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 20
930  { 0.140625, -0.0468750, 0.00000, 0.00000, -0.0468750, 0.0156250, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, 0.281250, -0.0937500, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 21
931  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.140625, 0.00000, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.0156250, 0.00000, 0.281250, 0.281250, 0.00000, -0.0937500, 0.00000, -0.0937500, 0.562500 }, // 22
932  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.140625, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.0156250, 0.00000, -0.0468750, 0.281250, 0.00000, -0.0937500, 0.00000, 0.281250, -0.0937500, 0.562500 }, // 23
933  { 0.140625, 0.00000, 0.00000, -0.0468750, -0.0468750, 0.00000, 0.00000, 0.0156250, 0.00000, 0.00000, 0.00000, 0.281250, 0.281250, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000 }, // 24
934  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.140625, -0.0468750, 0.0156250, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.281250, -0.0937500, -0.0937500, 0.281250, 0.00000, 0.562500 }, // 25
935  { 0.052734375, -0.017578125, 0.005859375, -0.017578125, -0.017578125, 0.005859375, -0.001953125, 0.005859375, 0.10546875, -0.03515625, -0.03515625, 0.10546875, 0.10546875, -0.03515625, 0.01171875, -0.03515625, -0.03515625, 0.01171875, 0.01171875, -0.03515625, 0.2109375, 0.2109375, -0.0703125, -0.0703125, 0.2109375, -0.0703125, 0.421875 } // 26
936  },
937 
938  // embedding matrix for child 1
939  {
940  // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
941  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 0
942  { 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 1
943  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 2
944  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 3
945  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 4
946  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 5
947  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 6
948  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 }, // 7
949  { -0.125000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 8
950  { 0.00000, 0.375000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 9
951  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 10
952  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 11
953  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 12
954  { 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 13
955  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 14
956  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.750000 }, // 15
957  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 16
958  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 17
959  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.750000 }, // 18
960  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.00000, 0.750000 }, // 19
961  { -0.0468750, 0.140625, -0.0468750, 0.0156250, 0.00000, 0.00000, 0.00000, 0.00000, 0.281250, 0.281250, -0.0937500, -0.0937500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 20
962  { -0.0468750, 0.140625, 0.00000, 0.00000, 0.0156250, -0.0468750, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, -0.0937500, 0.281250, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 21
963  { 0.00000, 0.140625, -0.0468750, 0.00000, 0.00000, -0.0468750, 0.0156250, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, 0.281250, -0.0937500, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000, 0.00000 }, // 22
964  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.140625, 0.00000, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.0156250, 0.281250, 0.00000, 0.281250, 0.00000, -0.0937500, -0.0937500, 0.562500 }, // 23
965  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.140625, 0.00000, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.0156250, 0.00000, 0.281250, 0.281250, 0.00000, -0.0937500, 0.00000, -0.0937500, 0.562500 }, // 24
966  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.140625, -0.0468750, 0.0156250, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.281250, 0.281250, -0.0937500, -0.0937500, 0.00000, 0.562500 }, // 25
967  { -0.017578125, 0.052734375, -0.017578125, 0.005859375, 0.005859375, -0.017578125, 0.005859375, -0.001953125, 0.10546875, 0.10546875, -0.03515625, -0.03515625, -0.03515625, 0.10546875, -0.03515625, 0.01171875, -0.03515625, -0.03515625, 0.01171875, 0.01171875, 0.2109375, 0.2109375, 0.2109375, -0.0703125, -0.0703125, -0.0703125, 0.421875 } // 26
968 
969  },
970 
971  // embedding matrix for child 2
972  {
973  // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
974  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 0
975  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 1
976  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 2
977  { 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 3
978  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000 }, // 4
979  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 }, // 5
980  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000 }, // 6
981  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 7
982  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 8
983  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 9
984  { 0.00000, 0.00000, -0.125000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 10
985  { -0.125000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 11
986  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000 }, // 12
987  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.750000 }, // 13
988  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000 }, // 14
989  { 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 15
990  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.750000 }, // 16
991  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.00000, 0.750000 }, // 17
992  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000 }, // 18
993  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000 }, // 19
994  { -0.0468750, 0.0156250, -0.0468750, 0.140625, 0.00000, 0.00000, 0.00000, 0.00000, -0.0937500, -0.0937500, 0.281250, 0.281250, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 20
995  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.140625, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.0156250, 0.00000, -0.0468750, 0.281250, 0.00000, -0.0937500, 0.00000, 0.281250, -0.0937500, 0.562500 }, // 21
996  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.140625, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.0156250, 0.00000, -0.0468750, 0.00000, 0.281250, -0.0937500, 0.00000, 0.281250, 0.00000, -0.0937500, 0.562500 }, // 22
997  { 0.00000, 0.00000, -0.0468750, 0.140625, 0.00000, 0.00000, 0.0156250, -0.0468750, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, -0.0937500, 0.281250, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000 }, // 23
998  { -0.0468750, 0.00000, 0.00000, 0.140625, 0.0156250, 0.00000, 0.00000, -0.0468750, 0.00000, 0.00000, 0.00000, 0.281250, -0.0937500, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000 }, // 24
999  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.0156250, -0.0468750, 0.140625, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0937500, -0.0937500, 0.281250, 0.281250, 0.00000, 0.562500 }, // 25
1000  { -0.017578125, 0.005859375, -0.017578125, 0.052734375, 0.005859375, -0.001953125, 0.005859375, -0.017578125, -0.03515625, -0.03515625, 0.10546875, 0.10546875, -0.03515625, 0.01171875, -0.03515625, 0.10546875, 0.01171875, 0.01171875, -0.03515625, -0.03515625, 0.2109375, -0.0703125, -0.0703125, 0.2109375, 0.2109375, -0.0703125, 0.421875 } // 26
1001  },
1002 
1003  // embedding matrix for child 3
1004  {
1005  // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
1006  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 0
1007  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 1
1008  { 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 2
1009  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 3
1010  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 }, // 4
1011  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 5
1012  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 6
1013  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000 }, // 7
1014  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 8
1015  { 0.00000, -0.125000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 9
1016  { 0.00000, 0.00000, 0.375000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 10
1017  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 11
1018  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.750000 }, // 12
1019  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 13
1020  { 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 14
1021  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000 }, // 15
1022  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.750000 }, // 16
1023  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 17
1024  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000 }, // 18
1025  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.00000, 0.750000 }, // 19
1026  { 0.0156250, -0.0468750, 0.140625, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, -0.0937500, 0.281250, 0.281250, -0.0937500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 20
1027  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.140625, 0.00000, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.0156250, 0.281250, 0.00000, 0.281250, 0.00000, -0.0937500, -0.0937500, 0.562500 }, // 21
1028  { 0.00000, -0.0468750, 0.140625, 0.00000, 0.00000, 0.0156250, -0.0468750, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, -0.0937500, 0.281250, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000, 0.00000 }, // 22
1029  { 0.00000, 0.00000, 0.140625, -0.0468750, 0.00000, 0.00000, -0.0468750, 0.0156250, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, 0.281250, -0.0937500, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000 }, // 23
1030  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.140625, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.0156250, 0.00000, -0.0468750, 0.00000, 0.281250, -0.0937500, 0.00000, 0.281250, 0.00000, -0.0937500, 0.562500 }, // 24
1031  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.0156250, -0.0468750, 0.140625, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0937500, 0.281250, 0.281250, -0.0937500, 0.00000, 0.562500 }, // 25
1032  { 0.005859375, -0.017578125, 0.052734375, -0.017578125, -0.001953125, 0.005859375, -0.017578125, 0.005859375, -0.03515625, 0.10546875, 0.10546875, -0.03515625, 0.01171875, -0.03515625, 0.10546875, -0.03515625, 0.01171875, -0.03515625, -0.03515625, 0.01171875, 0.2109375, -0.0703125, 0.2109375, 0.2109375, -0.0703125, -0.0703125, 0.421875 } // 26
1033  },
1034 
1035  // embedding matrix for child 4
1036  {
1037  // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
1038  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 0
1039  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 1
1040  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 }, // 2
1041  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000 }, // 3
1042  { 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 4
1043  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 5
1044  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000 }, // 6
1045  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 7
1046  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 8
1047  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.00000, 0.750000 }, // 9
1048  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.750000 }, // 10
1049  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000 }, // 11
1050  { -0.125000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 12
1051  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 13
1052  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.750000 }, // 14
1053  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000 }, // 15
1054  { 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 16
1055  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000 }, // 17
1056  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000 }, // 18
1057  { 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 19
1058  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.140625, -0.0468750, 0.0156250, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.281250, -0.0937500, -0.0937500, 0.281250, 0.00000, 0.562500 }, // 20
1059  { -0.0468750, 0.0156250, 0.00000, 0.00000, 0.140625, -0.0468750, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, 0.281250, -0.0937500, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 21
1060  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.0156250, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.140625, 0.00000, -0.0468750, 0.00000, -0.0937500, 0.281250, 0.00000, -0.0937500, 0.00000, 0.281250, 0.562500 }, // 22
1061  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.0156250, 0.00000, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.140625, -0.0937500, 0.00000, -0.0937500, 0.00000, 0.281250, 0.281250, 0.562500 }, // 23
1062  { -0.0468750, 0.00000, 0.00000, 0.0156250, 0.140625, 0.00000, 0.00000, -0.0468750, 0.00000, 0.00000, 0.00000, -0.0937500, 0.281250, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000 }, // 24
1063  { 0.00000, 0.00000, 0.00000, 0.00000, 0.140625, -0.0468750, 0.0156250, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.281250, -0.0937500, -0.0937500, 0.281250, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000 }, // 25
1064  { -0.017578125, 0.005859375, -0.001953125, 0.005859375, 0.052734375, -0.017578125, 0.005859375, -0.017578125, -0.03515625, 0.01171875, 0.01171875, -0.03515625, 0.10546875, -0.03515625, 0.01171875, -0.03515625, 0.10546875, -0.03515625, -0.03515625, 0.10546875, -0.0703125, 0.2109375, -0.0703125, -0.0703125, 0.2109375, 0.2109375, 0.421875 } // 26
1065  },
1066 
1067  // embedding matrix for child 5
1068  {
1069  // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
1070  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 0
1071  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 1
1072  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 2
1073  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 }, // 3
1074  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 4
1075  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 5
1076  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 6
1077  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000 }, // 7
1078  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 8
1079  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 9
1080  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.750000 }, // 10
1081  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.00000, 0.750000 }, // 11
1082  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 12
1083  { 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 13
1084  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 14
1085  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.750000 }, // 15
1086  { 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 16
1087  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 17
1088  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000 }, // 18
1089  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000 }, // 19
1090  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.140625, -0.0468750, 0.0156250, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.281250, 0.281250, -0.0937500, -0.0937500, 0.00000, 0.562500 }, // 20
1091  { 0.0156250, -0.0468750, 0.00000, 0.00000, -0.0468750, 0.140625, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, -0.0937500, 0.281250, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 21
1092  { 0.00000, -0.0468750, 0.0156250, 0.00000, 0.00000, 0.140625, -0.0468750, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, 0.281250, -0.0937500, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000, 0.00000 }, // 22
1093  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.0156250, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.140625, 0.00000, -0.0468750, -0.0937500, 0.00000, 0.281250, 0.00000, -0.0937500, 0.281250, 0.562500 }, // 23
1094  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.0156250, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.140625, 0.00000, -0.0468750, 0.00000, -0.0937500, 0.281250, 0.00000, -0.0937500, 0.00000, 0.281250, 0.562500 }, // 24
1095  { 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.140625, -0.0468750, 0.0156250, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.281250, 0.281250, -0.0937500, -0.0937500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000 }, // 25
1096  { 0.005859375, -0.017578125, 0.005859375, -0.001953125, -0.017578125, 0.052734375, -0.017578125, 0.005859375, -0.03515625, -0.03515625, 0.01171875, 0.01171875, -0.03515625, 0.10546875, -0.03515625, 0.01171875, 0.10546875, 0.10546875, -0.03515625, -0.03515625, -0.0703125, 0.2109375, 0.2109375, -0.0703125, -0.0703125, 0.2109375, 0.421875 } // 26
1097  },
1098 
1099  // embedding matrix for child 6
1100  {
1101  // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
1102  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000 }, // 0
1103  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 }, // 1
1104  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000 }, // 2
1105  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 3
1106  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 4
1107  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000 }, // 5
1108  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 6
1109  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 7
1110  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.750000 }, // 8
1111  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.00000, 0.750000 }, // 9
1112  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000 }, // 10
1113  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000 }, // 11
1114  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000 }, // 12
1115  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.750000 }, // 13
1116  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000 }, // 14
1117  { 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 15
1118  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000 }, // 16
1119  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000 }, // 17
1120  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 18
1121  { 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 19
1122  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.0156250, -0.0468750, 0.140625, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0937500, -0.0937500, 0.281250, 0.281250, 0.00000, 0.562500 }, // 20
1123  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.0156250, 0.00000, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.140625, -0.0937500, 0.00000, -0.0937500, 0.00000, 0.281250, 0.281250, 0.562500 }, // 21
1124  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.0156250, 0.00000, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.140625, 0.00000, -0.0937500, -0.0937500, 0.00000, 0.281250, 0.00000, 0.281250, 0.562500 }, // 22
1125  { 0.00000, 0.00000, 0.0156250, -0.0468750, 0.00000, 0.00000, -0.0468750, 0.140625, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, -0.0937500, 0.281250, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000 }, // 23
1126  { 0.0156250, 0.00000, 0.00000, -0.0468750, -0.0468750, 0.00000, 0.00000, 0.140625, 0.00000, 0.00000, 0.00000, -0.0937500, -0.0937500, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000 }, // 24
1127  { 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.0156250, -0.0468750, 0.140625, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0937500, -0.0937500, 0.281250, 0.281250, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000 }, // 25
1128  { 0.005859375, -0.001953125, 0.005859375, -0.017578125, -0.017578125, 0.005859375, -0.017578125, 0.052734375, 0.01171875, 0.01171875, -0.03515625, -0.03515625, -0.03515625, 0.01171875, -0.03515625, 0.10546875, -0.03515625, -0.03515625, 0.10546875, 0.10546875, -0.0703125, -0.0703125, -0.0703125, 0.2109375, 0.2109375, 0.2109375, 0.421875 } // 26
1129  },
1130 
1131  // embedding matrix for child 7
1132  {
1133  // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
1134  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000 }, // 0
1135  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 1
1136  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 2
1137  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000 }, // 3
1138  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000 }, // 4
1139  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 5
1140  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 6
1141  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 1.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 7
1142  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.750000 }, // 8
1143  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 9
1144  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000 }, // 10
1145  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.00000, 0.750000 }, // 11
1146  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.750000 }, // 12
1147  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 13
1148  { 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 14
1149  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000 }, // 15
1150  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.00000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000 }, // 16
1151  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 17
1152  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, -0.125000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 18
1153  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.125000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.00000 }, // 19
1154  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.0156250, -0.0468750, 0.140625, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0937500, 0.281250, 0.281250, -0.0937500, 0.00000, 0.562500 }, // 20
1155  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.0156250, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.140625, 0.00000, -0.0468750, -0.0937500, 0.00000, 0.281250, 0.00000, -0.0937500, 0.281250, 0.562500 }, // 21
1156  { 0.00000, 0.0156250, -0.0468750, 0.00000, 0.00000, -0.0468750, 0.140625, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, -0.0937500, 0.281250, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000, 0.00000 }, // 22
1157  { 0.00000, 0.00000, -0.0468750, 0.0156250, 0.00000, 0.00000, 0.140625, -0.0468750, 0.00000, 0.00000, -0.0937500, 0.00000, 0.00000, 0.00000, 0.281250, -0.0937500, 0.00000, 0.00000, 0.281250, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000, 0.00000, 0.00000 }, // 23
1158  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.0156250, 0.00000, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0468750, 0.00000, 0.140625, 0.00000, -0.0937500, -0.0937500, 0.00000, 0.281250, 0.00000, 0.281250, 0.562500 }, // 24
1159  { 0.00000, 0.00000, 0.00000, 0.00000, 0.0156250, -0.0468750, 0.140625, -0.0468750, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, -0.0937500, 0.281250, 0.281250, -0.0937500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.562500, 0.00000 }, // 25
1160  { -0.001953125, 0.005859375, -0.017578125, 0.005859375, 0.005859375, -0.017578125, 0.052734375, -0.017578125, 0.01171875, -0.03515625, -0.03515625, 0.01171875, 0.01171875, -0.03515625, 0.10546875, -0.03515625, -0.03515625, 0.10546875, 0.10546875, -0.03515625, -0.0703125, -0.0703125, 0.2109375, 0.2109375, -0.0703125, 0.2109375, 0.421875 } // 26
1161  }
1162  };
1163 
1164 #endif
1165 
1166 } // namespace libMesh
libMesh::dof_id_type
uint8_t dof_id_type
Definition: id_types.h:67
libMesh::Hex::_second_order_vertex_child_number
static const unsigned short int _second_order_vertex_child_number[27]
Vector that names a child sharing each second order node.
Definition: cell_hex.h:182
libMesh::Elem::compute_key
static dof_id_type compute_key(dof_id_type n0)
Definition: elem.h:2683
libMesh::Hex27::default_order
virtual Order default_order() const override
Definition: cell_hex27.C:170
libMesh::Hex27::is_edge
virtual bool is_edge(const unsigned int i) const override
Definition: cell_hex27.C:79
libMesh::Hex27::connectivity
virtual void connectivity(const unsigned int sc, const IOPackage iop, std::vector< dof_id_type > &conn) const override
Definition: cell_hex27.C:271
libMesh::IOPackage
IOPackage
libMesh interfaces with several different software packages for the purposes of creating,...
Definition: enum_io_package.h:37
libMesh::Hex27::is_vertex
virtual bool is_vertex(const unsigned int i) const override
Definition: cell_hex27.C:72
libMesh::Hex::_second_order_vertex_child_index
static const unsigned short int _second_order_vertex_child_index[27]
Vector that names the child vertex index for each second order node.
Definition: cell_hex.h:187
libMesh::Hex27::which_node_am_i
virtual unsigned int which_node_am_i(unsigned int side, unsigned int side_node) const override
Definition: cell_hex27.C:221
libMesh
The libMesh namespace provides an interface to certain functionality in the library.
Definition: factoryfunction.C:55
libMesh::Hex27::num_children
static const int num_children
Definition: cell_hex27.h:217
libMesh::Order
Order
Definition: enum_order.h:40
libMesh::INVALID_IO_PACKAGE
Definition: enum_io_package.h:48
end
IterBase * end
Also have a polymorphic pointer to the end object, this prevents iterating past the end.
Definition: variant_filter_iterator.h:343
std::sqrt
MetaPhysicL::DualNumber< T, D > sqrt(const MetaPhysicL::DualNumber< T, D > &in)
libMesh::Hex27::is_node_on_side
virtual bool is_node_on_side(const unsigned int n, const unsigned int s) const override
Definition: cell_hex27.C:97
libMesh::triple_product
T triple_product(const TypeVector< T > &a, const TypeVector< T > &b, const TypeVector< T > &c)
Definition: type_vector.h:1106
libMesh::Hex27::has_affine_map
virtual bool has_affine_map() const override
Definition: cell_hex27.C:124
libMesh::SECOND
Definition: enum_order.h:43
libMesh::Elem::_nodes
Node ** _nodes
Pointers to the nodes we are connected to.
Definition: elem.h:1743
libMesh::Elem::point
const Point & point(const unsigned int i) const
Definition: elem.h:1955
libMesh::Hex27::num_nodes
static const int num_nodes
Geometric constants for Hex27.
Definition: cell_hex27.h:214
libMesh::Hex27::n_nodes
virtual unsigned int n_nodes() const override
Definition: cell_hex27.h:94
libMesh::libmesh_assert
libmesh_assert(ctx)
libMesh::Hex27::build_side_ptr
virtual std::unique_ptr< Elem > build_side_ptr(const unsigned int i, bool proxy=true) override
Builds a QUAD9 built coincident with face i.
Definition: cell_hex27.C:232
libMesh::Hex27::second_order_child_vertex
virtual std::pair< unsigned short int, unsigned short int > second_order_child_vertex(const unsigned int n) const override
Definition: cell_hex27.C:654
libMesh::Elem::volume
virtual Real volume() const
Definition: elem.C:2617
libMesh::Hex27::build_edge_ptr
virtual std::unique_ptr< Elem > build_edge_ptr(const unsigned int i) override
Builds a EDGE3 built coincident with edge i.
Definition: cell_hex27.C:262
libMesh::Hex27::n_second_order_adjacent_vertices
virtual unsigned int n_second_order_adjacent_vertices(const unsigned int) const override
Definition: cell_hex27.C:553
libMesh::Hex27::nodes_per_side
static const int nodes_per_side
Definition: cell_hex27.h:218
libMesh::Hex27::_embedding_matrix
static const float _embedding_matrix[num_children][num_nodes][num_nodes]
Matrix that computes new nodal locations/solution values from current nodes/solution.
Definition: cell_hex27.h:261
libMesh::Point
A Point defines a location in LIBMESH_DIM dimensional Real space.
Definition: point.h:38
libMesh::Elem::key
virtual dof_id_type key() const
Definition: elem.C:410
libMesh::Elem::mapping_type
ElemMappingType mapping_type() const
Definition: elem.h:2524
libMesh::Hex27::nodes_per_edge
static const int nodes_per_edge
Definition: cell_hex27.h:219
libMesh::Hex27::n_sub_elem
virtual unsigned int n_sub_elem() const override
Definition: cell_hex27.h:99
libMesh::Hex27::is_face
virtual bool is_face(const unsigned int i) const override
Definition: cell_hex27.C:88
libMesh::Hex27::num_edges
static const int num_edges
Definition: cell_hex27.h:216
libMesh::Hex27::nodes_on_side
virtual std::vector< unsigned int > nodes_on_side(const unsigned int s) const override
Definition: cell_hex27.C:107
libMesh::Hex27::side_nodes_map
static const unsigned int side_nodes_map[num_sides][nodes_per_side]
This maps the node of the side to element node numbers.
Definition: cell_hex27.h:225
libMesh::LAGRANGE_MAP
Definition: enum_elem_type.h:83
libMesh::Hex27::volume
virtual Real volume() const override
A specialization for computing the volume of a Hex27.
Definition: cell_hex27.C:670
libMesh::Hex::n_vertices
virtual unsigned int n_vertices() const override final
Definition: cell_hex.h:78
libMesh::Elem::subdomain_id
subdomain_id_type subdomain_id() const
Definition: elem.h:2069
libMesh::Hex27::second_order_adjacent_vertex
virtual unsigned short int second_order_adjacent_vertex(const unsigned int n, const unsigned int v) const override
Definition: cell_hex27.C:589
libMesh::Hex::n_sides
virtual unsigned int n_sides() const override final
Definition: cell_hex.h:73
libMesh::Hex27::is_node_on_edge
virtual bool is_node_on_edge(const unsigned int n, const unsigned int e) const override
Definition: cell_hex27.C:113
libMesh::VTK
Definition: enum_io_package.h:42
libMesh::QUAD9
Definition: enum_elem_type.h:43
libMesh::Elem::node_id
dof_id_type node_id(const unsigned int i) const
Definition: elem.h:1977
libMesh::Real
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Definition: libmesh_common.h:121
libMesh::Hex27::edge_nodes_map
static const unsigned int edge_nodes_map[num_edges][nodes_per_edge]
This maps the node of the edge to element node numbers.
Definition: cell_hex27.h:231
libMesh::Hex::_second_order_adjacent_vertices
static const unsigned short int _second_order_adjacent_vertices[12][2]
Matrix that tells which vertices define the location of mid-side (or second-order) nodes.
Definition: cell_hex.h:177
libMesh::Hex::n_edges
virtual unsigned int n_edges() const override final
Definition: cell_hex.h:83
libMesh::Hex27::_remaining_second_order_adjacent_vertices
static const unsigned short int _remaining_second_order_adjacent_vertices[6][4]
Matrix that tells which vertices define the location of mid-side (or second-order) nodes.
Definition: cell_hex27.h:282
libMesh::Elem::node_ptr
const Node * node_ptr(const unsigned int i) const
Definition: elem.h:2009
libMesh::Hex27::num_sides
static const int num_sides
Definition: cell_hex27.h:215
libMesh::TypeVector::relative_fuzzy_equals
bool relative_fuzzy_equals(const TypeVector< T > &rhs, Real tol=TOLERANCE) const
Definition: type_vector.h:1042
libMesh::TECPLOT
Definition: enum_io_package.h:39