24#include "libmesh/elem.h"
45 Face (
const unsigned int nn,
46 const unsigned int ns,
49 Node ** nodelinkdata) :
50 Elem(nn, ns, p, elemlinkdata, nodelinkdata) {}
61 virtual unsigned short dim () const override final {
return 2; }
67 virtual unsigned int n_faces() const override final {
return 0; }
72 virtual std::unique_ptr<Elem>
build_edge_ptr (
const unsigned int i)
override final
78 virtual void build_edge_ptr (std::unique_ptr<Elem> & edge,
const unsigned int i)
override final
90 const unsigned int s)
const override final
96 virtual std::vector<unsigned int>
sides_on_edge(
const unsigned int e)
const override final
107#ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS
113 virtual bool infinite () const override final {
return false; }
This is the base class from which all geometric element types are derived.
virtual std::unique_ptr< Elem > build_edge_ptr(const unsigned int i)=0
virtual std::unique_ptr< Elem > build_side_ptr(const unsigned int i)=0
The Face is an abstract element type that lives in two dimensions.
virtual unsigned short dim() const override final
virtual std::unique_ptr< Elem > build_edge_ptr(const unsigned int i) override final
build_side and build_edge are identical for faces.
Face & operator=(const Face &)=delete
virtual void build_edge_ptr(std::unique_ptr< Elem > &edge, const unsigned int i) override final
build_side and build_edge are identical for faces.
virtual unsigned int n_faces() const override final
virtual Point quasicircumcenter() const override
virtual std::vector< unsigned int > sides_on_edge(const unsigned int e) const override final
sides_on_edge is trivial in 2D.
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.
Face(const unsigned int nn, const unsigned int ns, Elem *p, Elem **elemlinkdata, Node **nodelinkdata)
Constructor.
virtual bool infinite() const override final
Face(const Face &)=delete
A Node is like a Point, but with more information.
A Point defines a location in LIBMESH_DIM dimensional Real space.
The libMesh namespace provides an interface to certain functionality in the library.