20 #ifndef LIBMESH_SIDE_H 21 #define LIBMESH_SIDE_H 24 #include "libmesh/libmesh_common.h" 25 #include "libmesh/elem.h" 34 #ifdef LIBMESH_ENABLE_DEPRECATED 49 template <
class S
ideType,
class ParentType>
50 class Side :
public SideType
58 const unsigned int side_in) :
59 SideType(const_cast<
Elem *>(parent_in)),
69 libmesh_assert_equal_to ((this->
dim()+1), this->parent()->
dim());
71 for (
auto n : this->node_index_range())
72 this->_nodes[n] = this->parent()->node_ptr
80 virtual ~Side() =
default;
87 libmesh_assert_less (i, this->
n_nodes());
88 return this->parent()->set_node (ParentType::side_nodes_map[
_side_number][i]);
111 template <
class EdgeType,
class ParentType>
120 const unsigned int my_edge) :
121 EdgeType(const_cast<
Elem *>(my_parent)),
126 libmesh_deprecated();
129 libmesh_assert_less (
_edge_number, this->parent()->n_edges());
130 libmesh_assert_equal_to (this->
dim(), 1);
132 for (
auto n : this->node_index_range())
133 this->_nodes[n] = this->parent()->node_ptr
142 libmesh_assert_less (i, this->
n_nodes());
143 return this->parent()->set_node (ParentType::edge_nodes_map[
_edge_number][i]);
154 #endif // LIBMESH_ENABLE_DEPRECATED 158 #endif // LIBMESH_SIDE_H A Node is like a Point, but with more information.
This is the base class from which all geometric element types are derived.
const unsigned int _edge_number
The side on the parent element.
The libMesh namespace provides an interface to certain functionality in the library.
SideEdge(const Elem *my_parent, const unsigned int my_edge)
Constructor.
const dof_id_type n_nodes
const unsigned int _side_number
The side on the parent element.
virtual Node *& set_node(const unsigned int i) override
Setting an edge node changes the node on the parent.
This defines the Side class.
This defines the SideEdge class.
Side & operator=(const Side &)=delete
Side(const Elem *parent_in, const unsigned int side_in)
Constructor.
virtual Node *& set_node(const unsigned int i) override
Setting a side node changes the node on the parent.