25 struct ElemExtrema : std::pair<unsigned short, unsigned short>
37 :
std::pair<unsigned short, unsigned short>(v1, v2)
78 bool atEdge(
const unsigned short v1,
const unsigned short v2)
const 81 ((first == v1 && second == v2) || (first == v2 && second == v1));
98 mooseAssert(
atVertex(),
"Not at a vertex");
106 mooseAssert(
atEdge(),
"Not at an edge");
113 std::string
print()
const;
127 void setEdge(
const unsigned short v1,
const unsigned short v2)
137 void setEdge(
const std::pair<unsigned short, unsigned short> & vertices)
139 setEdge(vertices.first, vertices.second);
149 std::unique_ptr<const libMesh::Elem>
buildEdge(
const Elem * elem)
const;
156 bool isValid(
const Elem *
const elem,
const Point & point)
const;
unsigned short vertex() const
static const unsigned short invalid_vertex
Identifier for an invalid vertex index.
void setEdge(const unsigned short v1, const unsigned short v2)
Sets the "at edge" state.
bool atVertex(const unsigned short v) const
std::string print() const
Prints the current state (at edge, at vertex, not at either)
Helper for defining if at an element's edge, vertex, or neither.
std::unique_ptr< const libMesh::Elem > buildEdge(const Elem *elem) const
bool atEdge(const unsigned short v1, const unsigned short v2) const
The following methods are specializations for using the Parallel::packed_range_* routines for a vecto...
bool isValid(const Elem *const elem, const Point &point) const
const std::pair< unsigned short, unsigned short > & edgeVertices() const
std::ostream & operator<<(std::ostream &os, const ElemExtrema &elem_extrema)
ElemExtrema(const unsigned short v1, const unsigned short v2)
void setEdge(const std::pair< unsigned short, unsigned short > &vertices)
Sets the "at edge" state.
void setVertex(const unsigned short vertex)
Sets the "at vertex" state.
static const std::string v
void invalidate()
Invalidates the current state.
ElemExtrema()
Default constructor: sets entires to invalid (not at vertex or edge)
const Point & vertexPoint(const libMesh::Elem *elem) const