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