38 std::map<Node*, bool>
done;
61 for (
unsigned j = 0;
j <
nnod;
j++)
66 <<
" does not seem to be attached to any element";
95 std::string
error_msg(
"Failed to open element file: ");
112 <<
"Triangle should only be used to generate 3-noded triangles!\n"
113 <<
"Your triangle input file, contains data for " <<
n_local_node
114 <<
"-noded triangles" << std::endl;
183 std::string
err(
"Triangle is using 0-based indexing, ");
184 err +=
"however the oomph-lib interface can only handle 1-based indexing "
187 "This is likely to be due to the input file using 0-based indexing.";
188 err +=
"Alternatively you may have specified the -z flag when running "
205 std::string
error_msg(
"Failed to open node file: ");
328 std::string
error_msg(
"Failed to open poly file: ");
547 for (
unsigned i = 0;
i < 3;
i++)
554 for (
unsigned i = 0;
i < 3;
i++)
566 for (
unsigned i = 0;
i < 3;
i++)
576 std::insert_iterator<std::vector<unsigned>>(
584 "Nodes in scaffold mesh share more than one global edge",
627 for (
unsigned j = 0;
j <
nnod;
j++)
632 <<
" was not listed in *.ele file\n";
647#ifdef OOMPH_HAS_TRIANGLE_LIB
665 <<
"Triangle should only be used to generate 3-noded triangles!\n"
666 <<
"Your triangle input file, contains data for " <<
n_local_node
667 <<
"-noded triangles" << std::endl;
688 static_cast<unsigned>(
triangle_data.numberoftriangleattributes);
922 for (
unsigned i = 0;
i < 3;
i++)
929 for (
unsigned i = 0;
i < 3;
i++)
941 for (
unsigned i = 0;
i < 3;
i++)
951 std::insert_iterator<std::vector<unsigned>>(
959 "Nodes in scaffold mesh share more than one global edge",
1003 for (
unsigned j = 0;
j <
nnod;
j++)
1008 <<
" was not listed in *.ele file\n";
1015 <<
"This error means that some of the nodes are not connected \n"
1016 <<
" to (bulk) elements. This can happen if there is an isolated\n"
1017 <<
" boundary line in the mesh. One possible cause for this is\n"
1018 <<
" specifying a hole coordinate in the wrong place so that there\n"
1019 <<
" a gap between the mesh and the outer boundary.\n";
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.
unsigned nnode() const
Return the number of nodes.
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.
Node *& node_pt(const unsigned long &n)
Return pointer to global node n.
unsigned long nnode() const
Return number of nodes in the mesh.
Vector< GeneralisedElement * > Element_pt
Vector of pointers to generalised elements.
unsigned long nelement() const
Return number of elements in the mesh.
Nodes are derived from Data, but, in addition, have a definite (Eulerian) position in a space of a gi...
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...
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...
Vector< unsigned > Global_node
Storage for global node numbers listed element-by-element.
void check_mesh_integrity()
Check mesh integrity – performs some internal consistency checks and throws error if violated.
unsigned Nglobal_edge
Number of internal edges.
Vector< double > Element_attribute
Vector of double attributes for each element.
TriangleScaffoldMesh()
Empty constructor.
Vector< Vector< unsigned > > Edge_boundary
Vector of vectors containing the boundary ids of the elements' edges.
Vector< Vector< double > > Hole_centre
Vectors of hole centre coordinates.
Vector< Vector< unsigned > > Edge_index
Vector of vectors containing the global edge index of.
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
The Triangle data structure, modified from the triangle.h header supplied with triangle 1....