Go to the documentation of this file.
   20 #ifndef LIBMESH_FACE_INF_QUAD_H 
   21 #define LIBMESH_FACE_INF_QUAD_H 
   23 #include "libmesh/libmesh_config.h" 
   25 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS 
   28 #include "libmesh/elem.h" 
   66            Node ** nodelinkdata) :
 
   86     libmesh_assert_less(i, this->
n_nodes());
 
   95   virtual unsigned short dim() const override final { 
return 2; }
 
  102   virtual unsigned int n_sides() const override final { 
return 3; }
 
  107   virtual unsigned int n_vertices() const override final { 
return 4; }
 
  113   virtual unsigned int n_edges() const override final { 
return 3; }
 
  118   virtual unsigned int n_faces() const override final { 
return 0; }
 
  123   virtual unsigned int n_children() const override final { 
return 2; }
 
  130     override final { 
return (i > 2 && i < 4); }
 
  136                                 const unsigned int s) 
const override final;
 
  154                                        unsigned int side_node) 
const override;
 
  159   virtual std::unique_ptr<Elem> 
side_ptr (
const unsigned int i) 
override final;
 
  164   virtual void side_ptr (std::unique_ptr<Elem> & side, 
const unsigned int i) 
override final;
 
  169   virtual std::unique_ptr<Elem> 
build_edge_ptr (
const unsigned int i) 
override final 
  176                                const unsigned int s) 
const override final 
  196   virtual bool infinite () const override final { 
return true; }
 
  223 #endif // ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS 
  225 #endif // LIBMESH_FACE_INF_QUAD_H 
  
virtual unsigned int which_node_am_i(unsigned int side, unsigned int side_node) const override
 
virtual std::unique_ptr< Elem > build_side_ptr(const unsigned int i, bool proxy=true)=0
 
virtual unsigned int n_sides() const override final
 
void set_interior_parent(Elem *p)
Sets the pointer to the element's interior_parent.
 
virtual unsigned int n_nodes() const =0
 
virtual std::unique_ptr< Elem > build_edge_ptr(const unsigned int i) override final
build_edge_ptr() and build_side_ptr() are identical in 2D.
 
virtual unsigned int n_faces() const override final
 
The libMesh namespace provides an interface to certain functionality in the library.
 
Elem * _elemlinks_data[4+(LIBMESH_DIM >2)]
Data for links to parent/neighbor/interior_parent elements.
 
The InfQuad is an abstract element type that lives in two dimensions.
 
const Point & point(const unsigned int i) const
 
virtual bool is_child_on_side(const unsigned int c, const unsigned int s) const override final
 
InfQuad & operator=(const InfQuad &)=delete
 
virtual Point origin() const override final
 
virtual bool is_mid_infinite_edge_node(const unsigned int i) const override final
 
A Point defines a location in LIBMESH_DIM dimensional Real space.
 
virtual dof_id_type key() const
 
virtual std::pair< Real, Real > qual_bounds(const ElemQuality q) const override
 
A Node is like a Point, but with more information.
 
virtual Real quality(const ElemQuality q) const override
 
virtual bool is_edge_on_side(const unsigned int e, const unsigned int s) const override final
is_edge_on_side is trivial in 2D.
 
static const Real _master_points[6][3]
Master element node locations.
 
virtual unsigned int n_children() const override final
 
ElemQuality
Defines an enum for element quality metrics.
 
virtual unsigned short dim() const override final
 
This is the base class from which all geometric element types are derived.
 
virtual Point master_point(const unsigned int i) const override final
 
virtual unsigned int n_vertices() const override final
 
virtual std::unique_ptr< Elem > side_ptr(const unsigned int i) override final
 
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
 
virtual bool infinite() const override final
 
InfQuad(const unsigned int nn, Elem *p, Node **nodelinkdata)
Constructor.
 
virtual ~InfQuad()=default
 
virtual unsigned int n_edges() const override final