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

#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 1047 of file unstructured_two_d_mesh_geometry_base.h.

Constructor & Destructor Documentation

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

Empty constructor.

Definition at line 1053 of file unstructured_two_d_mesh_geometry_base.h.

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

Empty destructor.

Definition at line 1062 of file unstructured_two_d_mesh_geometry_base.h.

Member Function Documentation

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

Pointer to i-th constituent curve section.

Definition at line 1217 of file unstructured_two_d_mesh_geometry_base.h.

References i.

void oomph::TriangleMeshCurve::disable_polyline_refinement ( )
inline

Disable refinement of polylines.

Definition at line 1136 of file unstructured_two_d_mesh_geometry_base.h.

References i.

void oomph::TriangleMeshCurve::disable_polyline_unrefinement ( )
inline

Disable unrefinement of polylines.

Definition at line 1199 of file unstructured_two_d_mesh_geometry_base.h.

References i.

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 1093 of file unstructured_two_d_mesh_geometry_base.h.

References i.

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 1153 of file unstructured_two_d_mesh_geometry_base.h.

References i.

unsigned oomph::TriangleMeshCurve::max_boundary_id ( )
inline

Return max boundary id of associated curves.

Definition at line 1071 of file unstructured_two_d_mesh_geometry_base.h.

References i.

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

Total number of segments.

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

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

Number of vertices.

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

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.

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 1130 of file unstructured_two_d_mesh_geometry_base.h.

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

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 1193 of file unstructured_two_d_mesh_geometry_base.h.

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

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 1113 of file unstructured_two_d_mesh_geometry_base.h.

References i.

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

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 1176 of file unstructured_two_d_mesh_geometry_base.h.

References i.

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

Member Data Documentation

Vector<TriangleMeshCurveSection*> oomph::TriangleMeshCurve::Curve_section_pt
protected
double oomph::TriangleMeshCurve::Polyline_refinement_tolerance
private

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

Definition at line 1228 of file unstructured_two_d_mesh_geometry_base.h.

double oomph::TriangleMeshCurve::Polyline_unrefinement_tolerance
private

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

Definition at line 1231 of file unstructured_two_d_mesh_geometry_base.h.


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