Public Member Functions | Protected Attributes | Private Attributes | List of all members
oomph::TriangleMeshCurve Class Referenceabstract

//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// More...

#include <unstructured_two_d_mesh_geometry_base.h>

+ Inheritance diagram for oomph::TriangleMeshCurve:

Public Member Functions

 TriangleMeshCurve (const Vector< TriangleMeshCurveSection * > &curve_section_pt)
 Empty constructor. More...
 
virtual ~TriangleMeshCurve ()
 Empty destructor. More...
 
virtual unsigned nvertices () const =0
 Number of vertices. More...
 
virtual unsigned nsegments () const =0
 Total number of segments. 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 void output (std::ostream &outfile, const unsigned &n_sample=50)=0
 Output each sub-boundary at n_sample (default: 50) points. More...
 
virtual TriangleMeshCurveSectioncurve_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< TriangleMeshCurveSection * > Curve_section_pt
 Vector of curve sections. More...
 

Private Attributes

double Polyline_refinement_tolerance
 Tolerance for refinement of polylines (neg if refinement is disabled) More...
 
double Polyline_unrefinement_tolerance
 Tolerance for unrefinement of polylines (neg if refinement is disabled) More...
 

Detailed Description

//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////

closed curves and open curves. All TriangleMeshCurves are composed of a Vector of TriangleMeshCurveSections

Definition at line 1135 of file unstructured_two_d_mesh_geometry_base.h.

Constructor & Destructor Documentation

◆ TriangleMeshCurve()

oomph::TriangleMeshCurve::TriangleMeshCurve ( const Vector< TriangleMeshCurveSection * > &  curve_section_pt)
inline

Empty constructor.

Definition at line 1139 of file unstructured_two_d_mesh_geometry_base.h.

◆ ~TriangleMeshCurve()

virtual oomph::TriangleMeshCurve::~TriangleMeshCurve ( )
inlinevirtual

Empty destructor.

Definition at line 1147 of file unstructured_two_d_mesh_geometry_base.h.

Member Function Documentation

◆ curve_section_pt() [1/2]

virtual TriangleMeshCurveSection*& oomph::TriangleMeshCurve::curve_section_pt ( const unsigned &  i)
inlinevirtual

Pointer to i-th constituent curve section.

Definition at line 1314 of file unstructured_two_d_mesh_geometry_base.h.

References Curve_section_pt, and i.

◆ curve_section_pt() [2/2]

virtual TriangleMeshCurveSection* oomph::TriangleMeshCurve::curve_section_pt ( const unsigned &  i) const
inlinevirtual

◆ disable_polyline_refinement()

void oomph::TriangleMeshCurve::disable_polyline_refinement ( )
inline

Disable refinement of polylines.

Definition at line 1226 of file unstructured_two_d_mesh_geometry_base.h.

References Curve_section_pt, i, and Polyline_refinement_tolerance.

◆ disable_polyline_unrefinement()

void oomph::TriangleMeshCurve::disable_polyline_unrefinement ( )
inline

Disable unrefinement of polylines.

Definition at line 1291 of file unstructured_two_d_mesh_geometry_base.h.

References Curve_section_pt, i, and Polyline_unrefinement_tolerance.

◆ enable_polyline_refinement()

void oomph::TriangleMeshCurve::enable_polyline_refinement ( const double &  tolerance = 0.08)
inline

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.

Definition at line 1183 of file unstructured_two_d_mesh_geometry_base.h.

References Curve_section_pt, i, and Polyline_refinement_tolerance.

◆ enable_polyline_unrefinement()

void oomph::TriangleMeshCurve::enable_polyline_unrefinement ( const double &  tolerance = 0.04)
inline

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.

Definition at line 1245 of file unstructured_two_d_mesh_geometry_base.h.

References Curve_section_pt, i, and Polyline_unrefinement_tolerance.

◆ max_boundary_id()

unsigned oomph::TriangleMeshCurve::max_boundary_id ( )
inline

Return max boundary id of associated curves.

Definition at line 1156 of file unstructured_two_d_mesh_geometry_base.h.

References Curve_section_pt, i, and ncurve_section().

