Base class defining a closed curve for the Triangle mesh generation. More...
#include <unstructured_two_d_mesh_geometry_base.h>
Public Member Functions | |
TriangleMeshClosedCurve (const Vector< TriangleMeshCurveSection *> &curve_section_pt, const Vector< double > &internal_point_pt=Vector< double >(0), const bool &is_internal_point_fixed=false) | |
Constructor prototype. More... | |
virtual | ~TriangleMeshClosedCurve () |
Empty destructor. More... | |
unsigned | nvertices () const |
Number of vertices. More... | |
unsigned | nsegments () const |
Total number of segments. More... | |
void | output (std::ostream &outfile, const unsigned &n_sample=50) |
Output each sub-boundary at n_sample (default: 50) points. More... | |
Vector< double > | internal_point () const |
Coordinates of the internal point. More... | |
Vector< double > & | internal_point () |
Coordinates of the internal point. More... | |
void | fix_internal_point () |
void | unfix_internal_point () |
bool | is_internal_point_fixed () const |
Test whether the internal point is fixed. More... | |
![]() | |
TriangleMeshCurve (const Vector< TriangleMeshCurveSection *> &curve_section_pt) | |
Empty constructor. More... | |
virtual | ~TriangleMeshCurve () |
Empty destructor. More... | |
unsigned | max_boundary_id () |
Return max boundary id of associated curves. More... | |
virtual unsigned | ncurve_section () const |
Number of constituent curves. More... | |
void | enable_polyline_refinement (const double &tolerance=0.08) |
Enable refinement of polylines 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_polyline_refinement_tolerance (const double &tolerance) |
Set tolerance for refinement of polylines 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 | polyline_refinement_tolerance () |
Get tolerance for refinement of polylines 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_polyline_refinement () |
Disable refinement of polylines. More... | |
void | enable_polyline_unrefinement (const double &tolerance=0.04) |
Enable unrefinement of polylines 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_polyline_unrefinement_tolerance (const double &tolerance) |
Set tolerance for unrefinement of polylines 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_polyline_unrefinement() More... | |
double | polyline_unrefinement_tolerance () |
Get tolerance for unrefinement of polylines 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_polyline_unrefinement () |
Disable unrefinement of polylines. More... | |
virtual TriangleMeshCurveSection * | curve_section_pt (const unsigned &i) const |
Pointer to i-th constituent curve section. More... | |
virtual TriangleMeshCurveSection *& | curve_section_pt (const unsigned &i) |
Pointer to i-th constituent curve section. More... | |
Protected Attributes | |
Vector< double > | Internal_point_pt |
Vector of vertex coordinates. More... | |
bool | Is_internal_point_fixed |
Indicate whether the internal point should be updated automatically. More... | |
![]() | |
Vector< TriangleMeshCurveSection * > | Curve_section_pt |
Vector of curve sections. More... | |
Base class defining a closed curve for the Triangle mesh generation.
Definition at line 1242 of file unstructured_two_d_mesh_geometry_base.h.
oomph::TriangleMeshClosedCurve::TriangleMeshClosedCurve | ( | const Vector< TriangleMeshCurveSection *> & | curve_section_pt, |
const Vector< double > & | internal_point_pt = Vector<double>(0) , |
||
const bool & | is_internal_point_fixed = false |
||
) |
Constructor prototype.
Class defining a closed curve for the Triangle mesh generation.
Definition at line 1434 of file unstructured_two_d_mesh_geometry_base.cc.
References oomph::TriangleMeshCurve::Curve_section_pt, i, oomph::TriangleMeshPolyLine::nvertex(), oomph::ToleranceForVertexMismatchInPolygons::Tolerable_error, and oomph::TriangleMeshPolyLine::vertex_coordinate().
|
inlinevirtual |
Empty destructor.
Definition at line 1254 of file unstructured_two_d_mesh_geometry_base.h.
|
inline |
Fix the internal point (i.e. do not allow our automatic machinery to update it)
Definition at line 1310 of file unstructured_two_d_mesh_geometry_base.h.
|
inline |
Coordinates of the internal point.
Definition at line 1303 of file unstructured_two_d_mesh_geometry_base.h.
Referenced by oomph::UnstructuredTwoDMeshGeometryBase::closed_curve_to_polygon_helper(), oomph::ImmersedRigidBodyTriangleMeshPolygon::reset_reference_configuration(), and oomph::RefineableTriangleMesh< ELEMENT >::surface_remesh_for_inner_hole_boundaries().
|
inline |
Coordinates of the internal point.
Definition at line 1306 of file unstructured_two_d_mesh_geometry_base.h.
|
inline |
Test whether the internal point is fixed.
Definition at line 1317 of file unstructured_two_d_mesh_geometry_base.h.
Referenced by oomph::UnstructuredTwoDMeshGeometryBase::closed_curve_to_polygon_helper(), and oomph::RefineableTriangleMesh< ELEMENT >::surface_remesh_for_inner_hole_boundaries().
|
inlinevirtual |
Total number of segments.
Implements oomph::TriangleMeshCurve.
Definition at line 1272 of file unstructured_two_d_mesh_geometry_base.h.
|
inlinevirtual |
Number of vertices.
Implements oomph::TriangleMeshCurve.
Definition at line 1257 of file unstructured_two_d_mesh_geometry_base.h.
|
inlinevirtual |
Output each sub-boundary at n_sample (default: 50) points.
Implements oomph::TriangleMeshCurve.
Definition at line 1285 of file unstructured_two_d_mesh_geometry_base.h.
References i.
|
inline |
Unfix the internal point (i.e. allow our automatic machinery to update it)
Definition at line 1314 of file unstructured_two_d_mesh_geometry_base.h.
|
protected |
Vector of vertex coordinates.
Definition at line 1322 of file unstructured_two_d_mesh_geometry_base.h.
Referenced by oomph::TriangleMeshPolygon::TriangleMeshPolygon().
|
protected |
Indicate whether the internal point should be updated automatically.
Definition at line 1325 of file unstructured_two_d_mesh_geometry_base.h.