$extrastylesheet
cell_hex20.C
Go to the documentation of this file.
00001 // The libMesh Finite Element Library.
00002 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
00003 
00004 // This library is free software; you can redistribute it and/or
00005 // modify it under the terms of the GNU Lesser General Public
00006 // License as published by the Free Software Foundation; either
00007 // version 2.1 of the License, or (at your option) any later version.
00008 
00009 // This library is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // Lesser General Public License for more details.
00013 
00014 // You should have received a copy of the GNU Lesser General Public
00015 // License along with this library; if not, write to the Free Software
00016 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 
00018 
00019 // C++ includes
00020 
00021 // Local includes
00022 #include "libmesh/side.h"
00023 #include "libmesh/cell_hex20.h"
00024 #include "libmesh/edge_edge3.h"
00025 #include "libmesh/face_quad8.h"
00026 
00027 namespace libMesh
00028 {
00029 
00030 
00031 
00032 // ------------------------------------------------------------
00033 // Hex20 class static member initializations
00034 
00035 const unsigned int Hex20::side_nodes_map[6][8] =
00036   {
00037     {0, 3, 2, 1, 11, 10,  9,  8}, // Side 0
00038     {0, 1, 5, 4,  8, 13, 16, 12}, // Side 1
00039     {1, 2, 6, 5,  9, 14, 17, 13}, // Side 2
00040     {2, 3, 7, 6, 10, 15, 18, 14}, // Side 3
00041     {3, 0, 4, 7, 11, 12, 19, 15}, // Side 4
00042     {4, 5, 6, 7, 16, 17, 18, 19}  // Side 5
00043   };
00044 
00045 const unsigned int Hex20::edge_nodes_map[12][3] =
00046   {
00047     {0, 1, 8},  // Side 0
00048     {1, 2, 9},  // Side 1
00049     {2, 3, 10}, // Side 2
00050     {0, 3, 11}, // Side 3
00051     {0, 4, 12}, // Side 4
00052     {1, 5, 13}, // Side 5
00053     {2, 6, 14}, // Side 6
00054     {3, 7, 15}, // Side 7
00055     {4, 5, 16}, // Side 8
00056     {5, 6, 17}, // Side 9
00057     {6, 7, 18}, // Side 10
00058     {4, 7, 19}  // Side 11
00059   };
00060 
00061 
00062 
00063 // ------------------------------------------------------------
00064 // Hex20 class member functions
00065 
00066 bool Hex20::is_vertex(const unsigned int i) const
00067 {
00068   if (i < 8)
00069     return true;
00070   return false;
00071 }
00072 
00073 bool Hex20::is_edge(const unsigned int i) const
00074 {
00075   if (i > 7)
00076     return true;
00077   return false;
00078 }
00079 
00080 bool Hex20::is_face(const unsigned int) const
00081 {
00082   return false;
00083 }
00084 
00085 bool Hex20::is_node_on_side(const unsigned int n,
00086                             const unsigned int s) const
00087 {
00088   libmesh_assert_less (s, n_sides());
00089   for (unsigned int i = 0; i != 8; ++i)
00090     if (side_nodes_map[s][i] == n)
00091       return true;
00092   return false;
00093 }
00094 
00095 bool Hex20::is_node_on_edge(const unsigned int n,
00096                             const unsigned int e) const
00097 {
00098   libmesh_assert_less (e, n_edges());
00099   for (unsigned int i = 0; i != 3; ++i)
00100     if (edge_nodes_map[e][i] == n)
00101       return true;
00102   return false;
00103 }
00104 
00105 
00106 
00107 bool Hex20::has_affine_map() const
00108 {
00109   // Make sure x-edge endpoints are affine
00110   Point v = this->point(1) - this->point(0);
00111   if (!v.relative_fuzzy_equals(this->point(2) - this->point(3)) ||
00112       !v.relative_fuzzy_equals(this->point(5) - this->point(4)) ||
00113       !v.relative_fuzzy_equals(this->point(6) - this->point(7)))
00114     return false;
00115   // Make sure x-edges are straight
00116   v /= 2;
00117   if (!v.relative_fuzzy_equals(this->point(8) - this->point(0)) ||
00118       !v.relative_fuzzy_equals(this->point(10) - this->point(3)) ||
00119       !v.relative_fuzzy_equals(this->point(16) - this->point(4)) ||
00120       !v.relative_fuzzy_equals(this->point(18) - this->point(7)))
00121     return false;
00122   // Make sure xz-faces are identical parallelograms
00123   v = this->point(4) - this->point(0);
00124   if (!v.relative_fuzzy_equals(this->point(7) - this->point(3)))
00125     return false;
00126   v /= 2;
00127   if (!v.relative_fuzzy_equals(this->point(12) - this->point(0)) ||
00128       !v.relative_fuzzy_equals(this->point(13) - this->point(1)) ||
00129       !v.relative_fuzzy_equals(this->point(14) - this->point(2)) ||
00130       !v.relative_fuzzy_equals(this->point(15) - this->point(3)))
00131     return false;
00132   // Make sure y-edges are straight
00133   v = (this->point(3) - this->point(0))/2;
00134   if (!v.relative_fuzzy_equals(this->point(11) - this->point(0)) ||
00135       !v.relative_fuzzy_equals(this->point(9) - this->point(1)) ||
00136       !v.relative_fuzzy_equals(this->point(17) - this->point(5)) ||
00137       !v.relative_fuzzy_equals(this->point(19) - this->point(4)))
00138     return false;
00139   // If all the above checks out, the map is affine
00140   return true;
00141 }
00142 
00143 
00144 
00145 UniquePtr<Elem> Hex20::build_side (const unsigned int i,
00146                                    bool proxy ) const
00147 {
00148   libmesh_assert_less (i, this->n_sides());
00149 
00150   if (proxy)
00151     return UniquePtr<Elem>(new Side<Quad8,Hex20>(this,i));
00152 
00153   else
00154     {
00155       Elem* face = new Quad8;
00156       face->subdomain_id() = this->subdomain_id();
00157 
00158       // Think of a unit cube: (-1,1) x (-1,1) x (1,1)
00159       switch (i)
00160         {
00161         case 0:  // the face at z=0
00162           {
00163             face->set_node(0) = this->get_node(0);
00164             face->set_node(1) = this->get_node(3);
00165             face->set_node(2) = this->get_node(2);
00166             face->set_node(3) = this->get_node(1);
00167             face->set_node(4) = this->get_node(11);
00168             face->set_node(5) = this->get_node(10);
00169             face->set_node(6) = this->get_node(9);
00170             face->set_node(7) = this->get_node(8);
00171             break;
00172           }
00173         case 1:  // the face at y = 0
00174           {
00175             face->set_node(0) = this->get_node(0);
00176             face->set_node(1) = this->get_node(1);
00177             face->set_node(2) = this->get_node(5);
00178             face->set_node(3) = this->get_node(4);
00179             face->set_node(4) = this->get_node(8);
00180             face->set_node(5) = this->get_node(13);
00181             face->set_node(6) = this->get_node(16);
00182             face->set_node(7) = this->get_node(12);
00183             break;
00184           }
00185         case 2:  // the face at x=1
00186           {
00187             face->set_node(0) = this->get_node(1);
00188             face->set_node(1) = this->get_node(2);
00189             face->set_node(2) = this->get_node(6);
00190             face->set_node(3) = this->get_node(5);
00191             face->set_node(4) = this->get_node(9);
00192             face->set_node(5) = this->get_node(14);
00193             face->set_node(6) = this->get_node(17);
00194             face->set_node(7) = this->get_node(13);
00195             break;
00196           }
00197         case 3: // the face at y=1
00198           {
00199             face->set_node(0) = this->get_node(2);
00200             face->set_node(1) = this->get_node(3);
00201             face->set_node(2) = this->get_node(7);
00202             face->set_node(3) = this->get_node(6);
00203             face->set_node(4) = this->get_node(10);
00204             face->set_node(5) = this->get_node(15);
00205             face->set_node(6) = this->get_node(18);
00206             face->set_node(7) = this->get_node(14);
00207             break;
00208           }
00209         case 4: // the face at x=0
00210           {
00211             face->set_node(0) = this->get_node(3);
00212             face->set_node(1) = this->get_node(0);
00213             face->set_node(2) = this->get_node(4);
00214             face->set_node(3) = this->get_node(7);
00215             face->set_node(4) = this->get_node(11);
00216             face->set_node(5) = this->get_node(12);
00217             face->set_node(6) = this->get_node(19);
00218             face->set_node(7) = this->get_node(15);
00219             break;
00220           }
00221         case 5: // the face at z=1
00222           {
00223             face->set_node(0) = this->get_node(4);
00224             face->set_node(1) = this->get_node(5);
00225             face->set_node(2) = this->get_node(6);
00226             face->set_node(3) = this->get_node(7);
00227             face->set_node(4) = this->get_node(16);
00228             face->set_node(5) = this->get_node(17);
00229             face->set_node(6) = this->get_node(18);
00230             face->set_node(7) = this->get_node(19);
00231             break;
00232           }
00233         default:
00234           libmesh_error_msg("Unsupported side i = " << i);
00235         }
00236 
00237       return UniquePtr<Elem>(face);
00238     }
00239 
00240   libmesh_error_msg("We'll never get here!");
00241   return UniquePtr<Elem>();
00242 }
00243 
00244 
00245 
00246 UniquePtr<Elem> Hex20::build_edge (const unsigned int i) const
00247 {
00248   libmesh_assert_less (i, this->n_edges());
00249 
00250   return UniquePtr<Elem>(new SideEdge<Edge3,Hex20>(this,i));
00251 }
00252 
00253 
00254 
00255 void Hex20::connectivity(const unsigned int sc,
00256                          const IOPackage iop,
00257                          std::vector<dof_id_type>& conn) const
00258 {
00259   libmesh_assert(_nodes);
00260   libmesh_assert_less (sc, this->n_sub_elem());
00261   libmesh_assert_not_equal_to (iop, INVALID_IO_PACKAGE);
00262 
00263 
00264   switch (iop)
00265     {
00266     case TECPLOT:
00267       {
00268         switch (sc)
00269           {
00270           case 0:
00271             conn.resize(8);
00272             conn[0] = this->node(0)+1;
00273             conn[1] = this->node(1)+1;
00274             conn[2] = this->node(2)+1;
00275             conn[3] = this->node(3)+1;
00276             conn[4] = this->node(4)+1;
00277             conn[5] = this->node(5)+1;
00278             conn[6] = this->node(6)+1;
00279             conn[7] = this->node(7)+1;
00280 
00281             return;
00282 
00283           default:
00284             libmesh_error_msg("Unknown sc = " << sc);
00285           }
00286       }
00287 
00288     case VTK:
00289       {
00290         switch (sc)
00291           {
00292           case 0:
00293             conn.resize(20);
00294             conn[0] = this->node(0);
00295             conn[1] = this->node(1);
00296             conn[2] = this->node(2);
00297             conn[3] = this->node(3);
00298             conn[4] = this->node(4);
00299             conn[5] = this->node(5);
00300             conn[6] = this->node(6);
00301             conn[7] = this->node(7);
00302             conn[8] = this->node(8);
00303             conn[9] = this->node(9);
00304             conn[10] = this->node(10);
00305             conn[11] = this->node(11);
00306             conn[12] = this->node(16);
00307             conn[13] = this->node(17);
00308             conn[14] = this->node(18);
00309             conn[15] = this->node(19);
00310             conn[16] = this->node(12);
00311             conn[17] = this->node(13);
00312             conn[18] = this->node(14);
00313             conn[19] = this->node(15);
00314             return;
00315 
00316           default:
00317             libmesh_error_msg("Unknown sc = " << sc);
00318           }
00319       }
00320 
00321     default:
00322       libmesh_error_msg("Unsupported IO package " << iop);
00323     }
00324 }
00325 
00326 
00327 
00328 
00329 unsigned short int Hex20::second_order_adjacent_vertex (const unsigned int n,
00330                                                         const unsigned int v) const
00331 {
00332   libmesh_assert_greater_equal (n, this->n_vertices());
00333   libmesh_assert_less (n, this->n_nodes());
00334   libmesh_assert_less (v, 2);
00335   /*
00336    * the _second_order_adjacent_vertices matrix is
00337    * stored in cell_hex.C, since this matrix is identical
00338    * for Hex20 and Hex27 (for the first 12 higher-order nodes)
00339    */
00340   return _second_order_adjacent_vertices[n-this->n_vertices()][v];
00341 }
00342 
00343 
00344 
00345 std::pair<unsigned short int, unsigned short int>
00346 Hex20::second_order_child_vertex (const unsigned int n) const
00347 {
00348   libmesh_assert_greater_equal (n, this->n_vertices());
00349   libmesh_assert_less (n, this->n_nodes());
00350   /*
00351    * the _second_order_vertex_child_* vectors are
00352    * stored in cell_hex.C, since they are identical
00353    * for Hex20 and Hex27 (for the first 12 higher-order nodes)
00354    */
00355   return std::pair<unsigned short int, unsigned short int>
00356     (_second_order_vertex_child_number[n],
00357      _second_order_vertex_child_index[n]);
00358 }
00359 
00360 
00361 
00362 
00363 #ifdef LIBMESH_ENABLE_AMR
00364 
00365 const float Hex20::_embedding_matrix[8][20][20] =
00366   {
00367     // embedding matrix for child 0
00368     {
00369       //  0     1     2     3     4     5     6     7    8  9  10 11  12  13  14  15  16  17  18  19
00370       {    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
00371       {    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
00372       {  -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
00373       {    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
00374       {    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
00375       {  -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
00376       {  -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
00377       {  -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
00378       {   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
00379       {  -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
00380       {  -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
00381       {   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
00382       {   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
00383       {  -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
00384       {  -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
00385       {  -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
00386       {  -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
00387       {  -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
00388       {  -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
00389       {  -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
00390     },
00391 
00392     // embedding matrix for child 1
00393     {
00394       //  0     1     2     3     4     5     6     7    8  9  11  12  13  14  15  16  17  18  19
00395       {    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
00396       {    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
00397       {    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
00398       {  -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
00399       {  -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
00400       {    0.00000,    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
00401       {    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
00402       {  -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
00403       {  -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
00404       {    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
00405       {  -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
00406       {  -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
00407       {  -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
00408       {    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
00409       {    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
00410       {  -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
00411       {  -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
00412       {    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
00413       {  -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
00414       {  -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
00415     },
00416 
00417     // embedding matrix for child 2
00418     {
00419       //  0     1     2     3     4     5     6     7    8  9  11  12  13  14  15  16  17  18  19
00420       {    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
00421       {  -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
00422       {    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
00423       {    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
00424       {  -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
00425       {  -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
00426       {    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
00427       {    0.00000,    0.00000,    0.00000,    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
00428       {  -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
00429       {  -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
00430       {    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
00431       {  -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
00432       {  -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
00433       {  -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
00434       {    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
00435       {    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
00436       {  -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
00437       {  -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
00438       {    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
00439       {  -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
00440     },
00441 
00442     // embedding matrix for child 3
00443     {
00444       //  0     1     2     3     4     5     6     7    8  9  11  12  13  14  15  16  17  18  19
00445       {  -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
00446       {    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
00447       {    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
00448       {    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
00449       {  -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
00450       {    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
00451       {    0.00000,    0.00000,    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
00452       {    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
00453       {  -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
00454       {    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
00455       {    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
00456       {  -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
00457       {  -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
00458       {    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
00459       {    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
00460       {    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
00461       {  -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
00462       {    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
00463       {    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
00464       {  -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
00465     },
00466 
00467     // embedding matrix for child 4
00468     {
00469       //  0     1     2     3     4     5     6     7    8  9  11  12  13  14  15  16  17  18  19
00470       {    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
00471       {  -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
00472       {  -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
00473       {  -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
00474       {    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
00475       {    0.00000,    0.00000,    0.00000,    0.00000,    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
00476       {    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
00477       {    0.00000,    0.00000,    0.00000,    0.00000,    0.00000,    0.00000,    0.00000,    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
00478       {  -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
00479       {  -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
00480       {  -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
00481       {  -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
00482       {  -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
00483       {  -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
00484       {  -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
00485       {  -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
00486       {    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
00487       {    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
00488       {    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
00489       {    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
00490     },
00491 
00492     // embedding matrix for child 5
00493     {
00494       //  0     1     2     3     4     5     6     7    8  9  11  12  13  14  15  16  17  18  19
00495       {  -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
00496       {    0.00000,    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
00497       {    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
00498       {  -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
00499       {    0.00000,    0.00000,    0.00000,    0.00000,    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
00500       {    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
00501       {    0.00000,    0.00000,    0.00000,    0.00000,    0.00000,    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
00502       {    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
00503       {  -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
00504       {    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
00505       {  -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
00506       {  -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
00507       {  -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
00508       {    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
00509       {    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
00510       {  -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
00511       {    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
00512       {    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
00513       {    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
00514       {    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
00515     },
00516 
00517     // embedding matrix for child 6
00518     {
00519       //  0     1     2     3     4     5     6     7    8  9  11  12  13  14  15  16  17  18  19
00520       {  -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
00521       {  -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
00522       {    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
00523       {    0.00000,    0.00000,    0.00000,    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
00524       {    0.00000,    0.00000,    0.00000,    0.00000,    0.00000,    0.00000,    0.00000,    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
00525       {    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
00526       {    0.00000,    0.00000,    0.00000,    0.00000,    0.00000,    0.00000,    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
00527       {    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
00528       {  -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
00529       {  -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
00530       {    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
00531       {  -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
00532       {  -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
00533       {  -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
00534       {    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
00535       {    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
00536       {    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
00537       {    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
00538       {    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
00539       {    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
00540     },
00541 
00542     // embedding matrix for child 7
00543     {
00544       //  0     1     2     3     4     5     6     7    8  9  11  12  13  14  15  16  17  18  19
00545       {  -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
00546       {    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
00547       {    0.00000,    0.00000,    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
00548       {    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
00549       {    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
00550       {    0.00000,    0.00000,    0.00000,    0.00000,    0.00000,    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
00551       {    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
00552       {    0.00000,    0.00000,    0.00000,    0.00000,    0.00000,    0.00000,    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
00553       {  -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
00554       {    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
00555       {    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
00556       {  -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
00557       {  -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
00558       {    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
00559       {    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
00560       {    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
00561       {    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
00562       {    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
00563       {    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
00564       {    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
00565     }
00566   };
00567 
00568 #endif
00569 
00570 } // namespace libMesh