18 #include "libmesh/libmesh_config.h" 
   20 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS 
   23 #include "libmesh/cell_inf_prism12.h" 
   24 #include "libmesh/edge_edge3.h" 
   25 #include "libmesh/edge_inf_edge2.h" 
   26 #include "libmesh/face_tri6.h" 
   27 #include "libmesh/face_inf_quad6.h" 
   28 #include "libmesh/side.h" 
   29 #include "libmesh/enum_io_package.h" 
   30 #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());
 
  121                                          unsigned int side_node)
 const 
  123   libmesh_assert_less (side, this->
n_sides());
 
  126   libmesh_assert_less(side_node, 6);
 
  136   libmesh_assert_less (i, this->
n_sides());
 
  144           return libmesh_make_unique<Side<Tri6,InfPrism12>>(
this,i);
 
  150           return libmesh_make_unique<Side<InfQuad6,InfPrism12>>(
this,i);
 
  153           libmesh_error_msg(
"Invalid side i = " << i);
 
  160       std::unique_ptr<Elem> face;
 
  166             face = libmesh_make_unique<Tri6>();
 
  174             face = libmesh_make_unique<InfQuad6>();
 
  179           libmesh_error_msg(
"Invalid side i = " << i);
 
  185       for (
auto n : face->node_index_range())
 
  186         face->set_node(n) = this->
node_ptr(InfPrism12::side_nodes_map[i][n]);
 
  194                                  const unsigned int i)
 
  196   libmesh_assert_less (i, this->
n_sides());
 
  202         if (!side.get() || side->type() != 
TRI6)
 
  214         if (!side.get() || side->type() != 
INFQUAD6)
 
  223       libmesh_error_msg(
"Invalid side i = " << i);
 
  229   for (
auto n : side->node_index_range())
 
  230     side->set_node(n) = this->
