Go to the documentation of this file.
20 #ifndef LIBMESH_FACE_QUAD_H
21 #define LIBMESH_FACE_QUAD_H
25 #include "libmesh/libmesh_common.h"
26 #include "libmesh/face.h"
68 virtual ~Quad() =
default;
76 libmesh_assert_less(i, this->
n_nodes());
86 virtual unsigned int n_nodes()
const override {
return 4; }
91 virtual unsigned int n_sides() const override final {
return 4; }
96 virtual unsigned int n_vertices() const override final {
return 4; }
101 virtual unsigned int n_edges() const override final {
return 4; }
106 virtual unsigned int n_children() const override final {
return 4; }
113 const unsigned int s)
const override final;
119 virtual unsigned int opposite_side(
const unsigned int s)
const override final;
127 const unsigned int s)
const override final;
152 unsigned int side_node)
const override;
157 virtual std::unique_ptr<Elem>
side_ptr (
const unsigned int i)
override final;
162 virtual void side_ptr (std::unique_ptr<Elem> & elem,
163 const unsigned int i)
override final;
218 #endif // LIBMESH_FACE_QUAD_H
static const unsigned short int _second_order_adjacent_vertices[4][2]
Matrix that tells which vertices define the location of mid-side (or second-order) nodes.
void set_interior_parent(Elem *p)
Sets the pointer to the element's interior_parent.
virtual Real quality(const ElemQuality q) const override
Elem * _elemlinks_data[5+(LIBMESH_DIM >2)]
Data for links to parent/neighbor/interior_parent elements.
The libMesh namespace provides an interface to certain functionality in the library.
virtual std::pair< Real, Real > qual_bounds(const ElemQuality q) const override
virtual dof_id_type key() const override
Quad(const unsigned int nn, Elem *p, Node **nodelinkdata)
Default quadrilateral element, takes number of nodes and parent.
virtual unsigned int n_edges() const override final
static const unsigned short int _second_order_vertex_child_index[9]
Vector that names the child vertex index for each second order node.
static const int _child_node_lookup[4][9]
Lookup table from child id, child node id to "possible node location" (a simple dictionary-index in a...
virtual unsigned int opposite_side(const unsigned int s) const override final
A Point defines a location in LIBMESH_DIM dimensional Real space.
virtual dof_id_type key() const
A Node is like a Point, but with more information.
virtual unsigned int opposite_node(const unsigned int n, const unsigned int s) const override final
virtual unsigned int n_vertices() const override final
virtual unsigned int n_nodes() const override
Quad & operator=(const Quad &)=delete
The QUAD is an element in 2D composed of 4 sides.
ElemQuality
Defines an enum for element quality metrics.
virtual bool is_child_on_side(const unsigned int c, const unsigned int s) const override final
virtual Point master_point(const unsigned int i) const override final
virtual unsigned int n_sides() const override final
virtual std::unique_ptr< Elem > side_ptr(const unsigned int i) override final
The Face is an abstract element type that lives in two dimensions.
This is the base class from which all geometric element types are derived.
virtual unsigned int which_node_am_i(unsigned int side, unsigned int side_node) const override
static const Real _master_points[9][3]
Master element node locations.
static const unsigned short int _second_order_vertex_child_number[9]
Vector that names a child sharing each second order node.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual unsigned int n_children() const override final