20 #ifndef LIBMESH_SIDE_H
21 #define LIBMESH_SIDE_H
24 #include "libmesh/libmesh_common.h"
25 #include "libmesh/elem.h"
47 template <
class S
ideType,
class ParentType>
48 class Side :
public SideType
56 const unsigned int side_in) :
57 SideType(const_cast<
Elem *>(parent_in)),
63 libmesh_assert_equal_to ((this->
dim()+1), this->parent()->
dim());
65 for (
auto n : this->node_index_range())
66 this->_nodes[n] = this->parent()->node_ptr
74 virtual ~Side() =
default;
81 libmesh_assert_less (i, this->
n_nodes());
82 return this->parent()->set_node (ParentType::side_nodes_map[
_side_number][i]);
105 template <
class EdgeType,
class ParentType>
114 const unsigned int my_edge) :
115 EdgeType(const_cast<
Elem *>(my_parent)),
119 libmesh_assert_less (
_edge_number, this->parent()->n_edges());
120 libmesh_assert_equal_to (this->
dim(), 1);
122 for (
auto n : this->node_index_range())
123 this->_nodes[n] = this->parent()->node_ptr
132 libmesh_assert_less (i, this->
n_nodes());
133 return this->parent()->set_node (ParentType::edge_nodes_map[
_edge_number][i]);
147 #endif // LIBMESH_SIDE_H