19 #include "libmesh/face_tri3_subdivision.h" 20 #include "libmesh/mesh_subdivision_support.h" 21 #include "libmesh/enum_order.h" 33 _subdivision_updated(p ? true : false),
34 _is_ghost(p ? true : false)
68 unsigned int irregular_idx = 0;
69 for (
unsigned int i = 0; i < 3; ++i)
71 if (this->
node_ptr(i)->valence() != 6)
76 "Error: The mesh contains elements with more than one irregular vertex!");
85 switch (irregular_idx)
103 libmesh_error_msg(
"Unrecognized irregular_idx = " << irregular_idx);
126 libmesh_assert_less(
node_id, 3);
The Tri3 is an element in 2D composed of 3 nodes.
Order
defines an enum for polynomial orders.
A Node is like a Point, but with more information.
Node ** _nodes
Pointers to the nodes we are connected to.
bool _subdivision_updated
true if the subdivision element is ready for use, i.e.
Tri3Subdivision()
Constructor without parent specification.
This is the base class from which all geometric element types are derived.
The libMesh namespace provides an interface to certain functionality in the library.
void prepare_subdivision_properties()
Prepares the element for use by reordering the nodes such that the irregular node (valence != 6)...
Node * get_ordered_node(unsigned int node_id) const
bool _is_ghost
true if the element is a ghost element (e.g.
The Tri3Subdivision element is a three-noded subdivision surface shell element used in mechanics calc...
unsigned int local_node_number(unsigned int node_id) const
unsigned int valence() const
Node * _ordered_nodes[3]
A list containing the ordered nodes such that the irregular node (valence != 6), if there is one...
unsigned int get_ordered_valence(unsigned int node_id) const
virtual Order default_order() const override
const Node * node_ptr(const unsigned int i) const
unsigned int n_neighbors() const
virtual ElemType type() const =0
dof_id_type node_id(const unsigned int i) const