19 #include "libmesh/libmesh_config.h" 
   21 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS 
   24 #include "libmesh/cell_inf_hex8.h" 
   25 #include "libmesh/edge_edge2.h" 
   26 #include "libmesh/edge_inf_edge2.h" 
   27 #include "libmesh/face_quad4.h" 
   28 #include "libmesh/face_inf_quad4.h" 
   29 #include "libmesh/side.h" 
   30 #include "libmesh/enum_io_package.h" 
   31 #include "libmesh/enum_order.h" 
   91                               const unsigned int s)
 const 
   93   libmesh_assert_less (s, 
n_sides());
 
  102   libmesh_assert_less(s, 
n_sides());
 
  107                               const unsigned int e)
 const 
  109   libmesh_assert_less (e, 
n_edges());
 
  127   libmesh_assert_less (i, this->
n_sides());
 
  135           return libmesh_make_unique<Side<Quad4,InfHex8>>(
this,i);
 
  142           return libmesh_make_unique<Side<InfQuad4,InfHex8>>(
this,i);
 
  145           libmesh_error_msg(
"Invalid side i = " << i);
 
  152       std::unique_ptr<Elem> face;
 
  159             face = libmesh_make_unique<Quad4>();
 
  169             face = libmesh_make_unique<InfQuad4>();
 
  174           libmesh_error_msg(
"Invalid side i = " << i);
 
  180       for (
auto n : face->node_index_range())
 
  181         face->set_node(n) = this->
node_ptr(InfHex8::side_nodes_map[i][n]);
 
  189                               const unsigned int i)
 
  198   libmesh_assert_less (i, this->
n_edges());
 
  201     return libmesh_make_unique<SideEdge<Edge2,InfHex8>>(
this,i);
 
  204   return libmesh_make_unique<SideEdge<InfEdge2,InfHex8>>(
this,i);
 
  210                            std::vector<dof_id_type> & conn)
 const 
  233       libmesh_error_msg(
"Unsupported IO package " << iop);
 
  239 #ifdef LIBMESH_ENABLE_AMR 
  246       {    1.0,   0.0,   0.0,   0.0,   0.0,   0.0,   0.0,   0.0}, 
 
  247       {    0.5,   0.5,   0.0,   0.0,   0.0,   0.0,   0.0,   0.0}, 
 
  248       {   0.25,  0.25,  0.25,  0.25,   0.0,   0.0,   0.0,   0.0}, 
 
  249       {    0.5,   0.0,   0.0,   0.5,   0.0,   0.0,   0.0,   0.0}, 
 
  250       {    0.0,   0.0,   0.0,   0.0,   1.0,   0.0,   0.0,   0.0}, 
 
  251       {    0.0,   0.0,   0.0,   0.0,   0.5,   0.5,   0.0,   0.0}, 
 
  252       {    0.0,   0.0,   0.0,   0.0,  0.25,  0.25,  0.25,  0.25}, 
 
  253       {    0.0,   0.0,   0.0,   0.0,   0.5,   0.0,   0.0,   0.5}  
 
  259       {    0.5,   0.5,   0.0,   0.0,   0.0,   0.0,   0.0,   0.0}, 
 
  260       {    0.0,   1.0,   0.0,   0.0,   0.0,   0.0,   0.0,   0.0}, 
 
  261       {    0.0,   0.5,   0.5,   0.0,   0.0,   0.0,   0.0,   0.0}, 
 
  262       {   0.25,  0.25,  0.25,  0.25,   0.0,   0.0,   0.0,   0.0}, 
 
  263       {    0.0,   0.0,   0.0,   0.0,   0.5,   0.5,   0.0,   0.0}, 
 
  264       {    0.0,   0.0,   0.0,   0.0,   0.0,   1.0,   0.0,   0.0}, 
 
  265       {    0.0,   0.0,   0.0,   0.0,   0.0,   0.5,   0.5,   0.0}, 
 
  266       {    0.0,   0.0,   0.0,   0.0,  0.25,  0.25,  0.25,  0.25}  
 
  272       {    0.5,   0.0,   0.0,   0.5,   0.0,   0.0,   0.0,   0.0}, 
 
  273       {   0.25,  0.25,  0.25,  0.25,   0.0,   0.0,   0.0,   0.0}, 
 
  274       {    0.0,   0.0,   0.5,   0.5,   0.0,   0.0,   0.0,   0.0}, 
 
  275       {    0.0,   0.0,   0.0,   1.0,   0.0,   0.0,   0.0,   0.0}, 
 
  276       {    0.0,   0.0,   0.0,   0.0,   0.5,   0.0,   0.0,   0.5}, 
 
  277       {    0.0,   0.0,   0.0,   0.0,  0.25,  0.25,  0.25,  0.25}, 
 
  278       {    0.0,   0.0,   0.0,   0.0,   0.0,   0.0,   0.5,   0.5}, 
 
  279       {    0.0,   0.0,   0.0,   0.0,   0.0,   0.0,   0.0,   1.0}  
 
  285       {   0.25,  0.25,  0.25,  0.25,   0.0,   0.0,   0.0,   0.0}, 
 
  286       {    0.0,   0.5,   0.5,   0.0,   0.0,   0.0,   0.0,   0.0}, 
 
  287       {    0.0,   0.0,   1.0,   0.0,   0.0,   0.0,   0.0,   0.0}, 
 
  288       {    0.0,   0.0,   0.5,   0.5,   0.0,   0.0,   0.0,   0.0}, 
 
  289       {    0.0,   0.0,   0.0,   0.0,  0.25,  0.25,  0.25,  0.25}, 
 
  290       {    0.0,   0.0,   0.0,   0.0,   0.0,   0.5,   0.5,   0.0}, 
 
  291       {    0.0,   0.0,   0.0,   0.0,   0.0,   0.0,   1.0,   0.0}, 
 
  292       {    0.0,   0.0,   0.0,   0.0,   0.0,   0.0,   0.5,   0.5}  
 
  302 #endif // ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS