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);
This is the base class from which all geometric element types are derived.
unsigned int n_neighbors() const
Node ** _nodes
Pointers to the nodes we are connected to.
const Node * node_ptr(const unsigned int i) const
virtual ElemType type() const =0
dof_id_type node_id(const unsigned int i) const
A Node is like a Point, but with more information.
unsigned int valence() const
The Tri3Subdivision element is a three-noded subdivision surface shell element used in mechanics calc...
unsigned int get_ordered_valence(unsigned int node_id) const
bool _subdivision_updated
true if the subdivision element is ready for use, i.e.
virtual Order default_order() const override
Node * _ordered_nodes[3]
A list containing the ordered nodes such that the irregular node (valence != 6), if there is one,...
bool _is_ghost
true if the element is a ghost element (e.g.
void prepare_subdivision_properties()
Prepares the element for use by reordering the nodes such that the irregular node (valence !...
Tri3Subdivision()
Constructor without parent specification.
Node * get_ordered_node(unsigned int node_id) const
unsigned int local_node_number(unsigned int node_id) const
The Tri3 is an element in 2D composed of 3 nodes.
The libMesh namespace provides an interface to certain functionality in the library.