◆ ncurve_section()

virtual unsigned oomph::TriangleMeshCurve::ncurve_section ( ) const
inlinevirtual

◆ nsegments()

virtual unsigned oomph::TriangleMeshCurve::nsegments ( ) const
pure virtual

Total number of segments.

Implemented in oomph::TriangleMeshOpenCurve, and oomph::TriangleMeshClosedCurve.

◆ nvertices()

virtual unsigned oomph::TriangleMeshCurve::nvertices ( ) const
pure virtual

Number of vertices.

Implemented in oomph::TriangleMeshOpenCurve, and oomph::TriangleMeshClosedCurve.

◆ output()

virtual void oomph::TriangleMeshCurve::output ( std::ostream &  outfile,
const unsigned &  n_sample = 50 
)
pure virtual

Output each sub-boundary at n_sample (default: 50) points.

Implemented in oomph::TriangleMeshOpenCurve, and oomph::TriangleMeshClosedCurve.

◆ polyline_refinement_tolerance()

double oomph::TriangleMeshCurve::polyline_refinement_tolerance ( )
inline

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.

Definition at line 1220 of file unstructured_two_d_mesh_geometry_base.h.

References Polyline_refinement_tolerance.

Referenced by oomph::UnstructuredTwoDMeshGeometryBase::closed_curve_to_polygon_helper(), and oomph::UnstructuredTwoDMeshGeometryBase::create_open_curve_with_polyline_helper().

◆ polyline_unrefinement_tolerance()

double oomph::TriangleMeshCurve::polyline_unrefinement_tolerance ( )
inline

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.

Definition at line 1285 of file unstructured_two_d_mesh_geometry_base.h.

References Polyline_unrefinement_tolerance.

Referenced by oomph::UnstructuredTwoDMeshGeometryBase::closed_curve_to_polygon_helper(), and oomph::UnstructuredTwoDMeshGeometryBase::create_open_curve_with_polyline_helper().

◆ set_polyline_refinement_tolerance()

void oomph::TriangleMeshCurve::set_polyline_refinement_tolerance ( const double &  tolerance)
inline

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()

Definition at line 1203 of file unstructured_two_d_mesh_geometry_base.h.

References Curve_section_pt, i, and Polyline_refinement_tolerance.

Referenced by oomph::UnstructuredTwoDMeshGeometryBase::closed_curve_to_polygon_helper(), and oomph::UnstructuredTwoDMeshGeometryBase::create_open_curve_with_polyline_helper().

◆ set_polyline_unrefinement_tolerance()

void oomph::TriangleMeshCurve::set_polyline_unrefinement_tolerance ( const double &  tolerance)
inline

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()

Definition at line 1268 of file unstructured_two_d_mesh_geometry_base.h.

References Curve_section_pt, i, and Polyline_unrefinement_tolerance.

Referenced by oomph::UnstructuredTwoDMeshGeometryBase::closed_curve_to_polygon_helper(), and oomph::UnstructuredTwoDMeshGeometryBase::create_open_curve_with_polyline_helper().

Member Data Documentation

◆ Curve_section_pt

Vector<TriangleMeshCurveSection*> oomph::TriangleMeshCurve::Curve_section_pt
protected

◆ Polyline_refinement_tolerance

double oomph::TriangleMeshCurve::Polyline_refinement_tolerance
private

Tolerance for refinement of polylines (neg if refinement is disabled)

Definition at line 1325 of file unstructured_two_d_mesh_geometry_base.h.

Referenced by disable_polyline_refinement(), enable_polyline_refinement(), polyline_refinement_tolerance(), and set_polyline_refinement_tolerance().

◆ Polyline_unrefinement_tolerance

double oomph::TriangleMeshCurve::Polyline_unrefinement_tolerance
private

Tolerance for unrefinement of polylines (neg if refinement is disabled)

Definition at line 1328 of file unstructured_two_d_mesh_geometry_base.h.

Referenced by disable_polyline_unrefinement(), enable_polyline_unrefinement(), polyline_unrefinement_tolerance(), and set_polyline_unrefinement_tolerance().


The documentation for this class was generated from the following file: