cell_hex20.C
Go to the documentation of this file.
1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License, or (at your option) any later version.
8 
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
13 
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 
18 
19 // C++ includes
20 
21 // Local includes
22 #include "libmesh/side.h"
23 #include "libmesh/cell_hex20.h"
24 #include "libmesh/edge_edge3.h"
25 #include "libmesh/face_quad8.h"
26 
27 namespace libMesh
28 {
29 
30 
31 
32 // ------------------------------------------------------------
33 // Hex20 class static member initializations
34 
35 const unsigned int Hex20::side_nodes_map[6][8] =
36 {
37  {0, 3, 2, 1, 11, 10, 9, 8}, // Side 0
38  {0, 1, 5, 4, 8, 13, 16, 12}, // Side 1
39  {1, 2, 6, 5, 9, 14, 17, 13}, // Side 2
40  {2, 3, 7, 6, 10, 15, 18, 14}, // Side 3
41  {3, 0, 4, 7, 11, 12, 19, 15}, // Side 4
42  {4, 5, 6, 7, 16, 17, 18, 19} // Side 5
43 };
44 
45 const unsigned int Hex20::edge_nodes_map[12][3] =
46 {
47  {0, 1, 8}, // Side 0
48  {1, 2, 9}, // Side 1
49  {2, 3, 10}, // Side 2
50  {0, 3, 11}, // Side 3
51  {0, 4, 12}, // Side 4
52  {1, 5, 13}, // Side 5
53  {2, 6, 14}, // Side 6
54  {3, 7, 15}, // Side 7
55  {4, 5, 16}, // Side 8
56  {5, 6, 17}, // Side 9
57  {6, 7, 18}, // Side 10
58  {4, 7, 19} // Side 11
59 };
60 
61 
62 
63 // ------------------------------------------------------------
64 // Hex20 class member functions
65 
66 bool Hex20::is_vertex(const unsigned int i) const
67 {
68  if (i < 8)
69  return true;
70  return false;
71 }
72 
73 bool Hex20::is_edge(const unsigned int i) const
74 {
75  if (i > 7)
76  return true;
77  return false;
78 }
79 
80 bool Hex20::is_face(const unsigned int) const
81 {
82  return false;
83 }
84 
85 bool Hex20::is_node_on_side(const unsigned int n,
86  const unsigned int s) const
87 {
88  libmesh_assert_less (s, n_sides());
89  for (unsigned int i = 0; i != 8; ++i)
90  if (side_nodes_map[s][i] == n)
91  return true;
92  return false;
93 }
94 
95 bool Hex20::is_node_on_edge(const unsigned int n,
96  const unsigned int e) const
97 {
98  libmesh_assert_less (e, n_edges());
99  for (unsigned int i = 0; i != 3; ++i)
100  if (edge_nodes_map[e][i] == n)
101  return true;
102  return false;
103 }
104 
105 
106 
108 {
109  // Make sure x-edge endpoints are affine
110  Point v = this->point(1) - this->point(0);
111  if (!v.relative_fuzzy_equals(this->point(2) - this->point(3)) ||
112  !v.relative_fuzzy_equals(this->point(5) - this->point(4)) ||
113  !v.relative_fuzzy_equals(this->point(6) - this->point(7)))
114  return false;
115  // Make sure x-edges are straight
116  v /= 2;
117  if (!v.relative_fuzzy_equals(this->point(8) - this->point(0)) ||
118  !v.relative_fuzzy_equals(this->point(10) - this->point(3)) ||
119  !v.relative_fuzzy_equals(this->point(16) - this->point(4)) ||
120  !v.relative_fuzzy_equals(this->point(18) - this->point(7)))
121  return false;
122  // Make sure xz-faces are identical parallelograms
123  v = this->point(4) - this->point(0);
124  if (!v.relative_fuzzy_equals(this->point(7) - this->point(3)))
125  return false;
126  v /= 2;
127  if (!v.relative_fuzzy_equals(this->point(12) - this->point(0)) ||
128  !v.relative_fuzzy_equals(this->point(13) - this->point(1)) ||
129  !v.relative_fuzzy_equals(this->point(14) - this->point(2)) ||
130  !v.relative_fuzzy_equals(this->point(15) - this->point(3)))
131  return false;
132  // Make sure y-edges are straight
133  v = (this->point(3) - this->point(0))/2;
134  if (!v.relative_fuzzy_equals(this->point(11) - this->point(0)) ||
135  !v.relative_fuzzy_equals(this->point(9) - this->point(1)) ||
136  !v.relative_fuzzy_equals(this->point(17) - this->point(5)) ||
137  !v.relative_fuzzy_equals(this->point(19) - this->point(4)))
138  return false;
139  // If all the above checks out, the map is affine
140  return true;
141 }
142 
143 
144 
145 AutoPtr<Elem> Hex20::build_side (const unsigned int i,
146  bool proxy ) const
147 {
148  libmesh_assert_less (i, this->n_sides());
149 
150  if (proxy)
151  {
152  AutoPtr<Elem> ap(new Side<Quad8,Hex20>(this,i));
153  return ap;
154  }
155 
156  else
157  {
158  AutoPtr<Elem> face(new Quad8);
159  face->subdomain_id() = this->subdomain_id();
160 
161  // Think of a unit cube: (-1,1) x (-1,1)x (1,1)
162  switch (i)
163  {
164  case 0: // the face at z=0
165  {
166  face->set_node(0) = this->get_node(0);
167  face->set_node(1) = this->get_node(3);
168  face->set_node(2) = this->get_node(2);
169  face->set_node(3) = this->get_node(1);
170  face->set_node(4) = this->get_node(11);
171  face->set_node(5) = this->get_node(10);
172  face->set_node(6) = this->get_node(9);
173  face->set_node(7) = this->get_node(8);
174 
175  return face;
176  }
177  case 1: // the face at y = 0
178  {
179  face->set_node(0) = this->get_node(0);
180  face->set_node(1) = this->get_node(1);
181  face->set_node(2) = this->get_node(5);
182  face->set_node(3) = this->get_node(4);
183  face->set_node(4) = this->get_node(8);
184  face->set_node(5) = this->get_node(13);
185  face->set_node(6) = this->get_node(16);
186  face->set_node(7) = this->get_node(12);
187 
188  return face;
189  }
190  case 2: // the face at x=1
191  {
192  face->set_node(0) = this->get_node(1);
193  face->set_node(1) = this->get_node(2);
194  face->set_node(2) = this->get_node(6);
195  face->set_node(3) = this->get_node(5);
196  face->set_node(4) = this->get_node(9);
197  face->set_node(5) = this->get_node(14);
198  face->set_node(6) = this->get_node(17);
199  face->set_node(7) = this->get_node(13);
200 
201  return face;
202  }
203  case 3: // the face at y=1
204  {
205  face->set_node(0) = this->get_node(2);
206  face->set_node(1) = this->get_node(3);
207  face->set_node(2) = this->get_node(7);
208  face->set_node(3) = this->get_node(6);
209  face->set_node(4) = this->get_node(10);
210  face->set_node(5) = this->get_node(15);
211  face->set_node(6) = this->get_node(18);
212  face->set_node(7) = this->get_node(14);
213 
214  return face;
215  }
216  case 4: // the face at x=0
217  {
218  face->set_node(0) = this->get_node(3);
219  face->set_node(1) = this->get_node(0);
220  face->set_node(2) = this->get_node(4);
221  face->set_node(3) = this->get_node(7);
222  face->set_node(4) = this->get_node(11);
223  face->set_node(5) = this->get_node(12);
224  face->set_node(6) = this->get_node(19);
225  face->set_node(7) = this->get_node(15);
226 
227  return face;
228  }
229  case 5: // the face at z=1
230  {
231  face->set_node(0) = this->get_node(4);
232  face->set_node(1) = this->get_node(5);
233  face->set_node(2) = this->get_node(6);
234  face->set_node(3) = this->get_node(7);
235  face->set_node(4) = this->get_node(16);
236  face->set_node(5) = this->get_node(17);
237  face->set_node(6) = this->get_node(18);
238  face->set_node(7) = this->get_node(19);
239 
240  return face;
241  }
242  default:
243  {
244  libmesh_error();
245  return face;
246  }
247  }
248  }
249 
250  // We'll never get here.
251  libmesh_error();
252  AutoPtr<Elem> ap(NULL); return ap;
253 }
254 
255 
256 
257 AutoPtr<Elem> Hex20::build_edge (const unsigned int i) const
258 {
259  libmesh_assert_less (i, this->n_edges());
260 
261  AutoPtr<Elem> ap(new SideEdge<Edge3,Hex20>(this,i));
262  return ap;
263 }
264 
265 
266 
267 void Hex20::connectivity(const unsigned int sc,
268  const IOPackage iop,
269  std::vector<dof_id_type>& conn) const
270 {
272  libmesh_assert_less (sc, this->n_sub_elem());
273  libmesh_assert_not_equal_to (iop, INVALID_IO_PACKAGE);
274 
275 
276  switch (iop)
277  {
278  case TECPLOT:
279  {
280  switch (sc)
281  {
282  case 0:
283  conn.resize(8);
284  conn[0] = this->node(0)+1;
285  conn[1] = this->node(1)+1;
286  conn[2] = this->node(2)+1;
287  conn[3] = this->node(3)+1;
288  conn[4] = this->node(4)+1;
289  conn[5] = this->node(5)+1;
290  conn[6] = this->node(6)+1;
291  conn[7] = this->node(7)+1;
292 
293  return;
294 
295  default:
296  libmesh_error();
297  }
298  }
299 
300  case VTK:
301  {
302  switch (sc)
303  {
304  case 0:
305  conn.resize(20);
306  conn[0] = this->node(0);
307  conn[1] = this->node(1);
308  conn[2] = this->node(2);
309  conn[3] = this->node(3);
310  conn[4] = this->node(4);
311  conn[5] = this->node(5);
312  conn[6] = this->node(6);
313  conn[7] = this->node(7);
314  conn[8] = this->node(8);
315  conn[9] = this->node(9);
316  conn[10] = this->node(10);
317  conn[11] = this->node(11);
318  conn[12] = this->node(16);
319  conn[13] = this->node(17);
320  conn[14] = this->node(18);
321  conn[15] = this->node(19);
322  conn[16] = this->node(12);
323  conn[17] = this->node(13);
324  conn[18] = this->node(14);
325  conn[19] = this->node(15);
326  return;
327 
328  default:
329  libmesh_error();
330  }
331  }
332 
333  default:
334  libmesh_error();
335  }
336 
337  libmesh_error();
338 }
339 
340 
341 
342 
343 unsigned short int Hex20::second_order_adjacent_vertex (const unsigned int n,
344  const unsigned int v) const
345 {
346  libmesh_assert_greater_equal (n, this->n_vertices());
347  libmesh_assert_less (n, this->n_nodes());
348  libmesh_assert_less (v, 2);
349  /*
350  * the _second_order_adjacent_vertices matrix is
351  * stored in cell_hex.C, since this matrix is identical
352  * for Hex20 and Hex27 (for the first 12 higher-order nodes)
353  */
354  return _second_order_adjacent_vertices[n-this->n_vertices()][v];
355 }
356 
357 
358 
359 std::pair<unsigned short int, unsigned short int>
360 Hex20::second_order_child_vertex (const unsigned int n) const
361 {
362  libmesh_assert_greater_equal (n, this->n_vertices());
363  libmesh_assert_less (n, this->n_nodes());
364  /*
365  * the _second_order_vertex_child_* vectors are
366  * stored in cell_hex.C, since they are identical
367  * for Hex20 and Hex27 (for the first 12 higher-order nodes)
368  */
369  return std::pair<unsigned short int, unsigned short int>
372 }
373 
374 
375 
376 
377 #ifdef LIBMESH_ENABLE_AMR
378 
379 const float Hex20::_embedding_matrix[8][20][20] =
380 {
381  // embedding matrix for child 0
382  {
383  // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
384  { 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
385  { 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 }, // 1
386  { -0.250000, -0.250000, -0.250000, -0.250000, 0.00000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.500000, 0.500000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 2
387  { 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 }, // 3
388  { 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
389  { -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000 }, // 5
390  { -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000 }, // 6
391  { -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000 }, // 7
392  { 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 }, // 8
393  { -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.375000, 0.250000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 9
394  { -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.250000, 0.375000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 10
395  { 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 }, // 11
396  { 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 }, // 12
397  { -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.375000, 0.375000, 0.00000, 0.00000, 0.250000, 0.00000, 0.00000, 0.00000 }, // 13
398  { -0.281250, -0.281250, -0.281250, -0.281250, -0.156250, -0.156250, -0.156250, -0.156250, 0.375000, 0.375000, 0.375000, 0.375000, 0.187500, 0.187500, 0.187500, 0.187500, 0.125000, 0.125000, 0.125000, 0.125000 }, // 14
399  { -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, 0.00000, 0.00000, 0.00000, 0.750000, 0.375000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.250000 }, // 15
400  { -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.750000, 0.250000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000 }, // 16
401  { -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, 0.375000, 0.187500, 0.125000, 0.187500, 0.375000, 0.375000, 0.125000, 0.125000, 0.375000, 0.187500, 0.125000, 0.187500 }, // 17
402  { -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, 0.187500, 0.125000, 0.187500, 0.375000, 0.375000, 0.125000, 0.125000, 0.375000, 0.187500, 0.125000, 0.187500, 0.375000 }, // 18
403  { -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, 0.00000, 0.00000, 0.00000, 0.375000, 0.750000, 0.00000, 0.00000, 0.250000, 0.00000, 0.00000, 0.00000, 0.375000 } // 19
404  },
405 
406  // embedding matrix for child 1
407  {
408  // 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19
409  { 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
410  { 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
411  { 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 }, // 2
412  { -0.250000, -0.250000, -0.250000, -0.250000, 0.00000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.500000, 0.500000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 3
413  { -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000 }, // 4
414  { 0.00000, 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 }, // 5
415  { 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000 }, // 6
416  { -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000 }, // 7
417  { -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 }, // 8
418  { 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 }, // 9
419  { -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.750000, 0.375000, 0.250000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 10
420  { -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.375000, 0.250000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 11
421  { -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.375000, 0.375000, 0.00000, 0.00000, 0.250000, 0.00000, 0.00000, 0.00000 }, // 12
422  { 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 }, // 13
423  { 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.375000, 0.375000, 0.00000, 0.00000, 0.250000, 0.00000, 0.00000 }, // 14
424  { -0.281250, -0.281250, -0.281250, -0.281250, -0.156250, -0.156250, -0.156250, -0.156250, 0.375000, 0.375000, 0.375000, 0.375000, 0.187500, 0.187500, 0.187500, 0.187500, 0.125000, 0.125000, 0.125000, 0.125000 }, // 15
425  { -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.250000, 0.750000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000 }, // 16
426  { 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.750000, 0.250000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000 }, // 17
427  { -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, 0.187500, 0.375000, 0.187500, 0.125000, 0.125000, 0.375000, 0.375000, 0.125000, 0.187500, 0.375000, 0.187500, 0.125000 }, // 18
428  { -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, 0.375000, 0.187500, 0.125000, 0.187500, 0.375000, 0.375000, 0.125000, 0.125000, 0.375000, 0.187500, 0.125000, 0.187500 } // 19
429  },
430 
431  // embedding matrix for child 2
432  {
433  // 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19
434  { 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
435  { -0.250000, -0.250000, -0.250000, -0.250000, 0.00000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.500000, 0.500000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 1
436  { 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 }, // 2
437  { 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
438  { -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000 }, // 4
439  { -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000 }, // 5
440  { 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000 }, // 6
441  { 0.00000, 0.00000, 0.00000, 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 }, // 7
442  { -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.250000, 0.375000, 0.750000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 8
443  { -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.250000, 0.375000, 0.750000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 9
444  { 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 }, // 10
445  { -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 }, // 11
446  { -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, 0.00000, 0.00000, 0.00000, 0.750000, 0.375000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.250000 }, // 12
447  { -0.281250, -0.281250, -0.281250, -0.281250, -0.156250, -0.156250, -0.156250, -0.156250, 0.375000, 0.375000, 0.375000, 0.375000, 0.187500, 0.187500, 0.187500, 0.187500, 0.125000, 0.125000, 0.125000, 0.125000 }, // 13
448  { 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.375000, 0.375000, 0.00000, 0.00000, 0.250000, 0.00000 }, // 14
449  { 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 }, // 15
450  { -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, 0.187500, 0.125000, 0.187500, 0.375000, 0.375000, 0.125000, 0.125000, 0.375000, 0.187500, 0.125000, 0.187500, 0.375000 }, // 16
451  { -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, 0.125000, 0.187500, 0.375000, 0.187500, 0.125000, 0.125000, 0.375000, 0.375000, 0.125000, 0.187500, 0.375000, 0.187500 }, // 17
452  { 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.250000, 0.750000, 0.00000, 0.00000, 0.375000, 0.00000 }, // 18
453  { -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, 0.00000, 0.00000, 0.00000, 0.375000, 0.250000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.375000 } // 19
454  },
455 
456  // embedding matrix for child 3
457  {
458  // 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19
459  { -0.250000, -0.250000, -0.250000, -0.250000, 0.00000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.500000, 0.500000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 0
460  { 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 }, // 1
461  { 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
462  { 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 }, // 3
463  { -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000 }, // 4
464  { 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000 }, // 5
465  { 0.00000, 0.00000, 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 }, // 6
466  { 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000 }, // 7
467  { -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.750000, 0.375000, 0.250000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 8
468  { 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 }, // 9
469  { 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 }, // 10
470  { -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.250000, 0.375000, 0.750000, 0.375000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000 }, // 11
471  { -0.281250, -0.281250, -0.281250, -0.281250, -0.156250, -0.156250, -0.156250, -0.156250, 0.375000, 0.375000, 0.375000, 0.375000, 0.187500, 0.187500, 0.187500, 0.187500, 0.125000, 0.125000, 0.125000, 0.125000 }, // 12
472  { 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.375000, 0.375000, 0.00000, 0.00000, 0.250000, 0.00000, 0.00000 }, // 13
473  { 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 }, // 14
474  { 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.375000, 0.375000, 0.00000, 0.00000, 0.250000, 0.00000 }, // 15
475  { -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, 0.187500, 0.375000, 0.187500, 0.125000, 0.125000, 0.375000, 0.375000, 0.125000, 0.187500, 0.375000, 0.187500, 0.125000 }, // 16
476  { 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.250000, 0.750000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000 }, // 17
477  { 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.750000, 0.250000, 0.00000, 0.00000, 0.375000, 0.00000 }, // 18
478  { -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, 0.125000, 0.187500, 0.375000, 0.187500, 0.125000, 0.125000, 0.375000, 0.375000, 0.125000, 0.187500, 0.375000, 0.187500 } // 19
479  },
480 
481  // embedding matrix for child 4
482  {
483  // 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19
484  { 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
485  { -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000 }, // 1
486  { -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000 }, // 2
487  { -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000 }, // 3
488  { 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 }, // 4
489  { 0.00000, 0.00000, 0.00000, 0.00000, 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 }, // 5
490  { 0.00000, 0.00000, 0.00000, 0.00000, -0.250000, -0.250000, -0.250000, -0.250000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.500000, 0.500000 }, // 6
491  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 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
492  { -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.750000, 0.250000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000 }, // 8
493  { -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, 0.375000, 0.187500, 0.125000, 0.187500, 0.375000, 0.375000, 0.125000, 0.125000, 0.375000, 0.187500, 0.125000, 0.187500 }, // 9
494  { -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, 0.187500, 0.125000, 0.187500, 0.375000, 0.375000, 0.125000, 0.125000, 0.375000, 0.187500, 0.125000, 0.187500, 0.375000 }, // 10
495  { -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, 0.00000, 0.00000, 0.00000, 0.375000, 0.750000, 0.00000, 0.00000, 0.250000, 0.00000, 0.00000, 0.00000, 0.375000 }, // 11
496  { -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 }, // 12
497  { -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.250000, 0.00000, 0.00000, 0.00000, 0.375000, 0.375000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000 }, // 13
498  { -0.156250, -0.156250, -0.156250, -0.156250, -0.281250, -0.281250, -0.281250, -0.281250, 0.125000, 0.125000, 0.125000, 0.125000, 0.187500, 0.187500, 0.187500, 0.187500, 0.375000, 0.375000, 0.375000, 0.375000 }, // 14
499  { -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, 0.00000, 0.00000, 0.00000, 0.250000, 0.375000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.750000 }, // 15
500  { 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 }, // 16
501  { 0.00000, 0.00000, 0.00000, 0.00000, -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.375000, 0.250000, 0.375000 }, // 17
502  { 0.00000, 0.00000, 0.00000, 0.00000, -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.250000, 0.375000, 0.750000 }, // 18
503  { 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 } // 19
504  },
505 
506  // embedding matrix for child 5
507  {
508  // 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19
509  { -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000 }, // 0
510  { 0.00000, 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
511  { 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000 }, // 2
512  { -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000 }, // 3
513  { 0.00000, 0.00000, 0.00000, 0.00000, 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 }, // 4
514  { 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 }, // 5
515  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 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 }, // 6
516  { 0.00000, 0.00000, 0.00000, 0.00000, -0.250000, -0.250000, -0.250000, -0.250000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.500000, 0.500000 }, // 7
517  { -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.250000, 0.750000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000 }, // 8
518  { 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.750000, 0.250000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000 }, // 9
519  { -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, 0.187500, 0.375000, 0.187500, 0.125000, 0.125000, 0.375000, 0.375000, 0.125000, 0.187500, 0.375000, 0.187500, 0.125000 }, // 10
520  { -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, 0.375000, 0.187500, 0.125000, 0.187500, 0.375000, 0.375000, 0.125000, 0.125000, 0.375000, 0.187500, 0.125000, 0.187500 }, // 11
521  { -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.250000, 0.00000, 0.00000, 0.00000, 0.375000, 0.375000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000 }, // 12
522  { 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 }, // 13
523  { 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.250000, 0.00000, 0.00000, 0.00000, 0.375000, 0.375000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000 }, // 14
524  { -0.156250, -0.156250, -0.156250, -0.156250, -0.281250, -0.281250, -0.281250, -0.281250, 0.125000, 0.125000, 0.125000, 0.125000, 0.187500, 0.187500, 0.187500, 0.187500, 0.375000, 0.375000, 0.375000, 0.375000 }, // 15
525  { 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 }, // 16
526  { 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 }, // 17
527  { 0.00000, 0.00000, 0.00000, 0.00000, -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.750000, 0.375000, 0.250000 }, // 18
528  { 0.00000, 0.00000, 0.00000, 0.00000, -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.750000, 0.375000, 0.250000, 0.375000 } // 19
529  },
530 
531  // embedding matrix for child 6
532  {
533  // 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19
534  { -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000 }, // 0
535  { -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000 }, // 1
536  { 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000 }, // 2
537  { 0.00000, 0.00000, 0.00000, 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 }, // 3
538  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 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
539  { 0.00000, 0.00000, 0.00000, 0.00000, -0.250000, -0.250000, -0.250000, -0.250000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.500000, 0.500000 }, // 5
540  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 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
541  { 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 }, // 7
542  { -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, 0.187500, 0.125000, 0.187500, 0.375000, 0.375000, 0.125000, 0.125000, 0.375000, 0.187500, 0.125000, 0.187500, 0.375000 }, // 8
543  { -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, 0.125000, 0.187500, 0.375000, 0.187500, 0.125000, 0.125000, 0.375000, 0.375000, 0.125000, 0.187500, 0.375000, 0.187500 }, // 9
544  { 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.250000, 0.750000, 0.00000, 0.00000, 0.375000, 0.00000 }, // 10
545  { -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, 0.00000, 0.00000, 0.00000, 0.375000, 0.250000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000, 0.00000, 0.375000 }, // 11
546  { -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, 0.00000, 0.00000, 0.00000, 0.250000, 0.375000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.750000 }, // 12
547  { -0.156250, -0.156250, -0.156250, -0.156250, -0.281250, -0.281250, -0.281250, -0.281250, 0.125000, 0.125000, 0.125000, 0.125000, 0.187500, 0.187500, 0.187500, 0.187500, 0.375000, 0.375000, 0.375000, 0.375000 }, // 13
548  { 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.250000, 0.00000, 0.00000, 0.00000, 0.375000, 0.375000, 0.00000, 0.00000, 0.750000, 0.00000 }, // 14
549  { 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 }, // 15
550  { 0.00000, 0.00000, 0.00000, 0.00000, -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.250000, 0.375000, 0.750000 }, // 16
551  { 0.00000, 0.00000, 0.00000, 0.00000, -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.250000, 0.375000, 0.750000, 0.375000 }, // 17
552  { 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 }, // 18
553  { 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 } // 19
554  },
555 
556  // embedding matrix for child 7
557  {
558  // 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19
559  { -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, -0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000, 0.250000 }, // 0
560  { 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000 }, // 1
561  { 0.00000, 0.00000, 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 }, // 2
562  { 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, -0.250000, -0.250000, 0.00000, 0.00000, 0.500000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.00000, 0.00000, 0.500000, 0.00000 }, // 3
563  { 0.00000, 0.00000, 0.00000, 0.00000, -0.250000, -0.250000, -0.250000, -0.250000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.500000, 0.500000, 0.500000, 0.500000 }, // 4
564  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 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 }, // 5
565  { 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 }, // 6
566  { 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 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
567  { -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, 0.187500, 0.375000, 0.187500, 0.125000, 0.125000, 0.375000, 0.375000, 0.125000, 0.187500, 0.375000, 0.187500, 0.125000 }, // 8
568  { 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.250000, 0.750000, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000 }, // 9
569  { 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.375000, 0.00000, 0.00000, 0.00000, 0.750000, 0.250000, 0.00000, 0.00000, 0.375000, 0.00000 }, // 10
570  { -0.156250, -0.156250, -0.281250, -0.281250, -0.156250, -0.156250, -0.281250, -0.281250, 0.125000, 0.187500, 0.375000, 0.187500, 0.125000, 0.125000, 0.375000, 0.375000, 0.125000, 0.187500, 0.375000, 0.187500 }, // 11
571  { -0.156250, -0.156250, -0.156250, -0.156250, -0.281250, -0.281250, -0.281250, -0.281250, 0.125000, 0.125000, 0.125000, 0.125000, 0.187500, 0.187500, 0.187500, 0.187500, 0.375000, 0.375000, 0.375000, 0.375000 }, // 12
572  { 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.250000, 0.00000, 0.00000, 0.00000, 0.375000, 0.375000, 0.00000, 0.00000, 0.750000, 0.00000, 0.00000 }, // 13
573  { 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 }, // 14
574  { 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, -0.187500, -0.187500, 0.00000, 0.00000, 0.250000, 0.00000, 0.00000, 0.00000, 0.375000, 0.375000, 0.00000, 0.00000, 0.750000, 0.00000 }, // 15
575  { 0.00000, 0.00000, 0.00000, 0.00000, -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.375000, 0.750000, 0.375000, 0.250000 }, // 16
576  { 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 }, // 17
577  { 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 }, // 18
578  { 0.00000, 0.00000, 0.00000, 0.00000, -0.187500, -0.187500, -0.187500, -0.187500, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.250000, 0.375000, 0.750000, 0.375000 } // 19
579  }
580 };
581 
582 #endif
583 
584 } // namespace libMesh

Site Created By: libMesh Developers
Last modified: February 07 2014 16:57:04 UTC

Hosted By:
SourceForge.net Logo