#include <unstructured_two_d_mesh_geometry_base.h>
Public Member Functions | |
TriangleMeshCurviLine (GeomObject *geom_object_pt, const double &zeta_start, const double &zeta_end, const unsigned &nsegment, const unsigned &boundary_id, const bool &space_vertices_evenly_in_arclength=true, const unsigned &boundary_chunk=0) | |
Constructor: Specify GeomObject, the start and end coordinates of the relevant boundary in terms of the GeomObject's intrinsic coordinate, the number of (initially straight-line) segments that this GeomObject is to be split up into, and the boundary ID. The final optional boolean argument specifies if vertices in polygonhal represenation are spaced (approximately) evenly in arclength along the GeomObject [true, default] or in equal increments in zeta. This is the curvlinear equivalent of PolyLine. More... | |
virtual | ~TriangleMeshCurviLine () |
Empty Destuctor. More... | |
GeomObject * | geom_object_pt () |
Pointer to GeomObject that represents this part of the boundary. More... | |
double | zeta_start () |
Start coordinate in terms of the GeomObject's intrinsic coordinate. More... | |
double | zeta_end () |
End coordinate in terms of the GeomObject's intrinsic coordinate. More... | |
unsigned | nsegment () const |
Number of (initially straight-line) segments that this part of the boundary is to be represented by. More... | |
unsigned & | nsegment () |
Number of (initially straight-line) segments that this part of the boundary is to be represented by. This version allows the change of the number of segments. More... | |
unsigned | boundary_id () const |
Boundary ID. More... | |
unsigned | boundary_chunk () const |
void | output (std::ostream &outfile, const unsigned &n_sample=50) |
Output curvilinear boundary at n_sample (default: 50) points. More... | |
bool | space_vertices_evenly_in_arclength () const |
Boolean to indicate if vertices in polygonal representation of the Curvline are spaced (approximately) evenly in arclength along the GeomObject [true] or in equal increments in zeta [false]. More... | |
unsigned | nvertex () const |
Number of vertices. More... | |
void | initial_vertex_coordinate (Vector< double > &vertex) |
Get first vertex coordinates. More... | |
void | final_vertex_coordinate (Vector< double > &vertex) |
Get last vertex coordinates. More... | |
bool | are_there_connection_points () |
Does the vector for storing connections has elements? More... | |
Vector< double > * | connection_points_pt () |
Returns the connection points vector. More... | |
void | add_connection_point (const double &z_value, const double &tol=1.0e-12) |
![]() | |
TriangleMeshCurveSection () | |
Empty constructor. Initialises the curve section as non connected. More... | |
virtual | ~TriangleMeshCurveSection () |
Empty destructor. More... | |
void | enable_refinement_tolerance (const double &tolerance=0.08) |
Enable refinement of curve section to create a better representation of curvilinear boundaries (e.g. in free-surface problems). See tutorial for interpretation of the optional argument which specifies the refinement tolerance. It defaults to 0.08 and the smaller the number the finer the surface representation. More... | |
void | set_refinement_tolerance (const double &tolerance) |
Set tolerance for refinement of curve sections to create a better representation of curvilinear boundaries (e.g. in free-surface problems). See tutorial for interpretation of the refinement tolerance. (The smaller the number the finer the surface representation). If set to a negative value, we're switching off refinement – equivalent to calling disable_polyline_refinement() More... | |
double | refinement_tolerance () |
Get tolerance for refinement of curve sections to create a better representation of curvilinear boundaries (e.g. in free-surface problems). See tutorial for interpretation. If it's negative refinement is disabled. More... | |
void | disable_refinement_tolerance () |
Disable refinement of curve section. More... | |
void | enable_unrefinement_tolerance (const double &tolerance=0.04) |
Enable unrefinement of curve sections to avoid unnecessarily large numbers of elements on of curvilinear boundaries (e.g. in free-surface problems). See tutorial for interpretation of the optional argument which specifies the unrefinement tolerance. It defaults to 0.04 and the larger the number the more agressive we are when removing unnecessary vertices on gently curved polylines. More... | |
void | set_unrefinement_tolerance (const double &tolerance) |
Set tolerance for unrefinement of curve sections to avoid unnecessarily large numbers of elements on of curvilinear boundaries (e.g. in free-surface problems). See tutorial for interpretation of the optional argument which specifies the unrefinement tolerance. It defaults to 0.04 and the larger the number the more agressive we are when removing unnecessary vertices on gently curved polylines. If set to a negative value, we're switching off unrefinement – equivalent to calling disable_curve_section_unrefinement() More... | |
double | unrefinement_tolerance () |
Get tolerance for unrefinement of curve section to create a better representation of curvilinear boundaries (e.g. in free-surface problems). See tutorial for interpretation. If it's negative unrefinement is disabled. More... | |
void | disable_unrefinement_tolerance () |
Disable unrefinement of curve sections. More... | |
void | set_maximum_length (const double &maximum_length) |
Allows to specify the maximum distance between two vertices that define the associated polyline of the curve section, it only takes effect on the unrefinement and refinement steps. More... | |
void | disable_use_maximum_length () |
Disables the use of the maximum length criteria on the unrefinement or refinement steps. More... | |
double | maximum_length () |
Gets access to the maximum length variable. More... | |
void | connect_initial_vertex_to_polyline (TriangleMeshPolyLine *polyline_pt, const unsigned &vertex_number, const double &tolerance_for_connection=1.0e-14) |
Connects the initial vertex of the curve section to a desired target polyline by specifying the vertex number. There is a checking which verifies that the initial vertex is close enough to the destination vertex on the target polyline by no more than the specified tolerance. More... | |
void | connect_final_vertex_to_polyline (TriangleMeshPolyLine *polyline_pt, const unsigned &vertex_number, const double &tolerance_for_connection=1.0e-14) |
Connects the final vertex of the curve section to a desired target polyline by specifying the vertex number. There is a checking which verifies that the final vertex is close enough to the destination vertex on the target polyline by no more than the specified tolerance. More... | |
void | connect_initial_vertex_to_curviline (TriangleMeshCurviLine *curviline_pt, const double &s_value, const double &tolerance_for_connection=1.0e-14) |
Connects the initial vertex of the curve section to a desired target curviline by specifying the s value (intrinsic value on the geometric object of the curviline) where to connect on the target curviline. There is a checking which verifies that the initial vertex and the coordinates on the given s value are close enough by no more than the given tolerance. More... | |
void | connect_final_vertex_to_curviline (TriangleMeshCurviLine *curviline_pt, const double &s_value, const double &tolerance_for_connection=1.0e-14) |
Connects the final vertex of the curve section to a desired target curviline by specifying the s value (intrinsic value on the geometric object of the curviline) where to connect on the target curviline. There is a checking which verifies that the final vertex and the coordinates on the given s value are close enough by no more than the given tolerance. More... | |
bool | is_initial_vertex_connected () const |
Test whether initial vertex is connected or not. More... | |
void | set_initial_vertex_connected () |
Sets the initial vertex as connected. More... | |
void | unset_initial_vertex_connected () |
Sets the initial vertex as non connected. More... | |
void | suspend_initial_vertex_connected () |
void | resume_initial_vertex_connected () |
bool | is_final_vertex_connected () const |
Test whether final vertex is connected or not. More... | |
void | set_final_vertex_connected () |
Sets the final vertex as connected. More... | |
void | unset_final_vertex_connected () |
Sets the final vertex as non connected. More... | |
void | suspend_final_vertex_connected () |
void | resume_final_vertex_connected () |
unsigned | initial_vertex_connected_bnd_id () const |
Gets the id to which the initial end is connected. More... | |
unsigned & | initial_vertex_connected_bnd_id () |
Sets the id to which the initial end is connected. More... | |
unsigned | initial_vertex_connected_n_vertex () const |
Gets the vertex number to which the initial end is connected. More... | |
unsigned & | initial_vertex_connected_n_vertex () |
Sets the vertex number to which the initial end is connected. More... | |
unsigned | initial_vertex_connected_n_chunk () const |
Gets the boundary chunk to which the initial end is connected. More... | |
unsigned & | initial_vertex_connected_n_chunk () |
Sets the boundary chunk to which the initial end is connected. More... | |
unsigned | final_vertex_connected_bnd_id () const |
Gets the id to which the final end is connected. More... | |
unsigned & | final_vertex_connected_bnd_id () |
Sets the id to which the final end is connected. More... | |
unsigned | final_vertex_connected_n_vertex () const |
Sets the vertex number to which the final end is connected. More... | |
unsigned & | final_vertex_connected_n_vertex () |
Gets the vertex number to which the final end is connected. More... | |
unsigned | final_vertex_connected_n_chunk () const |
Gets the boundary chunk to which the final end is connected. More... | |
unsigned & | final_vertex_connected_n_chunk () |
Sets the boundary chunk to which the final end is connected. More... | |
bool | is_initial_vertex_connected_to_curviline () const |
Test whether the initial vertex is connected to a curviline. More... | |
void | set_initial_vertex_connected_to_curviline () |
Sets the initial vertex as connected to a curviline. More... | |
void | unset_initial_vertex_connected_to_curviline () |
Sets the initial vertex as non connected to a curviline. More... | |
bool | is_final_vertex_connected_to_curviline () const |
Test whether the final vertex is connected to a curviline. More... | |
void | set_final_vertex_connected_to_curviline () |
Sets the final vertex as connected to a curviline. More... | |
void | unset_final_vertex_connected_to_curviline () |
Sets the final vertex as non connected to a curviline. More... | |
double | initial_s_connection_value () const |
Gets the s value to which the initial end is connected. More... | |
double & | initial_s_connection_value () |
Sets the s value to which the initial end is connected. More... | |
double | final_s_connection_value () const |
Gets the s value to which the final end is connected. More... | |
double & | final_s_connection_value () |
Sets the s value to which the final end is connected. More... | |
double | tolerance_for_s_connection () const |
Gets the tolerance value for connections among curvilines. More... | |
double & | tolerance_for_s_connection () |
Sets the tolerance value for connections among curvilines. More... | |
Private Attributes | |
GeomObject * | Geom_object_pt |
Pointer to GeomObject that represents this part of the boundary. More... | |
double | Zeta_start |
Start coordinate in terms of the GeomObject's intrinsic coordinate. More... | |
double | Zeta_end |
End coordinate in terms of the GeomObject's intrinsic coordinate. More... | |
unsigned | Nsegment |
unsigned | Boundary_id |
Boundary ID. More... | |
bool | Space_vertices_evenly_in_arclength |
Boolean to indicate if vertices in polygonal representation of the Curviline are spaced (approximately) evenly in arclength along the GeomObject [true] or in equal increments in zeta [false]. More... | |
unsigned | Boundary_chunk |
Vector< double > | Connection_points_pt |
Stores the information for connections received on the curviline. Used when converting to polyline. More... | |
Additional Inherited Members | |
![]() | |
bool | Initial_vertex_connected |
Used for stating if the initial end is connected to another boundary. More... | |
bool | Final_vertex_connected |
Used for stating if the final end is connected to another boundary. More... | |
bool | Initial_vertex_connected_suspended |
Indicates if the connection is suspended because the boundary to connect is no longer part of the domain (only used in a distributed context) More... | |
bool | Final_vertex_connected_suspended |
Indicates if the connection is suspended because the boundary to connect is no longer part of the domain (only used in a distributed context) More... | |
unsigned | Initial_vertex_connected_bnd_id |
Stores the id to which the initial end is connected. More... | |
unsigned | Initial_vertex_connected_n_vertex |
Stores the vertex number used for connection with the initial end. More... | |
unsigned | Initial_vertex_connected_n_chunk |
Stores the chunk number of the boundary to which is connected th initial end. More... | |
unsigned | Final_vertex_connected_bnd_id |
Stores the id to which the initial end is connected. More... | |
unsigned | Final_vertex_connected_n_vertex |
Stores the vertex number used for connection with the final end. More... | |
unsigned | Final_vertex_connected_n_chunk |
Stores the chunk number of the boundary to which is connected th initial end. More... | |
bool | Initial_vertex_connected_to_curviline |
States if the initial vertex is connected to a curviline. More... | |
bool | Final_vertex_connected_to_curviline |
States if the final vertex is connected to a curviline. More... | |
double | Initial_s_connection_value |
Stores the s value used for connecting the initial end with a curviline. More... | |
double | Final_s_connection_value |
Stores the s value used for connecting the final end with a curviline. More... | |
double | Tolerance_for_s_connection |
Tolerance used for connecting the ends to a curviline. More... | |
Class definining a curvilinear triangle mesh boundary in terms of a GeomObject. Curvlinear equivalent of PolyLine.
Definition at line 609 of file unstructured_two_d_mesh_geometry_base.h.
|
inline |
Constructor: Specify GeomObject, the start and end coordinates of the relevant boundary in terms of the GeomObject's intrinsic coordinate, the number of (initially straight-line) segments that this GeomObject is to be split up into, and the boundary ID. The final optional boolean argument specifies if vertices in polygonhal represenation are spaced (approximately) evenly in arclength along the GeomObject [true, default] or in equal increments in zeta. This is the curvlinear equivalent of PolyLine.
Definition at line 623 of file unstructured_two_d_mesh_geometry_base.h.
|
inlinevirtual |
Empty Destuctor.
Definition at line 644 of file unstructured_two_d_mesh_geometry_base.h.
|
inline |
Add the connection point (z_value) to the connection points that receive the curviline
Definition at line 722 of file unstructured_two_d_mesh_geometry_base.h.
References i.
Referenced by oomph::TriangleMeshCurveSection::connect_final_vertex_to_curviline(), and oomph::TriangleMeshCurveSection::connect_initial_vertex_to_curviline().
|
inline |
Does the vector for storing connections has elements?
Definition at line 713 of file unstructured_two_d_mesh_geometry_base.h.
Referenced by oomph::UnstructuredTwoDMeshGeometryBase::curviline_to_polyline().
|
inlinevirtual |
Boundary chunk (Used when a boundary is represented by more than one polyline
Implements oomph::TriangleMeshCurveSection.
Definition at line 669 of file unstructured_two_d_mesh_geometry_base.h.
Referenced by oomph::TriangleMeshCurveSection::connect_final_vertex_to_curviline(), and oomph::TriangleMeshCurveSection::connect_initial_vertex_to_curviline().
|
inlinevirtual |
Boundary ID.
Implements oomph::TriangleMeshCurveSection.
Definition at line 665 of file unstructured_two_d_mesh_geometry_base.h.
Referenced by oomph::UnstructuredTwoDMeshGeometryBase::closed_curve_to_polygon_helper(), oomph::TriangleMeshCurveSection::connect_final_vertex_to_curviline(), oomph::TriangleMeshCurveSection::connect_initial_vertex_to_curviline(), oomph::UnstructuredTwoDMeshGeometryBase::create_open_curve_with_polyline_helper(), oomph::UnstructuredTwoDMeshGeometryBase::create_vertex_coordinates_for_polyline_connections(), oomph::UnstructuredTwoDMeshGeometryBase::set_geom_objects_and_coordinate_limits_for_close_curve(), and oomph::UnstructuredTwoDMeshGeometryBase::set_geom_objects_and_coordinate_limits_for_open_curve().
|
inline |
Returns the connection points vector.
Definition at line 717 of file unstructured_two_d_mesh_geometry_base.h.
Referenced by oomph::UnstructuredTwoDMeshGeometryBase::create_vertex_coordinates_for_polyline_connections().
|
inlinevirtual |
Get last vertex coordinates.
Implements oomph::TriangleMeshCurveSection.
Definition at line 705 of file unstructured_two_d_mesh_geometry_base.h.
|
inline |
Pointer to GeomObject that represents this part of the boundary.
Definition at line 647 of file unstructured_two_d_mesh_geometry_base.h.
Referenced by oomph::TriangleMeshCurveSection::connect_final_vertex_to_curviline(), oomph::TriangleMeshCurveSection::connect_initial_vertex_to_curviline(), oomph::UnstructuredTwoDMeshGeometryBase::create_vertex_coordinates_for_polyline_connections(), oomph::UnstructuredTwoDMeshGeometryBase::create_vertex_coordinates_for_polyline_no_connections(), oomph::UnstructuredTwoDMeshGeometryBase::set_geom_objects_and_coordinate_limits_for_close_curve(), and oomph::UnstructuredTwoDMeshGeometryBase::set_geom_objects_and_coordinate_limits_for_open_curve().
|
inlinevirtual |
Get first vertex coordinates.
Implements oomph::TriangleMeshCurveSection.
Definition at line 697 of file unstructured_two_d_mesh_geometry_base.h.
|
inlinevirtual |
Number of (initially straight-line) segments that this part of the boundary is to be represented by.
Implements oomph::TriangleMeshCurveSection.
Definition at line 657 of file unstructured_two_d_mesh_geometry_base.h.
Referenced by oomph::UnstructuredTwoDMeshGeometryBase::create_vertex_coordinates_for_polyline_connections(), and oomph::UnstructuredTwoDMeshGeometryBase::create_vertex_coordinates_for_polyline_no_connections().
|
inline |
Number of (initially straight-line) segments that this part of the boundary is to be represented by. This version allows the change of the number of segments.
Definition at line 662 of file unstructured_two_d_mesh_geometry_base.h.
|
inlinevirtual |
Number of vertices.
Implements oomph::TriangleMeshCurveSection.
Definition at line 694 of file unstructured_two_d_mesh_geometry_base.h.
|
inlinevirtual |
Output curvilinear boundary at n_sample (default: 50) points.
Implements oomph::TriangleMeshCurveSection.
Definition at line 672 of file unstructured_two_d_mesh_geometry_base.h.
References i.
|
inline |
Boolean to indicate if vertices in polygonal representation of the Curvline are spaced (approximately) evenly in arclength along the GeomObject [true] or in equal increments in zeta [false].
Definition at line 688 of file unstructured_two_d_mesh_geometry_base.h.
Referenced by oomph::UnstructuredTwoDMeshGeometryBase::create_vertex_coordinates_for_polyline_connections(), and oomph::UnstructuredTwoDMeshGeometryBase::create_vertex_coordinates_for_polyline_no_connections().
|
inline |
End coordinate in terms of the GeomObject's intrinsic coordinate.
Definition at line 653 of file unstructured_two_d_mesh_geometry_base.h.
Referenced by oomph::TriangleMeshCurveSection::connect_final_vertex_to_curviline(), oomph::TriangleMeshCurveSection::connect_initial_vertex_to_curviline(), oomph::UnstructuredTwoDMeshGeometryBase::create_vertex_coordinates_for_polyline_connections(), oomph::UnstructuredTwoDMeshGeometryBase::create_vertex_coordinates_for_polyline_no_connections(), oomph::UnstructuredTwoDMeshGeometryBase::set_geom_objects_and_coordinate_limits_for_close_curve(), and oomph::UnstructuredTwoDMeshGeometryBase::set_geom_objects_and_coordinate_limits_for_open_curve().
|
inline |
Start coordinate in terms of the GeomObject's intrinsic coordinate.
Definition at line 650 of file unstructured_two_d_mesh_geometry_base.h.
Referenced by oomph::TriangleMeshCurveSection::connect_final_vertex_to_curviline(), oomph::TriangleMeshCurveSection::connect_initial_vertex_to_curviline(), oomph::UnstructuredTwoDMeshGeometryBase::create_vertex_coordinates_for_polyline_connections(), oomph::UnstructuredTwoDMeshGeometryBase::create_vertex_coordinates_for_polyline_no_connections(), oomph::UnstructuredTwoDMeshGeometryBase::set_geom_objects_and_coordinate_limits_for_close_curve(), and oomph::UnstructuredTwoDMeshGeometryBase::set_geom_objects_and_coordinate_limits_for_open_curve().
|
private |
Boundary chunk (Used when a boundary is represented by more than one polyline
Definition at line 778 of file unstructured_two_d_mesh_geometry_base.h.
|
private |
Boundary ID.
Definition at line 769 of file unstructured_two_d_mesh_geometry_base.h.
|
private |
Stores the information for connections received on the curviline. Used when converting to polyline.
Definition at line 782 of file unstructured_two_d_mesh_geometry_base.h.
|
private |
Pointer to GeomObject that represents this part of the boundary.
Definition at line 756 of file unstructured_two_d_mesh_geometry_base.h.
|
private |
Number of (initially straight-line) segments that this part of the boundary is to be represented by
Definition at line 766 of file unstructured_two_d_mesh_geometry_base.h.
|
private |
Boolean to indicate if vertices in polygonal representation of the Curviline are spaced (approximately) evenly in arclength along the GeomObject [true] or in equal increments in zeta [false].
Definition at line 774 of file unstructured_two_d_mesh_geometry_base.h.
|
private |
End coordinate in terms of the GeomObject's intrinsic coordinate.
Definition at line 762 of file unstructured_two_d_mesh_geometry_base.h.
|
private |
Start coordinate in terms of the GeomObject's intrinsic coordinate.
Definition at line 759 of file unstructured_two_d_mesh_geometry_base.h.