21#include "libmesh/edge.h"
22#include "libmesh/node_elem.h"
41 libmesh_assert_less (side, this->
n_sides());
50 libmesh_error_msg(
"Calling Edge::local_edge_node() does not make sense.");
58 libmesh_assert_less (i, 2);
59 std::unique_ptr<Elem> nodeelem = std::make_unique<NodeElem>();
60 nodeelem->set_node(0, this->
node_ptr(i));
62 nodeelem->set_interior_parent(
this);
63 nodeelem->inherit_data_from(*
this);
72 libmesh_assert_less (i, this->
n_sides());
74 if (!side.get() || side->type() !=
NODEELEM)
78 side->inherit_data_from(*
this);
79 side->set_node(0, this->
node_ptr(i));
88 libmesh_assert_less (i, 2);
89 std::unique_ptr<Elem> nodeelem = std::make_unique<NodeElem>();
90 nodeelem->set_node(0, this->
node_ptr(i));
92 nodeelem->set_interior_parent(
this);
93 nodeelem->inherit_data_from(*
this);
100 const unsigned int i)
102 libmesh_assert_less (i, this->
n_sides());
104 if (!side.get() || side->type() !=
NODEELEM)
108 side->set_interior_parent(
this);
109 side->inherit_data_from(*
this);
110 side->set_node(0, this->
node_ptr(i));
118 const unsigned int s)
const
121 libmesh_assert_less (s, this->
n_sides());
130 libmesh_assert_less (side_in, 2);
137 const unsigned int libmesh_dbg_var(side_in))
const
139 libmesh_assert_less (node_in, 2);
140 libmesh_assert_less (side_in, this->
n_sides());
149 libmesh_assert_less(s, 2);
161 libmesh_assert_less (side, this->
n_sides());
167 libmesh_assert_less (s, 2);
189 const Real eps)
const
191 return ((p(0) >= -1-eps) && (p(0) <= 1+eps));
virtual std::unique_ptr< Elem > side_ptr(const unsigned int i) override final
virtual bool is_flipped() const override final
virtual unsigned int local_edge_node(unsigned int edge, unsigned int edge_node) const override final
Throws an error.
virtual bool is_child_on_side(const unsigned int c, const unsigned int s) const override final
static const int nodes_per_side
virtual unsigned int opposite_side(const unsigned int s) const override final
ElemType side_type(const unsigned int s) const override final
virtual unsigned int local_side_node(unsigned int side, unsigned int) const override final
static const int num_sides
Geometric constants for all Edges.
virtual bool on_reference_element(const Point &p, const Real eps=TOLERANCE) const override final
virtual unsigned int n_sides() const override final
static const int nodes_per_edge
static const int num_edges
virtual std::unique_ptr< Elem > build_side_ptr(const unsigned int i) override final
virtual unsigned int opposite_node(const unsigned int n, const unsigned int s) const override final
virtual std::vector< unsigned int > nodes_on_side(const unsigned int s) const override
virtual unsigned int n_children() const override final
virtual std::vector< unsigned int > nodes_on_edge(const unsigned int e) const override
static const int num_children
unsigned int center_node_on_side(const unsigned short side) const override final
virtual bool is_node_on_side(const unsigned int n, const unsigned int s) const =0
const Point & point(const unsigned int i) const
const Node * node_ptr(const unsigned int i) const
A Point defines a location in LIBMESH_DIM dimensional Real space.
The libMesh namespace provides an interface to certain functionality in the library.
ElemType
Defines an enum for geometric element types.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real