19 #include "libmesh/libmesh_config.h" 
   21 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS 
   24 #include "libmesh/cell_inf_prism6.h" 
   25 #include "libmesh/edge_edge2.h" 
   26 #include "libmesh/edge_inf_edge2.h" 
   27 #include "libmesh/fe_interface.h" 
   28 #include "libmesh/side.h" 
   29 #include "libmesh/face_inf_quad4.h" 
   30 #include "libmesh/face_tri3.h" 
   31 #include "libmesh/enum_io_package.h" 
   32 #include "libmesh/enum_order.h" 
   89                                 const unsigned int s)
 const 
   91   libmesh_assert_less (s, 
n_sides());
 
  100   libmesh_assert_less(s, 
n_sides());
 
  101   auto trim = (s > 0) ? 0 : 1;
 
  106                                 const unsigned int e)
 const 
  108   libmesh_assert_less (e, 
n_edges());
 
  126   libmesh_assert_less (i, this->
n_sides());
 
  134           return libmesh_make_unique<Side<Tri3,InfPrism6>>(
this,i);
 
  140           return libmesh_make_unique<Side<InfQuad4,InfPrism6>>(
this,i);
 
  143           libmesh_error_msg(
"Invalid side i = " << i);
 
  150       std::unique_ptr<Elem> face;
 
  156             face = libmesh_make_unique<Tri3>();
 
  164             face = libmesh_make_unique<InfQuad4>();
 
  169           libmesh_error_msg(
"Invalid side i = " << i);
 
  175       for (
auto n : face->node_index_range())
 
  176         face->set_node(n) = this->
node_ptr(InfPrism6::side_nodes_map[i][n]);
 
  184                                 const unsigned int i)
 
  192   libmesh_assert_less (i, 
n_edges());
 
  195     return libmesh_make_unique<SideEdge<Edge2,InfPrism6>>(
this,i);
 
  198   return libmesh_make_unique<SideEdge<InfEdge2,InfPrism6>>(
this,i);
 
  203                              std::vector<dof_id_type> & conn)
 const 
  226       libmesh_error_msg(
"Unsupported IO package " << iop);
 
  234 #ifdef LIBMESH_ENABLE_AMR 
  241       {         1.0,        0.0,        0.0,        0.0,        0.0,        0.0}, 
 
  242       {         0.5,        0.5,        0.0,        0.0,        0.0,        0.0}, 
 
  243       {         0.5,        0.0,        0.5,        0.0,        0.0,        0.0}, 
 
  244       {         0.0,        0.0,        0.0,        1.0,        0.0,        0.0}, 
 
  245       {         0.0,        0.0,        0.0,        0.5,        0.5,        0.0}, 
 
  246       {         0.0,        0.0,        0.0,        0.5,        0.0,        0.5}  
 
  252       {         0.5,        0.5,        0.0,        0.0,        0.0,        0.0}, 
 
  253       {         0.0,        1.0,        0.0,        0.0,        0.0,        0.0}, 
 
  254       {         0.0,        0.5,        0.5,        0.0,        0.0,        0.0}, 
 
  255       {         0.0,        0.0,        0.0,        0.5,        0.5,        0.0}, 
 
  256       {         0.0,        0.0,        0.0,        0.0,        1.0,        0.0}, 
 
  257       {         0.0,        0.0,        0.0,        0.0,        0.5,        0.5}  
 
  263       {         0.5,        0.0,        0.5,        0.0,        0.0,        0.0}, 
 
  264       {         0.0,        0.5,        0.5,        0.0,        0.0,        0.0}, 
 
  265       {         0.0,        0.0,        1.0,        0.0,        0.0,        0.0}, 
 
  266       {         0.0,        0.0,        0.0,        0.5,        0.0,        0.5}, 
 
  267       {         0.0,        0.0,        0.0,        0.0,        0.5,        0.5}, 
 
  268       {         0.0,        0.0,        0.0,        0.0,        0.0,        1.0}  
 
  274       {         0.5,        0.5,        0.0,        0.0,        0.0,        0.0}, 
 
  275       {         0.0,        0.5,        0.5,        0.0,        0.0,        0.0}, 
 
  276       {         0.5,        0.0,        0.5,        0.0,        0.0,        0.0}, 
 
  277       {         0.0,        0.0,        0.0,        0.5,        0.5,        0.0}, 
 
  278       {         0.0,        0.0,        0.0,        0.0,        0.5,        0.5}, 
 
  279       {         0.0,        0.0,        0.0,        0.5,        0.0,        0.5}  
 
  289 #endif  // ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS