20 #include "libmesh/side.h" 
   21 #include "libmesh/cell_hex8.h" 
   22 #include "libmesh/edge_edge2.h" 
   23 #include "libmesh/face_quad4.h" 
   24 #include "libmesh/enum_io_package.h" 
   25 #include "libmesh/enum_order.h" 
   88                            const unsigned int s)
 const 
   90   libmesh_assert_less (s, 
n_sides());
 
   99   libmesh_assert_less(s, 
n_sides());
 
  104                            const unsigned int e)
 const 
  106   libmesh_assert_less (e, 
n_edges());
 
  142   libmesh_assert_less (i, this->
n_sides());
 
  145     return libmesh_make_unique<Side<Quad4,Hex8>>(
this,i);
 
  149       std::unique_ptr<Elem> face = libmesh_make_unique<Quad4>();
 
  152       for (
auto n : face->node_index_range())
 
  153         face->set_node(n) = this->
node_ptr(Hex8::side_nodes_map[i][n]);
 
  162                            const unsigned int i)
 
  164   this->simple_build_side_ptr<Hex8>(side, i, 
QUAD4);
 
  171   libmesh_assert_less (i, this->
n_edges());
 
  173   return libmesh_make_unique<SideEdge<Edge2,Hex8>>(
this,i);
 
  180                         std::vector<dof_id_type> & conn)
 const 
  217       libmesh_error_msg(
"Unsupported IO package " << iop);
 
  223 #ifdef LIBMESH_ENABLE_AMR 
  236       { 1.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0}, 
 
  237       { 0.5,  0.5,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0}, 
 
  238       { .25,  .25,  .25,  .25,  0.0,  0.0,  0.0,  0.0}, 
 
  239       { 0.5,  0.0,  0.0,  0.5,  0.0,  0.0,  0.0,  0.0}, 
 
  240       { 0.5,  0.0,  0.0,  0.0,  0.5,  0.0,  0.0,  0.0}, 
 
  241       { .25,  .25,  0.0,  0.0,  .25,  .25,  0.0,  0.0}, 
 
  242       {.125, .125, .125, .125, .125, .125, .125, .125}, 
 
  243       { .25,  0.0,  0.0,  .25,  .25,  0.0,  0.0,  .25}  
 
  249       { 0.5,  0.5,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0}, 
 
  250       { 0.0,  1.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0}, 
 
  251       { 0.0,  0.5,  0.5,  0.0,  0.0,  0.0,  0.0,  0.0}, 
 
  252       { .25,  .25,  .25,  .25,  0.0,  0.0,  0.0,  0.0}, 
 
  253       { .25,  .25,  0.0,  0.0,  .25,  .25,  0.0,  0.0}, 
 
  254       { 0.0,  0.5,  0.0,  0.0,  0.0,  0.5,  0.0,  0.0}, 
 
  255       { 0.0,  .25,  .25,  0.0,  0.0,  .25,  .25,  0.0}, 
 
  256       {.125, .125, .125, .125, .125, .125, .125, .125}  
 
  262       { 0.5,  0.0,  0.0,  0.5,  0.0,  0.0,  0.0,  0.0}, 
 
  263       { .25,  .25,  .25,  .25,  0.0,  0.0,  0.0,  0.0}, 
 
  264       { 0.0,  0.0,  0.5,  0.5,  0.0,  0.0,  0.0,  0.0}, 
 
  265       { 0.0,  0.0,  0.0,  1.0,  0.0,  0.0,  0.0,  0.0}, 
 
  266       { .25,  0.0,  0.0,  .25,  .25,  0.0,  0.0,  .25}, 
 
  267       {.125, .125, .125, .125, .125, .125, .125, .125}, 
 
  268       { 0.0,  0.0,  .25,  .25,  0.0,  0.0,  .25,  .25}, 
 
  269       { 0.0,  0.0,  0.0,  0.5,  0.0,  0.0,  0.0,  0.5}  
 
  275       { .25,  .25,  .25,  .25,  0.0,  0.0,  0.0,  0.0}, 
 
  276       { 0.0,  0.5,  0.5,  0.0,  0.0,  0.0,  0.0,  0.0}, 
 
  277       { 0.0,  0.0,  1.0,  0.0,  0.0,  0.0,  0.0,  0.0}, 
 
  278       { 0.0,  0.0,  0.5,  0.5,  0.0,  0.0,  0.0,  0.0}, 
 
  279       {.125, .125, .125, .125, .125, .125, .125, .125}, 
 
  280       { 0.0,  .25,  .25,  0.0,  0.0,  .25,  .25,  0.0}, 
 
  281       { 0.0,  0.0,  0.5,  0.0,  0.0,  0.0,  0.5,  0.0}, 
 
  282       { 0.0,  0.0,  .25,  .25,  0.0,  0.0,  .25,  .25}  
 
  288       { 0.5,  0.0,  0.0,  0.0,  0.5,  0.0,  0.0,  0.0}, 
 
  289       { .25,  .25,  0.0,  0.0,  .25,  .25,  0.0,  0.0}, 
 
  290       {.125, .125, .125, .125, .125, .125, .125, .125}, 
 
  291       { .25,  0.0,  0.0,  .25,  .25,  0.0,  0.0,  .25}, 
 
  292       { 0.0,  0.0,  0.0,  0.0,  1.0,  0.0,  0.0,  0.0}, 
 
  293       { 0.0,  0.0,  0.0,  0.0,  0.5,  0.5,  0.0,  0.0}, 
 
  294       { 0.0,  0.0,  0.0,  0.0,  .25,  .25,  .25,  .25}, 
 
  295       { 0.0,  0.0,  0.0,  0.0,  0.5,  0.0,  0.0,  0.5}  
 
  301       { .25,  .25,  0.0,  0.0,  .25,  .25,  0.0,  0.0}, 
 
  302       { 0.0,  0.5,  0.0,  0.0,  0.0,  0.5,  0.0,  0.0}, 
 
  303       { 0.0,  .25,  .25,  0.0,  0.0,  .25,  .25,  0.0}, 
 
  304       {.125, .125, .125, .125, .125, .125, .125, .125}, 
 
  305       { 0.0,  0.0,  0.0,  0.0,  0.5,  0.5,  0.0,  0.0}, 
 
  306       { 0.0,  0.0,  0.0,  0.0,  0.0,  1.0,  0.0,  0.0}, 
 
  307       { 0.0,  0.0,  0.0,  0.0,  0.0,  0.5,  0.5,  0.0}, 
 
  308       { 0.0,  0.0,  0.0,  0.0,  .25,  .25,  .25,  .25}  
 
  314       { .25,  0.0,  0.0,  .25,  .25,  0.0,  0.0,  .25}, 
 
  315       {.125, .125, .125, .125, .125, .125, .125, .125}, 
 
  316       { 0.0,  0.0,  .25,  .25,  0.0,  0.0,  .25,  .25}, 
 
  317       { 0.0,  0.0,  0.0,  0.5,  0.0,  0.0,  0.0,  0.5}, 
 
  318       { 0.0,  0.0,  0.0,  0.0,  0.5,  0.0,  0.0,  0.5}, 
 
  319       { 0.0,  0.0,  0.0,  0.0,  .25,  .25,  .25,  .25}, 
 
  320       { 0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.5,  0.5}, 
 
  321       { 0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  1.0}  
 
  327       {.125, .125, .125, .125, .125, .125, .125, .125}, 
 
  328       { 0.0,  .25,  .25,  0.0,  0.0,  .25,  .25,  0.0}, 
 
  329       { 0.0,  0.0,  0.5,  0.0,  0.0,  0.0,  0.5,  0.0}, 
 
  330       { 0.0,  0.0,  .25,  .25,  0.0,  0.0,  .25,  .25}, 
 
  331       { 0.0,  0.0,  0.0,  0.0,  .25,  .25,  .25,  .25}, 
 
  332       { 0.0,  0.0,  0.0,  0.0,  0.0,  0.5,  0.5,  0.0}, 
 
  333       { 0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  1.0,  0.0}, 
 
  334       { 0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.5,  0.5}  
 
  362         x0 - x1 + x2 - x3 + x4 - x5 + x6 - x7, 
 
  363         x0 - x1 - x2 + x3 - x4 + x5 + x6 - x7, 
 
  364        -x0 + x1 + x2 - x3 - x4 + x5 + x6 - x7,
 
  365         x0 + x1 - x2 - x3 - x4 - x5 + x6 + x7, 
 
  366        -x0 - x1 + x2 + x3 - x4 - x5 + x6 + x7,
 
  367        -x0 - x1 - x2 - x3 + x4 + x5 + x6 + x7