node_ptr(InfPrism12::side_nodes_map[i][n]);
 
  236   libmesh_assert_less (i, this->
n_edges());
 
  239     return libmesh_make_unique<SideEdge<Edge3,InfPrism12>>(
this,i);
 
  242   return libmesh_make_unique<SideEdge<InfEdge2,InfPrism12>>(
this,i);
 
  248                               std::vector<dof_id_type> & conn)
 const 
  315             libmesh_error_msg(
"Invalid sc = " << sc);
 
  320       libmesh_error_msg(
"Unsupported IO package " << iop);
 
  329                                                              const unsigned int v)
 const 
  331   libmesh_assert_greater_equal (n, this->
n_vertices());
 
  332   libmesh_assert_less (n, this->
n_nodes());
 
  333   libmesh_assert_less (v, 2);
 
  352 std::pair<unsigned short int, unsigned short int>
 
  355   libmesh_assert_greater_equal (n, this->
n_vertices());
 
  356   libmesh_assert_less (n, this->
n_nodes());
 
  358   return std::pair<unsigned short int, unsigned short int>
 
  383 #ifdef LIBMESH_ENABLE_AMR 
  390       {         1.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0}, 
 
  391       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0,        0.0,        0.0,        0.0}, 
 
  392       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0,        0.0}, 
 
  393       {         0.0,        0.0,        0.0,        1.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0}, 
 
  394       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0}, 
 
  395       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0}, 
 
  396       {       0.375,     -0.125,        0.0,        0.0,        0.0,        0.0,       0.75,        0.0,        0.0,        0.0,        0.0,        0.0}, 
 
  397       {         0.0,     -0.125,     -0.125,        0.0,        0.0,        0.0,        0.5,       0.25,        0.5,        0.0,        0.0,        0.0}, 
 
  398       {       0.375,        0.0,     -0.125,        0.0,        0.0,        0.0,        0.0,        0.0,       0.75,        0.0,        0.0,        0.0}, 
 
  399       {         0.0,        0.0,        0.0,      0.375,     -0.125,        0.0,        0.0,        0.0,        0.0,       0.75,        0.0,        0.0}, 
 
  400       {         0.0,        0.0,        0.0,        0.0,     -0.125,     -0.125,        0.0,        0.0,        0.0,        0.5,       0.25,        0.5}, 
 
  401       {         0.0,        0.0,        0.0,      0.375,        0.0,     -0.125,        0.0,        0.0,        0.0,        0.0,        0.0,       0.75}  
 
  407       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0,        0.0,        0.0,        0.0}, 
 
  408       {         0.0,        1.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0}, 
 
  409       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0,        0.0,        0.0}, 
 
  410       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0}, 
 
  411       {         0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0}, 
 
  412       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0}, 
 
  413       {      -0.125,      0.375,        0.0,        0.0,        0.0,        0.0,       0.75,        0.0,        0.0,        0.0,        0.0,        0.0}, 
 
  414       {         0.0,      0.375,     -0.125,        0.0,        0.0,        0.0,        0.0,       0.75,        0.0,        0.0,        0.0,        0.0}, 
 
  415       {      -0.125,        0.0,     -0.125,        0.0,        0.0,        0.0,        0.5,        0.5,       0.25,        0.0,        0.0,        0.0}, 
 
  416       {         0.0,        0.0,        0.0,     -0.125,      0.375,        0.0,        0.0,        0.0,        0.0,       0.75,        0.0,        0.0}, 
 
  417       {         0.0,        0.0,        0.0,        0.0,      0.375,     -0.125,        0.0,        0.0,        0.0,        0.0,       0.75,        0.0}, 
 
  418       {         0.0,        0.0,        0.0,     -0.125,        0.0,     -0.125,        0.0,        0.0,        0.0,        0.5,        0.5,       0.25}  
 
  424       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0,        0.0}, 
 
  425       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0,        0.0,        0.0}, 
 
  426       {         0.0,        0.0,        1.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0}, 
 
  427       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0}, 
 
  428       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0}, 
 
  429       {         0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0}, 
 
  430       {      -0.125,     -0.125,        0.0,        0.0,        0.0,        0.0,       0.25,        0.5,        0.5,        0.0,        0.0,        0.0}, 
 
  431       {         0.0,     -0.125,      0.375,        0.0,        0.0,        0.0,        0.0,       0.75,        0.0,        0.0,        0.0,        0.0}, 
 
  432       {      -0.125,        0.0,      0.375,        0.0,        0.0,        0.0,        0.0,        0.0,       0.75,        0.0,        0.0,        0.0}, 
 
  433       {         0.0,        0.0,        0.0,     -0.125,     -0.125,        0.0,        0.0,        0.0,        0.0,       0.25,        0.5,        0.5}, 
 
  434       {         0.0,        0.0,        0.0,        0.0,     -0.125,      0.375,        0.0,        0.0,        0.0,        0.0,       0.75,        0.0}, 
 
  435       {         0.0,        0.0,        0.0,     -0.125,        0.0,      0.375,        0.0,        0.0,        0.0,        0.0,        0.0,       0.75}  
 
  441       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0,        0.0,        0.0,        0.0}, 
 
  442       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0,        0.0,        0.0}, 
 
  443       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0,        0.0}, 
 
  444       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0,        0.0}, 
 
  445       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0,        0.0}, 
 
  446       {         0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        0.0,        1.0}, 
 
  447       {      -0.125,        0.0,     -0.125,        0.0,        0.0,        0.0,        0.5,        0.5,       0.25,        0.0,        0.0,        0.0}, 
 
  448       {      -0.125,     -0.125,        0.0,        0.0,        0.0,        0.0,       0.25,        0.5,        0.5,        0.0,        0.0,        0.0}, 
 
  449       {         0.0,     -0.125,     -0.125,        0.0,        0.0,        0.0,        0.5,       0.25,        0.5,        0.0,        0.0,        0.0}, 
 
  450       {         0.0,        0.0,        0.0,     -0.125,        0.0,     -0.125,        0.0,        0.0,        0.0,        0.5,        0.5,       0.25}, 
 
  451       {         0.0,        0.0,        0.0,     -0.125,     -0.125,        0.0,        0.0,        0.0,        0.0,       0.25,        0.5,        0.5}, 
 
  452       {         0.0,        0.0,        0.0,        0.0,     -0.125,     -0.125,        0.0,        0.0,        0.0,        0.5,       0.25,        0.5}  
 
  464 #endif // ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS