Go to the documentation of this file.
   20 #ifndef LIBMESH_CELL_HEX_H 
   21 #define LIBMESH_CELL_HEX_H 
   24 #include "libmesh/cell.h" 
   53   Hex (
const Hex &) = 
delete;
 
   56   virtual ~Hex() = 
default;
 
   64     libmesh_assert_less(i, this->
n_nodes());
 
   73   virtual unsigned int n_sides() const override final { 
return 6; }
 
   78   virtual unsigned int n_vertices() const override final { 
return 8; }
 
   83   virtual unsigned int n_edges() const override final { 
return 12; }
 
   88   virtual unsigned int n_faces() const override final { 
return 6; }
 
   93   virtual unsigned int n_children() const override final { 
return 8; }
 
   99                                 const unsigned int s) 
const override final;
 
  105                                const unsigned int s) 
const override final;
 
  111   virtual unsigned int opposite_side(
const unsigned int s) 
const override final;
 
  119                                      const unsigned int s) 
const override final;
 
  137                                        unsigned int side_node) 
const override;
 
  142   virtual std::unique_ptr<Elem> 
side_ptr (
const unsigned int i) 
override final;
 
  147   virtual void side_ptr (std::unique_ptr<Elem> & side, 
const unsigned int i) 
override final;
 
  203 #endif // LIBMESH_CELL_HEX_H 
  
virtual bool is_child_on_side(const unsigned int c, const unsigned int s) const override final
 
static const unsigned short int _second_order_vertex_child_number[27]
Vector that names a child sharing each second order node.
 
virtual Point master_point(const unsigned int i) const override final
 
virtual unsigned int n_children() const override final
 
void set_interior_parent(Elem *p)
Sets the pointer to the element's interior_parent.
 
virtual std::unique_ptr< Elem > side_ptr(const unsigned int i) override final
 
virtual unsigned int n_nodes() const =0
 
virtual std::pair< Real, Real > qual_bounds(const ElemQuality q) const override
 
Elem * _elemlinks_data[7+(LIBMESH_DIM >3)]
Data for links to parent/neighbor/interior_parent elements.
 
Hex & operator=(const Hex &)=delete
 
static const unsigned short int _second_order_vertex_child_index[27]
Vector that names the child vertex index for each second order node.
 
The Cell is an abstract element type that lives in three dimensions.
 
The libMesh namespace provides an interface to certain functionality in the library.
 
virtual unsigned int opposite_side(const unsigned int s) const override final
 
virtual unsigned int opposite_node(const unsigned int n, const unsigned int s) const override final
 
Hex(const unsigned int nn, Elem *p, Node **nodelinkdata)
Default brick element, takes number of nodes and parent.
 
virtual unsigned int which_node_am_i(unsigned int side, unsigned int side_node) const override
 
static const int _child_node_lookup[8][27]
Lookup table from child id, child node id to "possible node location" (a simple dictionary-index in a...
 
static const Real _master_points[27][3]
Master element node locations.
 
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.
 
The Hex is an element in 3D with 6 sides.
 
virtual bool is_edge_on_side(const unsigned int e, const unsigned int s) const override final
 
ElemQuality
Defines an enum for element quality metrics.
 
virtual unsigned int n_vertices() const override final
 
This is the base class from which all geometric element types are derived.
 
virtual unsigned int n_sides() const override final
 
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
 
static const unsigned short int _second_order_adjacent_vertices[12][2]
Matrix that tells which vertices define the location of mid-side (or second-order) nodes.
 
virtual unsigned int n_edges() const override final
 
virtual Real quality(const ElemQuality q) const override
 
virtual unsigned int n_faces() const override final