20 #ifndef LIBMESH_FACE_C0POLYHEDRON_H 21 #define LIBMESH_FACE_C0POLYHEDRON_H 24 #include "libmesh/libmesh_common.h" 25 #include "libmesh/cell_polyhedron.h" 26 #include "libmesh/enum_order.h" 60 C0Polyhedron (
const std::vector<std::shared_ptr<Polygon>> & sides,
102 virtual bool is_vertex(
const unsigned int i)
const override;
107 virtual bool is_edge(
const unsigned int i)
const override;
112 virtual bool is_face(
const unsigned int i)
const override;
119 const unsigned int s)
const override;
121 virtual std::vector<unsigned int>
nodes_on_side(
const unsigned int s)
const override;
123 virtual std::vector<unsigned int>
nodes_on_edge(
const unsigned int e)
const override;
130 const unsigned int e)
const override;
151 std::vector<dof_id_type> & conn)
const override;
156 virtual std::pair<unsigned short int, unsigned short int>
182 void add_tet(
int n1,
int n2,
int n3,
int n4);
184 #ifdef LIBMESH_ENABLE_AMR 191 const unsigned int )
const override 192 { libmesh_not_implemented();
return 0; }
194 #endif // LIBMESH_ENABLE_AMR 201 #endif // LIBMESH_FACE_C0POLYHEDRON_H ElemType
Defines an enum for geometric element types.
virtual bool is_node_on_edge(const unsigned int n, const unsigned int e) const override
Order
defines an enum for polynomial orders.
ElemType side_type(const unsigned int s) const override final
The Polyhedron is an element in 3D with an arbitrary number of polygonal faces.
std::vector< Node * > _nodelinks_data
Data for links to nodes.
virtual dof_id_type key() const
IOPackage
libMesh interfaces with several different software packages for the purposes of creating, reading, and writing mesh files.
This is the base class from which all geometric element types are derived.
virtual void retriangulate() override final
Create a triangulation (tetrahedralization) based on the current sides' triangulations.
C0Polyhedron & operator=(const C0Polyhedron &)=delete
The libMesh namespace provides an interface to certain functionality in the library.
virtual Point true_centroid() const override
An optimized method for calculating the centroid of a C0Polyhedron.
virtual unsigned int n_sub_elem() const override
virtual Real volume() const override
An optimized method for calculating the area of a C0Polyhedron.
virtual bool is_vertex(const unsigned int i) const override
unsigned int n_subelements() const
virtual bool has_affine_map() const override
virtual Real embedding_matrix(const unsigned int, const unsigned int, const unsigned int) const override
Matrix used to create the elements children.
virtual bool is_node_on_side(const unsigned int n, const unsigned int s) const override
virtual std::vector< unsigned int > nodes_on_side(const unsigned int s) const override
virtual ElemType type() const override final
C0Polyhedron(const std::vector< std::shared_ptr< Polygon >> &sides, Elem *p=nullptr)
Constructor.
virtual unsigned int n_vertices() const override final
std::unique_ptr< Elem > disconnected_clone() const override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual bool is_face(const unsigned int i) const override
void add_tet(int n1, int n2, int n3, int n4)
Add to our triangulation (tetrahedralization).
The C0Polyhedron is an element in 3D with an arbitrary (but fixed) number of polygonal first-order (C...
virtual bool is_edge(const unsigned int i) const override
virtual void connectivity(const unsigned int sf, const IOPackage iop, std::vector< dof_id_type > &conn) const override
virtual Order default_order() const override
virtual std::vector< unsigned int > nodes_on_edge(const unsigned int e) const override
A Point defines a location in LIBMESH_DIM dimensional Real space.
virtual std::pair< unsigned short int, unsigned short int > second_order_child_vertex(const unsigned int n) const override
Element refinement is not implemented for polyhedra.