51 std::string
error_msg(
"Failed to open element file: ");
72 <<
"Tetgen should only be used to generate 4-noded tetrahedra!\n"
73 <<
"Your tetgen input file, contains data for " <<
n_local_node
74 <<
"-noded tetrahedra" << std::endl;
140 std::string
error_msg(
"Failed to open node file: ");
274 std::string
error_msg(
"Failed to open face file: ");
447 for (
unsigned i = 0;
i < 4;
i++)
458 unsigned glob_num[4] = {0, 0, 0, 0};
459 for (
unsigned i = 0;
i < 4; ++
i)
473 for (
unsigned i = 0;
i < 4; ++
i)
489 for (
unsigned i2 = 0;
i2 < 3; ++
i2)
501 std::set_intersection(
506 std::insert_iterator<std::set<unsigned>>(
519 "Nodes in scaffold mesh share more than one global face",
531 for (
unsigned i2 = 0;
i2 < 4; ++
i2)
554 for (
unsigned i2 = 0;
i2 < 4; ++
i2)
569 for (
unsigned i = 0;
i < 6; ++
i)
583 std::insert_iterator<std::vector<unsigned>>(
591 "Nodes in scaffold mesh share more than one global edge",
638 std::insert_iterator<std::vector<unsigned>>(
646 "Nodes in scaffold mesh face do not share exactly one global edge",
665 std::insert_iterator<std::vector<unsigned>>(
673 "Nodes in scaffold mesh face do not share exactly one global edge",
692 std::insert_iterator<std::vector<unsigned>>(
700 "Nodes in scaffold mesh face do not share exactly one global edge",
736 <<
"Tetgen should only be used to generate 4-noded tetrahedra!\n"
737 <<
"Your tetgen input data, contains data for " <<
n_local_node
738 <<
"-noded tetrahedra" << std::endl;
755 static_cast<unsigned>(
tetgen_data.numberoftetrahedronattributes);
875 static_cast<unsigned>(
tetgen_data.trifacelist[3 *
i + 1]);
878 static_cast<unsigned>(
tetgen_data.trifacemarkerlist[
i]);
1040 for (
unsigned i = 0;
i < 4;
i++)
1051 unsigned glob_num[4] = {0, 0, 0, 0};
1052 for (
unsigned i = 0;
i < 4; ++
i)
1066 for (
unsigned i = 0;
i < 4; ++
i)
1082 for (
unsigned i2 = 0;
i2 < 3; ++
i2)
1094 std::set_intersection(
1099 std::insert_iterator<std::set<unsigned>>(
1112 "Nodes in scaffold mesh share more than one global face",
1124 for (
unsigned i2 = 0;
i2 < 4; ++
i2)
1147 for (
unsigned i2 = 0;
i2 < 4; ++
i2)
1162 for (
unsigned i = 0;
i < 6; ++
i)
1176 std::insert_iterator<std::vector<unsigned>>(
1184 "Nodes in scaffold mesh share more than one global edge",
1231 std::insert_iterator<std::vector<unsigned>>(
1239 "Nodes in scaffold mesh face do not share exactly one global edge",
1258 std::insert_iterator<std::vector<unsigned>>(
1266 "Nodes in scaffold mesh face do not share exactly one global edge",
1285 std::insert_iterator<std::vector<unsigned>>(
1293 "Nodes in scaffold mesh face do not share exactly one global edge",
double size() const
Calculate the size of the element (length, area, volume,...) in Eulerian computational coordinates....
virtual Node * construct_node(const unsigned &n)
Construct the local node n and return a pointer to the newly created node object.
virtual Node * construct_boundary_node(const unsigned &n)
Construct the local node n as a boundary node; that is a node that MAY be placed on a mesh boundary a...
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
void add_boundary_node(const unsigned &b, Node *const &node_pt)
Add a (pointer to) a node to the b-th boundary.
Vector< Node * > Node_pt
Vector of pointers to nodes.
FiniteElement * finite_element_pt(const unsigned &e) const
Upcast (downcast?) to FiniteElement (needed to access FiniteElement member functions).
void set_nboundary(const unsigned &nbound)
Set the number of boundaries in the mesh.
Vector< GeneralisedElement * > Element_pt
Vector of pointers to generalised elements.
An OomphLibError object which should be thrown when an run-time error is encountered....
TAdvectionDiffusionReactionElement<NREAGENT,DIM,NNODE_1D> elements are isoparametric triangular DIM-d...
std::vector< bool > Edge_boundary
Vector of booleans to indicate whether a global edge lies on a boundary.
unsigned Nglobal_face
Storage for the number of global faces.
TetgenScaffoldMesh()
Empty constructor.
unsigned face_boundary(const unsigned &e, const unsigned &i) const
Return the boundary id of the i-th face in the e-th element: This is zero-based as in tetgen....
Vector< double > Element_attribute
Vector of double attributes for each element. NOTE: This stores doubles because tetgen forces us to!...
Vector< Vector< unsigned > > Face_index
Vector of vectors containing the global edge index of.
unsigned global_node_number(const unsigned &i)
Return the global node of each local node listed element-by-element e*n_local_node + n_local Note tha...
unsigned Nglobal_edge
Storage for the number of global edges.
Vector< Vector< unsigned > > Edge_index
Vector of vectors containing the global edge index of.
Vector< unsigned > Global_node
Storage for global node numbers listed element-by-element.
Vector< Vector< unsigned > > Face_boundary
Vector of vectors containing the boundary ids of the elements' faces.
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).