Triangle mesh build with the help of the scaffold mesh coming from the triangle mesh generator Triangle. http://www.cs.cmu.edu/~quake/triangle.html. More...
#include <triangle_mesh.h>
Classes | |
struct | Point |
Public Member Functions | |
TriangleMesh () | |
Empty constructor. | |
TriangleMesh (const std::string &node_file_name, const std::string &element_file_name, const std::string &poly_file_name, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper, const bool &allow_automatic_creation_of_vertices_on_boundaries=true) | |
Constructor with the input files. | |
TriangleMesh (TriangleMeshParameters &triangle_mesh_parameters, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper) | |
Build mesh, based on the specifications on TriangleMeshParameters. | |
TriangleMesh (const std::string &poly_file_name, const double &element_area, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper, const bool &allow_automatic_creation_of_vertices_on_boundaries=true) | |
Build mesh from poly file, with specified target area for all elements. | |
TriangleMesh (const TriangleMesh &dummy)=delete | |
Broken copy constructor. | |
void | operator= (const TriangleMesh &)=delete |
Broken assignment operator. | |
virtual | ~TriangleMesh () |
Destructor. | |
void | set_mesh_level_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
Overload set_mesh_level_time_stepper so that the stored time stepper now corresponds to the new timestepper. | |
void | compute_boundary_segments_connectivity_and_initial_zeta_values (const unsigned &b) |
Compute the boundary segments connectivity for those boundaries that were splited during the distribution process. | |
void | re_assign_initial_zeta_values_for_internal_boundary (const unsigned &b, Vector< std::list< FiniteElement * > > &old_segment_sorted_ele_pt, std::map< FiniteElement *, bool > &old_is_inverted) |
Re-assign the boundary segments initial zeta (arclength) value for those internal boundaries that were splited during the distribution process. Those boundaries that have one face element at each side of the boundary. | |
void | re_scale_re_assigned_initial_zeta_values_for_internal_boundary (const unsigned &b) |
Re-scale the re-assigned zeta values for the boundary nodes, apply only for internal boundaries. | |
void | identify_boundary_segments_and_assign_initial_zeta_values (const unsigned &b, Vector< FiniteElement * > &input_face_ele_pt, const bool &is_internal_boundary, std::map< FiniteElement *, FiniteElement * > &face_to_bulk_element_pt) |
Identify the segments from the old mesh (original mesh) in the new mesh (this) and assign initial and final boundary coordinates for the segments that create the boundary. (This is the version called from the original mesh to identify its own segments) | |
void | identify_boundary_segments_and_assign_initial_zeta_values (const unsigned &b, TriangleMesh< ELEMENT > *original_mesh_pt) |
Identify the segments from the old mesh (original mesh) in the new mesh (this) and assign initial and final boundary coordinates for the segments that create the boundary. | |
void | synchronize_boundary_coordinates (const unsigned &b) |
In charge of sinchronize the boundary coordinates for internal boundaries that were split as part of the distribution process. Called after setup_boundary_coordinates() for the original mesh only. | |
void | select_boundary_face_elements (Vector< FiniteElement * > &face_el_pt, const unsigned &b, bool &is_internal_boundary, std::map< FiniteElement *, FiniteElement * > &face_to_bulk_element_pt) |
Select face element from boundary using the criteria to decide which of the two face elements should be used on internal boundaries. | |
Vector< Vector< Node * > > & | boundary_segment_node_pt (const unsigned &b) |
Return direct access to nodes associated with a boundary but sorted in segments. | |
Vector< Node * > & | boundary_segment_node_pt (const unsigned &b, const unsigned &s) |
Return direct access to nodes associated with a segment of a given boundary. | |
Node *& | boundary_segment_node_pt (const unsigned &b, const unsigned &s, const unsigned &n) |
Return pointer to node n on boundary b. | |
void | update_triangulateio (Vector< Vector< double > > &internal_point) |
Update the TriangulateIO object to the current nodal position and the centre hole coordinates. | |
void | update_triangulateio () |
Update the triangulateio object to the current nodal positions. | |
void | dump_distributed_info_for_restart (std::ostream &dump_file) |
Used to dump info. related with distributed triangle meshes. | |
const unsigned | read_unsigned_line_helper (std::istream &read_file) |
void | read_distributed_info_for_restart (std::istream &restart_file) |
Used to read info. related with distributed triangle meshes. | |
virtual void | reestablish_distribution_info_for_restart (OomphCommunicator *comm_pt, std::istream &restart_file) |
Virtual function used to re-establish any additional info. related with the distribution after a re-starting for triangle meshes. | |
void | remesh_from_internal_triangulateio () |
Completely regenerate the mesh from the trianglateio structure. | |
bool | triangulateio_exists () |
Boolean defining if Triangulateio object has been built or not. | |
Vector< unsigned > | oomph_vertex_nodes_id () |
Return the vector that contains the oomph-lib node number for all vertex nodes in the TriangulateIO representation of the mesh. | |
const unsigned | initial_shared_boundary_id () |
The initial boundary id for shared boundaries. | |
const unsigned | final_shared_boundary_id () |
The final boundary id for shared boundaries. | |
virtual void | load_balance (const Vector< unsigned > &target_domain_for_local_non_halo_element) |
Virtual function to perform the load balance routines. | |
virtual void | reset_boundary_element_info (Vector< unsigned > &ntmp_boundary_elements, Vector< Vector< unsigned > > &ntmp_boundary_elements_in_region, Vector< FiniteElement * > &deleted_elements) |
Virtual function to perform the reset boundary elements info routines. Generally used after load balance. | |
void | output_boundary_coordinates (const unsigned &b, std::ostream &outfile) |
Output the nodes on the boundary and their respective boundary coordinates(into separate tecplot zones) | |
Public Attributes | |
TimeStepper * | Time_stepper_pt |
Timestepper used to build elements. | |
bool | Use_attributes |
Boolean flag to indicate whether to use attributes or not (required for multidomain meshes) | |
Protected Attributes | |
std::map< unsigned, double > | Regions_areas |
Target areas for regions; defaults to 0.0 which (luckily) implies "no specific target area" for triangle! | |
bool | Triangulateio_exists |
Boolean defining if Triangulateio object has been built or not. | |
TriangleScaffoldMesh * | Tmp_mesh_pt |
Temporary scaffold mesh. | |
Vector< unsigned > | Oomph_vertex_nodes_id |
Vector storing oomph-lib node number for all vertex nodes in the TriangulateIO representation of the mesh. | |
unsigned | Initial_shared_boundary_id |
The initial boundary id for shared boundaries. | |
unsigned | Final_shared_boundary_id |
The final boundary id for shared boundaries. | |
Vector< Vector< Vector< unsigned > > > | Shared_boundaries_ids |
Stores the boundaries ids created by the interaction of two processors Shared_boundaries_ids[iproc][jproc] = Vector of shared boundaries ids "iproc" processor shares boundaries with "jproc" processor. | |
std::map< unsigned, Vector< unsigned > > | Shared_boundary_from_processors |
Stores the processors involved in the generation of a shared boundary, in 2D two processors give rise to the creation of a shared boundary. | |
std::map< unsigned, unsigned > | Shared_boundary_overlaps_internal_boundary |
Stores information about those shared boundaries that lie over or over a segment of an internal boundary (only used when using internal boundaries in the domain) | |
Vector< Vector< Vector< TriangleMeshPolyLine * > > > | Shared_boundary_polyline_pt |
Stores the polyline representation of the shared boundaries Shared_boundary_polyline_pt[iproc][ncurve][npolyline] = polyline_pt. | |
std::map< unsigned, Vector< FiniteElement * > > | Shared_boundary_element_pt |
Stores the boundary elements adjacent to the shared boundaries, these elements are a subset of the halo and haloed elements. | |
std::map< unsigned, Vector< int > > | Face_index_at_shared_boundary |
For the e-th finite element on shared boundary b, this is the index of the face that lies along that boundary. | |
std::map< unsigned, Vector< Node * > > | Shared_boundary_node_pt |
Stores the boundary nodes adjacent to the shared boundaries, these nodes are a subset of the halo and haloed nodes. | |
std::map< unsigned, bool > | Boundary_was_splitted |
Flag to indicate if a polyline has been splitted during the distribution process, the boundary id of the polyline is used to indicate if spplited. | |
std::map< unsigned, Vector< TriangleMeshPolyLine * > > | Boundary_subpolylines |
The polylines that will temporary represent the boundary that was splitted in the distribution process. Used to ease the sending of info. to Triangle during the adaptation process. | |
std::map< unsigned, std::vector< bool > > | Boundary_marked_as_shared_boundary |
Flag to indicate if an internal boundary will be used as shared boundary because there is overlapping of the internal boundary with the shared boundary. | |
bool | First_time_compute_holes_left_by_halo_elements |
Flag to know if it is the first time we are going to compute the holes left by the halo elements. | |
Vector< Vector< double > > | Original_extra_holes_coordinates |
Backup the original extra holes coordinates. | |
Private Types | |
typedef double | coord_t |
typedef double | coord2_t |
Private Member Functions | |
coord2_t | cross (const Point &O, const Point &A, const Point &B) |
2D cross product of OA and OB vectors, i.e. z-component of their 3D cross product. Returns a positive value, if OAB makes a counter-clockwise turn, negative for clockwise turn, and zero if the points are collinear. | |
std::vector< Point > | convex_hull (std::vector< Point > P) |
Returns a list of points on the convex hull in counter-clockwise order. Note: the last point in the returned list is the same as the first one. | |
Triangle mesh build with the help of the scaffold mesh coming from the triangle mesh generator Triangle. http://www.cs.cmu.edu/~quake/triangle.html.
Definition at line 407 of file triangle_mesh.h.
Definition at line 2160 of file triangle_mesh.h.
Definition at line 2159 of file triangle_mesh.h.
|
inline |
Empty constructor.
Definition at line 411 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::First_time_compute_holes_left_by_halo_elements, and oomph::TriangleMesh< ELEMENT >::Triangulateio_exists.
|
inline |
Constructor with the input files.
Definition at line 432 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TriangleMesh< ELEMENT >::First_time_compute_holes_left_by_halo_elements, oomph::TriangleMesh< ELEMENT >::Time_stepper_pt, oomph::TriangleMesh< ELEMENT >::Tmp_mesh_pt, oomph::TriangleMesh< ELEMENT >::Triangulateio_exists, and oomph::TriangleMesh< ELEMENT >::Use_attributes.
|
inline |
Build mesh, based on the specifications on TriangleMeshParameters.
Definition at line 500 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::First_time_compute_holes_left_by_halo_elements, oomph::TriangleMesh< ELEMENT >::generic_constructor(), oomph::TriangleMesh< ELEMENT >::Regions_areas, and oomph::TriangleMesh< ELEMENT >::Time_stepper_pt.
|
inline |
Build mesh from poly file, with specified target area for all elements.
Definition at line 739 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TriangleMesh< ELEMENT >::build_triangulateio(), oomph::TriangleMesh< ELEMENT >::First_time_compute_holes_left_by_halo_elements, oomph::TriangleMesh< ELEMENT >::Time_stepper_pt, oomph::TriangleMesh< ELEMENT >::Tmp_mesh_pt, oomph::triangulate(), and oomph::TriangleMesh< ELEMENT >::Use_attributes.
|
delete |
Broken copy constructor.
|
inlinevirtual |
Destructor.
Definition at line 835 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Triangulateio_exists.
|
inlineprotected |
Definition at line 1569 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Face_index_at_shared_boundary.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::add_element_load_balance_helper(), oomph::RefineableTriangleMesh< ELEMENT >::add_halo_element_helper(), oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), oomph::TriangleMesh< ELEMENT >::create_shared_polyline(), and oomph::RefineableTriangleMesh< ELEMENT >::reset_shared_boundary_elements_and_nodes().
|
inlineprotected |
Definition at line 1539 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_element_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::add_element_load_balance_helper(), oomph::RefineableTriangleMesh< ELEMENT >::add_halo_element_helper(), oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), oomph::TriangleMesh< ELEMENT >::create_shared_polyline(), and oomph::RefineableTriangleMesh< ELEMENT >::reset_shared_boundary_elements_and_nodes().
|
inlineprotected |
Add the node the shared boundary.
Definition at line 1625 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_node_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), oomph::TriangleMesh< ELEMENT >::create_shared_polyline(), and oomph::RefineableTriangleMesh< ELEMENT >::reset_shared_boundary_elements_and_nodes().
|
inlineprotected |
Returns the value that indicates if a subpolyline of a given boundary continues been used as internal boundary or should be changed as shared boundary.
Definition at line 1889 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Boundary_marked_as_shared_boundary.
Referenced by oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation(), oomph::TriangleMesh< ELEMENT >::create_shared_polylines_connections(), and oomph::RefineableTriangleMesh< ELEMENT >::restore_polyline_connections_helper().
|
inline |
Return direct access to nodes associated with a boundary but sorted in segments.
Definition at line 933 of file triangle_mesh.h.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::snap_nodes_onto_boundary().
|
inline |
Return direct access to nodes associated with a segment of a given boundary.
Definition at line 940 of file triangle_mesh.h.
|
inline |
Return pointer to node n on boundary b.
Definition at line 947 of file triangle_mesh.h.
|
inlineprotected |
Gets the vector of auxiliar polylines that will represent the given boundary (useful only when the boundaries were split)
Definition at line 1863 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Boundary_subpolylines.
Referenced by oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation(), oomph::TriangleMesh< ELEMENT >::create_shared_polylines_connections(), and oomph::RefineableTriangleMesh< ELEMENT >::restore_polyline_connections_helper().
|
inlineprotected |
Helper function to verify if a given boundary was splitted in the distribution process.
Definition at line 1819 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Boundary_was_splitted.
Referenced by oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation(), oomph::TriangleMesh< ELEMENT >::create_shared_polylines_connections(), and oomph::RefineableTriangleMesh< ELEMENT >::restore_polyline_connections_helper().
|
protected |
Break any possible loop created by the sorted list of nodes that is used to create a new shared polyline.
Definition at line 13271 of file triangle_mesh.template.cc.
Referenced by oomph::TriangleMesh< ELEMENT >::create_polylines_from_halo_elements_helper().
|
protected |
Break any possible loop created by the sorted list of nodes that is used to create a new shared polyline (modified version for load balance)
Definition at line 14195 of file triangle_mesh.template.cc.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries().
|
protected |
Build mesh from scaffold.
Build with the help of the scaffold mesh coming from the triangle mesh generator Triangle.
Definition at line 47 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::Oomph_vertex_nodes_id, and oomph::TriangleMesh< ELEMENT >::Tmp_mesh_pt.
Referenced by oomph::TriangleMesh< ELEMENT >::generic_constructor(), oomph::TriangleMesh< ELEMENT >::remesh_from_internal_triangulateio(), oomph::TriangleMesh< ELEMENT >::TriangleMesh(), and oomph::TriangleMesh< ELEMENT >::TriangleMesh().
|
protected |
Helper function to create TriangulateIO object (return in triangulate_io) from the .poly file.
Create TriangulateIO object via the .poly file.
Definition at line 7204 of file triangle_mesh.template.cc.
Referenced by oomph::TriangleMesh< ELEMENT >::TriangleMesh().
|
protected |
Check for any possible connections that the array of sorted nodes have with any previous boundaries or with itself. Return -1 if no connection was found, return -2 if the connection is with the same polyline, return the boundary id of the boundary to which the connection is performed.
Definition at line 9077 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::initial_shared_boundary_id(), and oomph::TriangleMesh< ELEMENT >::shared_boundaries_in_this_processor().
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), and oomph::TriangleMesh< ELEMENT >::create_polylines_from_halo_elements_helper().
void oomph::TriangleMesh< ELEMENT >::compute_boundary_segments_connectivity_and_initial_zeta_values | ( | const unsigned & | b | ) |
Compute the boundary segments connectivity for those boundaries that were splited during the distribution process.
Compute the boundary segments connectivity for those boundaries that were splited during the distribution process and also the initial zeta values for each segment (the initial and final boundary nodes coordinates)
Definition at line 1839 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::identify_boundary_segments_and_assign_initial_zeta_values(), oomph::TriangleMesh< ELEMENT >::re_assign_initial_zeta_values_for_internal_boundary(), and oomph::TriangleMesh< ELEMENT >::select_boundary_face_elements().
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt().
|
protected |
Compute the holes left by the halo elements, those adjacent to the shared boundaries.
Definition at line 10825 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::nshared_boundaries(), oomph::TriangleMesh< ELEMENT >::nshared_boundary_element(), oomph::TriangleMesh< ELEMENT >::shared_boundaries_ids(), and oomph::TriangleMesh< ELEMENT >::shared_boundary_element_pt().
Referenced by oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation().
|
inlineprivate |
Returns a list of points on the convex hull in counter-clockwise order. Note: the last point in the returned list is the same as the first one.
Definition at line 2184 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::cross().
Referenced by oomph::TriangleMesh< ELEMENT >::update_holes_information_helper().
|
protected |
Creates the distributed domain representation. Joins the original boundaires, shared boundaries and creates connections among them to create the new polygons that represent the distributed domain.
Definition at line 8137 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::boundary_marked_as_shared_boundary(), oomph::TriangleMesh< ELEMENT >::boundary_subpolylines(), oomph::TriangleMesh< ELEMENT >::boundary_was_splitted(), oomph::TriangleMesh< ELEMENT >::compute_holes_left_by_halo_elements_helper(), oomph::TriangleMesh< ELEMENT >::create_shared_polylines_connections(), oomph::TriangleMesh< ELEMENT >::create_tmp_open_curves_helper(), oomph::TriangleMesh< ELEMENT >::create_tmp_polygons_helper(), oomph::TriangleMesh< ELEMENT >::First_time_compute_holes_left_by_halo_elements, oomph::TriangleMesh< ELEMENT >::nshared_boundary_curves(), oomph::TriangleMesh< ELEMENT >::nshared_boundary_overlaps_internal_boundary(), oomph::TriangleMesh< ELEMENT >::nshared_boundary_polyline(), oomph::TriangleMesh< ELEMENT >::Original_extra_holes_coordinates, oomph::TriangleMesh< ELEMENT >::shared_boundary_overlaps_internal_boundary(), oomph::TriangleMesh< ELEMENT >::shared_boundary_polyline_pt(), oomph::TriangleMesh< ELEMENT >::sort_polylines_helper(), and oomph::TriangleMesh< ELEMENT >::update_holes_information_helper().
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt().
|
protected |
Creates polylines from the intersection of halo elements on all processors. The new polylines define the shared boundaries in the domain This get the polylines on ALL processors, that is why the three dimensions output_polylines_pt[iproc][ncurve][npolyline].
Definition at line 11776 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::break_loops_on_shared_polyline_helper(), oomph::TriangleMesh< ELEMENT >::check_connections_of_polyline_nodes(), oomph::TriangleMesh< ELEMENT >::create_shared_polyline(), oomph::TriangleMesh< ELEMENT >::Final_shared_boundary_id, oomph::TriangleMesh< ELEMENT >::Initial_shared_boundary_id, oomph::TriangleMesh< ELEMENT >::Shared_boundaries_ids, and oomph::TriangleMesh< ELEMENT >::sort_polylines_helper().
Referenced by oomph::TriangleMesh< ELEMENT >::create_shared_boundaries().
|
protected |
Creates the shared boundaries.
Definition at line 11544 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::create_polylines_from_halo_elements_helper(), oomph::TriangleMesh< ELEMENT >::flush_shared_boundary_polyline_pt(), oomph::TriangleMesh< ELEMENT >::get_element_edges_on_boundary(), oomph::TriangleMesh< ELEMENT >::get_halo_elements_on_all_procs(), and oomph::TriangleMesh< ELEMENT >::Shared_boundary_polyline_pt.
|
protected |
Create the shared polyline and fill the data structured that keep all the information associated with the creationg of the shared boundary.
Definition at line 14623 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::add_face_index_at_shared_boundary(), oomph::TriangleMesh< ELEMENT >::add_shared_boundary_element(), oomph::TriangleMesh< ELEMENT >::add_shared_boundary_node(), oomph::TriangleMesh< ELEMENT >::Shared_boundaries_ids, oomph::TriangleMesh< ELEMENT >::Shared_boundary_from_processors, and oomph::TriangleMesh< ELEMENT >::Shared_boundary_overlaps_internal_boundary.
Referenced by oomph::TriangleMesh< ELEMENT >::create_polylines_from_halo_elements_helper().
|
protected |
Establish the connections of the polylines previously marked as having connections. This connections were marked in the function TriangleMesh::create_polylines_from_halo_elements_helper().
Definition at line 9517 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::boundary_marked_as_shared_boundary(), oomph::TriangleMesh< ELEMENT >::boundary_subpolylines(), oomph::TriangleMesh< ELEMENT >::boundary_was_splitted(), oomph::TriangleMesh< ELEMENT >::get_shared_boundaries_overlapping_internal_boundary(), oomph::TriangleMesh< ELEMENT >::initial_shared_boundary_id(), oomph::TriangleMesh< ELEMENT >::nboundary_subpolylines(), and oomph::TriangleMesh< ELEMENT >::Shared_boundary_polyline_pt.
Referenced by oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation().
|
protected |
Take the polylines from the original open curves and created new temporaly representations of open curves with the bits of original curves not overlapped by shared boundaries.
Definition at line 9037 of file triangle_mesh.template.cc.
Referenced by oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation().
|
protected |
Take the polylines from the shared boundaries and create temporary polygon representations of the domain.
Definition at line 8637 of file triangle_mesh.template.cc.
Referenced by oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation().
|
inlineprivate |
2D cross product of OA and OB vectors, i.e. z-component of their 3D cross product. Returns a positive value, if OAB makes a counter-clockwise turn, negative for clockwise turn, and zero if the points are collinear.
Definition at line 2176 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Point::x, and oomph::TriangleMesh< ELEMENT >::Point::y.
Referenced by oomph::TriangleMesh< ELEMENT >::convex_hull().
void oomph::TriangleMesh< ELEMENT >::dump_distributed_info_for_restart | ( | std::ostream & | dump_file | ) |
Used to dump info. related with distributed triangle meshes.
Definition at line 7443 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::final_shared_boundary_id(), oomph::TriangleMesh< ELEMENT >::initial_shared_boundary_id(), oomph::TriangleMesh< ELEMENT >::nshared_boundaries(), oomph::TriangleMesh< ELEMENT >::nshared_boundary_overlaps_internal_boundary(), oomph::TriangleMesh< ELEMENT >::shared_boundaries_ids(), oomph::TriangleMesh< ELEMENT >::shared_boundary_overlapping_internal_boundary(), and oomph::TriangleMesh< ELEMENT >::shared_boundary_overlaps_internal_boundary().
|
inlineprotected |
Definition at line 1574 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Face_index_at_shared_boundary.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::get_required_elemental_information_load_balance_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_shared_boundary_segment_nodes_helper(), and oomph::RefineableTriangleMesh< ELEMENT >::update_shared_curve_using_elements_area().
|
inline |
The final boundary id for shared boundaries.
Definition at line 1350 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Final_shared_boundary_id.
Referenced by oomph::TriangleMesh< ELEMENT >::dump_distributed_info_for_restart(), oomph::RefineableTriangleMesh< ELEMENT >::load_balance(), oomph::RefineableTriangleMesh< ELEMENT >::reset_halo_haloed_scheme(), and oomph::RefineableTriangleMesh< ELEMENT >::reset_shared_boundary_elements_and_nodes().
|
inlineprotected |
Definition at line 1564 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Face_index_at_shared_boundary.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), and oomph::RefineableTriangleMesh< ELEMENT >::reset_shared_boundary_elements_and_nodes().
|
inlineprotected |
Definition at line 1515 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_element_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), and oomph::RefineableTriangleMesh< ELEMENT >::reset_shared_boundary_elements_and_nodes().
|
inlineprotected |
Definition at line 1520 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_element_pt.
|
inlineprotected |
Flush ALL the shared boundary nodes.
Definition at line 1613 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_node_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), and oomph::RefineableTriangleMesh< ELEMENT >::reset_shared_boundary_elements_and_nodes().
|
inlineprotected |
Flush the boundary nodes associated to the shared boundary b.
Definition at line 1619 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_node_pt.
|
inlineprotected |
Definition at line 1930 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_polyline_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), and oomph::TriangleMesh< ELEMENT >::create_shared_boundaries().
|
inlineprotected |
A general-purpose construction function that builds the mesh once the different specific constructors have assembled the appropriate information.
Definition at line 1188 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TriangleMesh< ELEMENT >::Time_stepper_pt, oomph::TriangleMesh< ELEMENT >::Tmp_mesh_pt, oomph::triangulate(), oomph::TriangleMesh< ELEMENT >::Triangulateio_exists, and oomph::TriangleMesh< ELEMENT >::Use_attributes.
Referenced by oomph::TriangleMesh< ELEMENT >::TriangleMesh().
|
protected |
Get the element edges (pair of nodes, edges) that lie on a boundary (used to mark shared boundaries that lie on internal boundaries)
Definition at line 11711 of file triangle_mesh.template.cc.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), and oomph::TriangleMesh< ELEMENT >::create_shared_boundaries().
|
protected |
Creates the halo elements on all processors Gets the halo elements on all processors, these elements are then used on the function that computes the shared boundaries among the processors.
Definition at line 11622 of file triangle_mesh.template.cc.
Referenced by oomph::TriangleMesh< ELEMENT >::create_shared_boundaries().
|
inlineprotected |
Gets the shared boundaries ids that overlap the given internal boundary.
Definition at line 1774 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_overlaps_internal_boundary.
Referenced by oomph::TriangleMesh< ELEMENT >::create_shared_polylines_connections().
void oomph::TriangleMesh< ELEMENT >::identify_boundary_segments_and_assign_initial_zeta_values | ( | const unsigned & | b, |
TriangleMesh< ELEMENT > * | original_mesh_pt | ||
) |
Identify the segments from the old mesh (original mesh) in the new mesh (this) and assign initial and final boundary coordinates for the segments that create the boundary.
Definition at line 389 of file triangle_mesh.template.cc.
void oomph::TriangleMesh< ELEMENT >::identify_boundary_segments_and_assign_initial_zeta_values | ( | const unsigned & | b, |
Vector< FiniteElement * > & | input_face_ele_pt, | ||
const bool & | is_internal_boundary, | ||
std::map< FiniteElement *, FiniteElement * > & | face_to_bulk_element_pt | ||
) |
Identify the segments from the old mesh (original mesh) in the new mesh (this) and assign initial and final boundary coordinates for the segments that create the boundary. (This is the version called from the original mesh to identify its own segments)
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt(), and oomph::TriangleMesh< ELEMENT >::compute_boundary_segments_connectivity_and_initial_zeta_values().
|
inline |
The initial boundary id for shared boundaries.
Definition at line 1344 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Initial_shared_boundary_id.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::add_vertices_for_non_deletion(), oomph::TriangleMesh< ELEMENT >::check_connections_of_polyline_nodes(), oomph::RefineableTriangleMesh< ELEMENT >::compute_global_node_names_and_shared_nodes(), oomph::RefineableTriangleMesh< ELEMENT >::construct_new_halo_node_helper(), oomph::RefineableTriangleMesh< ELEMENT >::construct_new_node_load_balance_helper(), oomph::TriangleMesh< ELEMENT >::create_shared_polylines_connections(), oomph::RefineableTriangleMesh< ELEMENT >::create_temporary_boundary_connections(), oomph::TriangleMesh< ELEMENT >::dump_distributed_info_for_restart(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_elemental_information_load_balance_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_load_balance_helper(), oomph::RefineableTriangleMesh< ELEMENT >::load_balance(), oomph::TriangleMesh< ELEMENT >::remesh_from_internal_triangulateio(), oomph::RefineableTriangleMesh< ELEMENT >::reset_halo_haloed_scheme(), oomph::RefineableTriangleMesh< ELEMENT >::reset_shared_boundary_elements_and_nodes(), oomph::RefineableTriangleMesh< ELEMENT >::restore_polyline_connections_helper(), oomph::RefineableTriangleMesh< ELEMENT >::send_boundary_node_info_of_shared_nodes(), and oomph::RefineableTriangleMesh< ELEMENT >::update_other_proc_shd_bnd_node_helper().
|
inlineprotected |
Is the node on the shared boundary.
Definition at line 1667 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_node_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::compute_global_node_names_and_shared_nodes(), oomph::RefineableTriangleMesh< ELEMENT >::construct_new_halo_node_helper(), oomph::RefineableTriangleMesh< ELEMENT >::construct_new_node_load_balance_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_load_balance_helper(), and oomph::RefineableTriangleMesh< ELEMENT >::reset_halo_haloed_scheme().
|
inlinevirtual |
Virtual function to perform the load balance routines.
Reimplemented in oomph::RefineableTriangleMesh< ELEMENT >.
Definition at line 2127 of file triangle_mesh.h.
|
inlineprotected |
Gets the number of subpolylines that create the boundarya (useful only when the boundary is marked as split)
Definition at line 1835 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Boundary_subpolylines.
Referenced by oomph::TriangleMesh< ELEMENT >::create_shared_polylines_connections(), and oomph::RefineableTriangleMesh< ELEMENT >::restore_polyline_connections_helper().
|
inlineprotected |
Definition at line 1491 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_element_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::compute_global_node_names_and_shared_nodes(), oomph::TriangleMesh< ELEMENT >::compute_holes_left_by_halo_elements_helper(), oomph::TriangleMesh< ELEMENT >::dump_distributed_info_for_restart(), oomph::RefineableTriangleMesh< ELEMENT >::fill_boundary_elements_and_nodes_for_internal_boundaries(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_load_balance_helper(), oomph::RefineableTriangleMesh< ELEMENT >::reset_halo_haloed_scheme(), and oomph::TriangleMesh< ELEMENT >::shared_boundaries_in_this_processor().
|
inlineprotected |
Access functions to boundaries shared with processors.
Definition at line 1422 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundaries_ids.
|
inlineprotected |
Definition at line 1467 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_polyline_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt(), oomph::RefineableTriangleMesh< ELEMENT >::add_vertices_for_non_deletion(), and oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation().
|
inlineprotected |
Definition at line 1496 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_element_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::compute_global_node_names_and_shared_nodes(), oomph::TriangleMesh< ELEMENT >::compute_holes_left_by_halo_elements_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_elemental_information_load_balance_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_shared_boundary_segment_nodes_helper(), oomph::RefineableTriangleMesh< ELEMENT >::reset_halo_haloed_scheme(), oomph::RefineableTriangleMesh< ELEMENT >::update_shared_curve_after_restart(), and oomph::RefineableTriangleMesh< ELEMENT >::update_shared_curve_using_elements_area().
|
inlineprotected |
Definition at line 1593 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_node_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt(), and oomph::RefineableTriangleMesh< ELEMENT >::sort_nodes_on_shared_boundaries().
|
inlineprotected |
Get the number of shared boundaries overlaping internal boundaries.
Definition at line 1729 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_overlaps_internal_boundary.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt(), oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation(), and oomph::TriangleMesh< ELEMENT >::dump_distributed_info_for_restart().
|
inlineprotected |
Definition at line 1472 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_polyline_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::add_vertices_for_non_deletion(), and oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation().
|
inline |
Return the vector that contains the oomph-lib node number for all vertex nodes in the TriangulateIO representation of the mesh.
Definition at line 1156 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Oomph_vertex_nodes_id.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt().
|
delete |
Broken assignment operator.
void oomph::TriangleMesh< ELEMENT >::output_boundary_coordinates | ( | const unsigned & | b, |
std::ostream & | outfile | ||
) |
Output the nodes on the boundary and their respective boundary coordinates(into separate tecplot zones)
Definition at line 8020 of file triangle_mesh.template.cc.
void oomph::TriangleMesh< ELEMENT >::re_assign_initial_zeta_values_for_internal_boundary | ( | const unsigned & | b, |
Vector< std::list< FiniteElement * > > & | old_segment_sorted_ele_pt, | ||
std::map< FiniteElement *, bool > & | old_is_inverted | ||
) |
Re-assign the boundary segments initial zeta (arclength) value for those internal boundaries that were splited during the distribution process. Those boundaries that have one face element at each side of the boundary.
Re-assign the boundary segments initial zeta (arclength) for those internal boundaries that were splited during the distribution process. Those boundaries that have one face element at each side of the boundary. Here we create the segments only with the nonhalo elements, therefore the boundary coordinates need to be re-assigned to be passed to the new meshes.
Definition at line 4090 of file triangle_mesh.template.cc.
Referenced by oomph::TriangleMesh< ELEMENT >::compute_boundary_segments_connectivity_and_initial_zeta_values().
void oomph::TriangleMesh< ELEMENT >::re_scale_re_assigned_initial_zeta_values_for_internal_boundary | ( | const unsigned & | b | ) |
Re-scale the re-assigned zeta values for the boundary nodes, apply only for internal boundaries.
Re-assign the boundary segments initial zeta (arclength) for those internal boundaries that were splited during the distribution process (only apply for internal boundaries that have one face element at each side of the boundary)
Definition at line 6571 of file triangle_mesh.template.cc.
Referenced by oomph::TriangleMesh< ELEMENT >::synchronize_boundary_coordinates().
void oomph::TriangleMesh< ELEMENT >::read_distributed_info_for_restart | ( | std::istream & | restart_file | ) |
Used to read info. related with distributed triangle meshes.
Definition at line 7686 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::read_unsigned_line_helper(), oomph::TriangleMesh< ELEMENT >::shared_boundaries_ids(), oomph::TriangleMesh< ELEMENT >::shared_boundary_from_processors(), and oomph::TriangleMesh< ELEMENT >::shared_boundary_overlaps_internal_boundary().
|
inline |
Definition at line 1007 of file triangle_mesh.h.
Referenced by oomph::TriangleMesh< ELEMENT >::read_distributed_info_for_restart().
|
inlinevirtual |
Virtual function used to re-establish any additional info. related with the distribution after a re-starting for triangle meshes.
Reimplemented in oomph::RefineableTriangleMesh< ELEMENT >.
Definition at line 1026 of file triangle_mesh.h.
|
inline |
Completely regenerate the mesh from the trianglateio structure.
Definition at line 1041 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TriangleMesh< ELEMENT >::initial_shared_boundary_id(), oomph::TriangleMesh< ELEMENT >::Time_stepper_pt, oomph::TriangleMesh< ELEMENT >::Tmp_mesh_pt, oomph::TriangleMesh< ELEMENT >::Triangulateio_exists, and oomph::TriangleMesh< ELEMENT >::Use_attributes.
|
virtual |
Virtual function to perform the reset boundary elements info routines. Generally used after load balance.
Reset the boundary elements info. after load balance have taken place.
Definition at line 14866 of file triangle_mesh.template.cc.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::load_balance().
void oomph::TriangleMesh< ELEMENT >::select_boundary_face_elements | ( | Vector< FiniteElement * > & | face_ele_pt, |
const unsigned & | b, | ||
bool & | is_internal_boundary, | ||
std::map< FiniteElement *, FiniteElement * > & | face_to_bulk_element_pt | ||
) |
Select face element from boundary using the criteria to decide which of the two face elements should be used on internal boundaries.
===================================================================== Select face elements from a given boundary. In case the we are dealing with an internal boundary we use a set of criterias to decide which of the two face elements should be used on represent the internal boundary. We return the face elements, halo or haloed on this processor that form the boundary. The caller method should be in charge of selecting nonhalo elements and deleting the face
Definition at line 5283 of file triangle_mesh.template.cc.
Referenced by oomph::TriangleMesh< ELEMENT >::compute_boundary_segments_connectivity_and_initial_zeta_values().
|
inline |
Overload set_mesh_level_time_stepper so that the stored time stepper now corresponds to the new timestepper.
Definition at line 872 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Time_stepper_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt().
|
inlineprotected |
Definition at line 1433 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundaries_ids.
|
inlineprotected |
Definition at line 1428 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundaries_ids.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt(), oomph::RefineableTriangleMesh< ELEMENT >::compute_global_node_names_and_shared_nodes(), oomph::TriangleMesh< ELEMENT >::compute_holes_left_by_halo_elements_helper(), oomph::TriangleMesh< ELEMENT >::dump_distributed_info_for_restart(), oomph::RefineableTriangleMesh< ELEMENT >::fill_boundary_elements_and_nodes_for_internal_boundaries(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_load_balance_helper(), oomph::TriangleMesh< ELEMENT >::read_distributed_info_for_restart(), oomph::RefineableTriangleMesh< ELEMENT >::reset_halo_haloed_scheme(), and oomph::TriangleMesh< ELEMENT >::shared_boundaries_in_this_processor().
|
inlineprotected |
Definition at line 1443 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundaries_ids.
|
inlineprotected |
Definition at line 1438 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundaries_ids.
|
inlineprotected |
Definition at line 1454 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundaries_ids.
|
inlineprotected |
Definition at line 1448 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundaries_ids.
|
inlineprotected |
Definition at line 1460 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundaries_ids.
|
inlineprotected |
Get the shared boundaries ids living in the current processor.
Definition at line 1357 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::nshared_boundaries(), oomph::TriangleMesh< ELEMENT >::shared_boundaries_ids(), and oomph::TriangleMesh< ELEMENT >::shared_boundaries_in_this_processor().
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt(), oomph::TriangleMesh< ELEMENT >::check_connections_of_polyline_nodes(), oomph::RefineableTriangleMesh< ELEMENT >::fill_boundary_elements_and_nodes_for_internal_boundaries(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_elemental_information_load_balance_helper(), oomph::TriangleMesh< ELEMENT >::shared_boundaries_in_this_processor(), and oomph::RefineableTriangleMesh< ELEMENT >::sort_nodes_on_shared_boundaries().
|
inlineprotected |
Definition at line 1544 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_element_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::compute_global_node_names_and_shared_nodes(), oomph::TriangleMesh< ELEMENT >::compute_holes_left_by_halo_elements_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_elemental_information_load_balance_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_shared_boundary_segment_nodes_helper(), oomph::RefineableTriangleMesh< ELEMENT >::reset_halo_haloed_scheme(), oomph::RefineableTriangleMesh< ELEMENT >::update_shared_curve_after_restart(), and oomph::RefineableTriangleMesh< ELEMENT >::update_shared_curve_using_elements_area().
|
inlineprotected |
Return the association of the shared boundaries with the processors.
Definition at line 1700 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_from_processors.
Referenced by oomph::TriangleMesh< ELEMENT >::read_distributed_info_for_restart(), and oomph::RefineableTriangleMesh< ELEMENT >::reset_shared_boundary_elements_and_nodes().
|
inlineprotected |
Definition at line 1705 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_from_processors.
|
inlineprotected |
Definition at line 1647 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_node_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::sort_nodes_on_shared_boundaries().
|
inlineprotected |
Gets the boundary id of the internal boundary that the shared boundary lies on.
Definition at line 1749 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_overlaps_internal_boundary.
Referenced by oomph::TriangleMesh< ELEMENT >::dump_distributed_info_for_restart().
|
inlineprotected |
Gets the storage that indicates if a shared boundary is part of an internal boundary.
Definition at line 1812 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_overlaps_internal_boundary.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt(), oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation(), oomph::TriangleMesh< ELEMENT >::dump_distributed_info_for_restart(), and oomph::TriangleMesh< ELEMENT >::read_distributed_info_for_restart().
|
inlineprotected |
Checks if the shared boundary overlaps an internal boundary.
Definition at line 1735 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_overlaps_internal_boundary.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt().
|
inlineprotected |
Definition at line 1478 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_polyline_pt.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::add_vertices_for_non_deletion(), and oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation().
|
inlineprotected |
Definition at line 1484 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Shared_boundary_polyline_pt.
|
protected |
Sorts the polylines so they be continuous and then we can create a closed or open curve from them.
Definition at line 11344 of file triangle_mesh.template.cc.
Referenced by oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation(), oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), and oomph::TriangleMesh< ELEMENT >::create_polylines_from_halo_elements_helper().
void oomph::TriangleMesh< ELEMENT >::synchronize_boundary_coordinates | ( | const unsigned & | b | ) |
In charge of sinchronize the boundary coordinates for internal boundaries that were split as part of the distribution process. Called after setup_boundary_coordinates() for the original mesh only.
======================================================================== In charge of sinchronize the boundary coordinates for internal boundaries that were split as part of the distribution process. Called after setup_boundary_coordinates() for the
Definition at line 5612 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::re_scale_re_assigned_initial_zeta_values_for_internal_boundary().
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt().
|
inline |
Boolean defining if Triangulateio object has been built or not.
Definition at line 1147 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Triangulateio_exists.
|
protected |
Keeps those vertices that define a hole, those that are inside closed internal boundaries in the new polygons that define the domain. Delete those outside/inside the outer polygons (this is required since Triangle can not deal with vertices that define holes outside the new outer polygons of the domain)
Definition at line 10934 of file triangle_mesh.template.cc.
References oomph::TriangleMesh< ELEMENT >::convex_hull().
Referenced by oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation().
|
inline |
Update the triangulateio object to the current nodal positions.
Definition at line 980 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::Oomph_vertex_nodes_id.
Referenced by oomph::TriangleMesh< ELEMENT >::update_triangulateio().
|
inline |
Update the TriangulateIO object to the current nodal position and the centre hole coordinates.
Definition at line 960 of file triangle_mesh.h.
References oomph::TriangleMesh< ELEMENT >::update_triangulateio().
|
protected |
Flag to indicate if an internal boundary will be used as shared boundary because there is overlapping of the internal boundary with the shared boundary.
Definition at line 1962 of file triangle_mesh.h.
Referenced by oomph::TriangleMesh< ELEMENT >::boundary_marked_as_shared_boundary(), oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), oomph::RefineableTriangleMesh< ELEMENT >::update_open_curve_after_restart(), and oomph::RefineableTriangleMesh< ELEMENT >::update_open_curve_using_elements_area().
|
protected |
The polylines that will temporary represent the boundary that was splitted in the distribution process. Used to ease the sending of info. to Triangle during the adaptation process.
Definition at line 1956 of file triangle_mesh.h.
Referenced by oomph::TriangleMesh< ELEMENT >::boundary_subpolylines(), oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), oomph::TriangleMesh< ELEMENT >::nboundary_subpolylines(), oomph::RefineableTriangleMesh< ELEMENT >::update_open_curve_after_restart(), oomph::RefineableTriangleMesh< ELEMENT >::update_open_curve_using_elements_area(), oomph::RefineableTriangleMesh< ELEMENT >::update_polygon_after_restart(), and oomph::RefineableTriangleMesh< ELEMENT >::update_polygon_using_elements_area().
|
protected |
Flag to indicate if a polyline has been splitted during the distribution process, the boundary id of the polyline is used to indicate if spplited.
Definition at line 1951 of file triangle_mesh.h.
Referenced by oomph::TriangleMesh< ELEMENT >::boundary_was_splitted(), oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), oomph::RefineableTriangleMesh< ELEMENT >::update_open_curve_after_restart(), oomph::RefineableTriangleMesh< ELEMENT >::update_open_curve_using_elements_area(), oomph::RefineableTriangleMesh< ELEMENT >::update_polygon_after_restart(), and oomph::RefineableTriangleMesh< ELEMENT >::update_polygon_using_elements_area().
|
protected |
For the e-th finite element on shared boundary b, this is the index of the face that lies along that boundary.
Definition at line 1942 of file triangle_mesh.h.
Referenced by oomph::TriangleMesh< ELEMENT >::add_face_index_at_shared_boundary(), oomph::TriangleMesh< ELEMENT >::face_index_at_shared_boundary(), and oomph::TriangleMesh< ELEMENT >::flush_face_index_at_shared_boundary().
|
protected |
The final boundary id for shared boundaries.
Definition at line 1908 of file triangle_mesh.h.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), oomph::TriangleMesh< ELEMENT >::create_polylines_from_halo_elements_helper(), and oomph::TriangleMesh< ELEMENT >::final_shared_boundary_id().
|
protected |
Flag to know if it is the first time we are going to compute the holes left by the halo elements.
Definition at line 1994 of file triangle_mesh.h.
Referenced by oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation(), oomph::TriangleMesh< ELEMENT >::TriangleMesh(), oomph::TriangleMesh< ELEMENT >::TriangleMesh(), oomph::TriangleMesh< ELEMENT >::TriangleMesh(), and oomph::TriangleMesh< ELEMENT >::TriangleMesh().
|
protected |
The initial boundary id for shared boundaries.
Definition at line 1905 of file triangle_mesh.h.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), oomph::TriangleMesh< ELEMENT >::create_polylines_from_halo_elements_helper(), and oomph::TriangleMesh< ELEMENT >::initial_shared_boundary_id().
|
protected |
Vector storing oomph-lib node number for all vertex nodes in the TriangulateIO representation of the mesh.
Definition at line 1338 of file triangle_mesh.h.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt(), oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TriangleMesh< ELEMENT >::oomph_vertex_nodes_id(), and oomph::TriangleMesh< ELEMENT >::update_triangulateio().
|
protected |
Backup the original extra holes coordinates.
Definition at line 1997 of file triangle_mesh.h.
Referenced by oomph::TriangleMesh< ELEMENT >::create_distributed_domain_representation().
|
protected |
Target areas for regions; defaults to 0.0 which (luckily) implies "no specific target area" for triangle!
Definition at line 1171 of file triangle_mesh.h.
Referenced by oomph::TriangleMesh< ELEMENT >::TriangleMesh().
Stores the boundaries ids created by the interaction of two processors Shared_boundaries_ids[iproc][jproc] = Vector of shared boundaries ids "iproc" processor shares boundaries with "jproc" processor.
Definition at line 1914 of file triangle_mesh.h.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), oomph::TriangleMesh< ELEMENT >::create_polylines_from_halo_elements_helper(), oomph::TriangleMesh< ELEMENT >::create_shared_polyline(), oomph::TriangleMesh< ELEMENT >::nshared_boundaries(), oomph::TriangleMesh< ELEMENT >::shared_boundaries_ids(), oomph::TriangleMesh< ELEMENT >::shared_boundaries_ids(), oomph::TriangleMesh< ELEMENT >::shared_boundaries_ids(), oomph::TriangleMesh< ELEMENT >::shared_boundaries_ids(), oomph::TriangleMesh< ELEMENT >::shared_boundaries_ids(), oomph::TriangleMesh< ELEMENT >::shared_boundaries_ids(), and oomph::TriangleMesh< ELEMENT >::shared_boundaries_ids().
|
protected |
Stores the boundary elements adjacent to the shared boundaries, these elements are a subset of the halo and haloed elements.
Definition at line 1938 of file triangle_mesh.h.
Referenced by oomph::TriangleMesh< ELEMENT >::add_shared_boundary_element(), oomph::TriangleMesh< ELEMENT >::flush_shared_boundary_element(), oomph::TriangleMesh< ELEMENT >::flush_shared_boundary_element(), oomph::TriangleMesh< ELEMENT >::nshared_boundaries(), oomph::TriangleMesh< ELEMENT >::nshared_boundary_element(), and oomph::TriangleMesh< ELEMENT >::shared_boundary_element_pt().
|
protected |
Stores the processors involved in the generation of a shared boundary, in 2D two processors give rise to the creation of a shared boundary.
Definition at line 1919 of file triangle_mesh.h.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), oomph::TriangleMesh< ELEMENT >::create_shared_polyline(), oomph::TriangleMesh< ELEMENT >::shared_boundary_from_processors(), and oomph::TriangleMesh< ELEMENT >::shared_boundary_from_processors().
|
protected |
Stores the boundary nodes adjacent to the shared boundaries, these nodes are a subset of the halo and haloed nodes.
Definition at line 1946 of file triangle_mesh.h.
Referenced by oomph::TriangleMesh< ELEMENT >::add_shared_boundary_node(), oomph::TriangleMesh< ELEMENT >::flush_shared_boundary_node(), oomph::TriangleMesh< ELEMENT >::flush_shared_boundary_node(), oomph::TriangleMesh< ELEMENT >::is_node_on_shared_boundary(), oomph::TriangleMesh< ELEMENT >::nshared_boundary_node(), and oomph::TriangleMesh< ELEMENT >::shared_boundary_node_pt().
|
protected |
Stores information about those shared boundaries that lie over or over a segment of an internal boundary (only used when using internal boundaries in the domain)
Definition at line 1924 of file triangle_mesh.h.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), oomph::TriangleMesh< ELEMENT >::create_shared_polyline(), oomph::RefineableTriangleMesh< ELEMENT >::fill_boundary_elements_and_nodes_for_internal_boundaries(), oomph::TriangleMesh< ELEMENT >::get_shared_boundaries_overlapping_internal_boundary(), oomph::TriangleMesh< ELEMENT >::nshared_boundary_overlaps_internal_boundary(), oomph::TriangleMesh< ELEMENT >::shared_boundary_overlapping_internal_boundary(), oomph::TriangleMesh< ELEMENT >::shared_boundary_overlaps_internal_boundary(), and oomph::TriangleMesh< ELEMENT >::shared_boundary_overlaps_internal_boundary().
|
protected |
Stores the polyline representation of the shared boundaries Shared_boundary_polyline_pt[iproc][ncurve][npolyline] = polyline_pt.
Definition at line 1928 of file triangle_mesh.h.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::adapt(), oomph::RefineableTriangleMesh< ELEMENT >::create_new_shared_boundaries(), oomph::TriangleMesh< ELEMENT >::create_shared_boundaries(), oomph::TriangleMesh< ELEMENT >::create_shared_polylines_connections(), oomph::TriangleMesh< ELEMENT >::flush_shared_boundary_polyline_pt(), oomph::TriangleMesh< ELEMENT >::nshared_boundary_curves(), oomph::TriangleMesh< ELEMENT >::nshared_boundary_polyline(), oomph::TriangleMesh< ELEMENT >::shared_boundary_polyline_pt(), and oomph::TriangleMesh< ELEMENT >::shared_boundary_polyline_pt().
TimeStepper* oomph::TriangleMesh< ELEMENT >::Time_stepper_pt |
Timestepper used to build elements.
Definition at line 1162 of file triangle_mesh.h.
Referenced by oomph::RefineableGmshTetMesh< ELEMENT >::adapt(), oomph::RefineableTetgenMesh< ELEMENT >::adapt(), oomph::RefineableTriangleMesh< ELEMENT >::adapt(), oomph::RefineableTriangleMesh< ELEMENT >::construct_new_halo_node_helper(), oomph::RefineableTriangleMesh< ELEMENT >::construct_new_node_load_balance_helper(), oomph::TriangleMesh< ELEMENT >::generic_constructor(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_load_balance_helper(), oomph::TriangleMesh< ELEMENT >::remesh_from_internal_triangulateio(), oomph::TriangleMesh< ELEMENT >::set_mesh_level_time_stepper(), oomph::TriangleMesh< ELEMENT >::TriangleMesh(), oomph::TriangleMesh< ELEMENT >::TriangleMesh(), and oomph::TriangleMesh< ELEMENT >::TriangleMesh().
|
protected |
Temporary scaffold mesh.
Definition at line 1334 of file triangle_mesh.h.
Referenced by oomph::GeompackQuadMesh< ELEMENT >::build_from_scaffold(), oomph::SimpleCubicTetMesh< ELEMENT >::build_from_scaffold(), oomph::TetgenMesh< ELEMENT >::build_from_scaffold(), oomph::TriangleMesh< ELEMENT >::build_from_scaffold(), oomph::TriangleMesh< ELEMENT >::generic_constructor(), oomph::TriangleMesh< ELEMENT >::remesh_from_internal_triangulateio(), oomph::TriangleMesh< ELEMENT >::TriangleMesh(), and oomph::TriangleMesh< ELEMENT >::TriangleMesh().
|
protected |
Boolean defining if Triangulateio object has been built or not.
Definition at line 1329 of file triangle_mesh.h.
Referenced by oomph::TriangleMesh< ELEMENT >::generic_constructor(), oomph::TriangleMesh< ELEMENT >::remesh_from_internal_triangulateio(), oomph::TriangleMesh< ELEMENT >::TriangleMesh(), oomph::TriangleMesh< ELEMENT >::TriangleMesh(), oomph::TriangleMesh< ELEMENT >::triangulateio_exists(), and oomph::TriangleMesh< ELEMENT >::~TriangleMesh().
bool oomph::TriangleMesh< ELEMENT >::Use_attributes |
Boolean flag to indicate whether to use attributes or not (required for multidomain meshes)
Definition at line 1166 of file triangle_mesh.h.
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::adapt(), oomph::RefineableTriangleMesh< ELEMENT >::adapt(), oomph::TriangleMesh< ELEMENT >::generic_constructor(), oomph::TriangleMesh< ELEMENT >::remesh_from_internal_triangulateio(), oomph::TriangleMesh< ELEMENT >::TriangleMesh(), and oomph::TriangleMesh< ELEMENT >::TriangleMesh().