22 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS 76 const unsigned int s)
const 78 libmesh_assert_less (s,
n_sides());
87 libmesh_assert_less(s,
n_sides());
88 auto trim = (s == 0) ? 0 : 1;
92 #ifdef LIBMESH_ENABLE_AMR 99 { 1.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
100 { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 },
101 { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0 },
102 { 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 },
103 { 0.375, -0.125, 0.0, 0.0, 0.75, 0.0 },
104 { 0.0, 0.0, 0.375, -0.125, 0.0, 0.75 }
110 { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 },
111 { 0.0, 1.0, 0.0, 0.0, 0.0, 0.0 },
112 { 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 },
113 { 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 },
114 { -0.125, 0.375, 0.0, 0.0, 0.75, 0.0 },
115 { 0.0, 0.0, -0.125, 0.375, 0.0, 0.75 }
133 libmesh_assert_less (s, this->
n_sides());
147 libmesh_error_msg(
"Invalid side s = " << s);
154 unsigned int side_node)
const 174 return libmesh_make_unique<Side<Edge3,InfQuad6>>(
this,i);
178 return libmesh_make_unique<Side<InfEdge2,InfQuad6>>(
this,i);
181 libmesh_error_msg(
"Invalid side i = " << i);
188 std::unique_ptr<Elem> edge;
194 edge = libmesh_make_unique<Edge3>();
202 edge = libmesh_make_unique<InfEdge2>();
207 libmesh_error_msg(
"Invalid side i = " << i);
213 for (
unsigned n=0; n<edge->n_nodes(); ++n)
214 edge->set_node(n) = this->
node_ptr(InfQuad6::side_nodes_map[i][n]);
223 const unsigned int i)
225 libmesh_assert_less (i, this->
n_sides());
254 libmesh_error_msg(
"Invalid side i = " << i);
260 for (
auto n :
side->node_index_range())
261 side->set_node(n) = this->
node_ptr(InfQuad6::side_nodes_map[i][n]);
268 std::vector<dof_id_type> & conn)
const 300 libmesh_error_msg(
"Invalid sf = " << sf);
305 libmesh_error_msg(
"Unsupported IO package " << iop);
313 const unsigned int v)
const 315 libmesh_assert_greater_equal (n, this->
n_vertices());
316 libmesh_assert_less (n, this->
n_nodes());
317 libmesh_assert_less (v, 2);
331 std::pair<unsigned short int, unsigned short int>
334 libmesh_assert_greater_equal (n, this->
n_vertices());
335 libmesh_assert_less (n, this->
n_nodes());
337 return std::pair<unsigned short int, unsigned short int>
346 #endif // ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS virtual unsigned int which_node_am_i(unsigned int side, unsigned int side_node) const override
virtual bool is_node_on_side(const unsigned int n, const unsigned int s) const override
static const int nodes_per_side
static const unsigned int side_nodes_map[num_sides][nodes_per_side]
virtual bool is_face(const unsigned int i) const override
virtual Order default_order() const override
virtual dof_id_type key() const
virtual unsigned short int second_order_adjacent_vertex(const unsigned int n, const unsigned int v) const override
virtual bool is_edge(const unsigned int i) const override
virtual unsigned int n_nodes() const override
virtual bool is_vertex(const unsigned int i) const override
virtual unsigned int n_vertices() const override final
static const int num_sides
static const float _embedding_matrix[num_children][num_nodes][num_nodes]
virtual std::vector< unsigned int > nodes_on_side(const unsigned int s) const override
virtual unsigned int n_sub_elem() const override
static const unsigned short int _second_order_adjacent_vertices[2][2]
static const int num_nodes
subdomain_id_type subdomain_id() const
const Node * node_ptr(const unsigned int i) const
virtual unsigned int n_sides() const override final
static const int num_children
virtual std::pair< unsigned short int, unsigned short int > second_order_child_vertex(const unsigned int n) const override
static dof_id_type compute_key(dof_id_type n0)
virtual std::unique_ptr< Elem > build_side_ptr(const unsigned int i, bool proxy) override
virtual void connectivity(const unsigned int sf, const IOPackage iop, std::vector< dof_id_type > &conn) const override
dof_id_type node_id(const unsigned int i) const
std::unique_ptr< Elem > side(const unsigned int i) const