Public Member Functions | Protected Attributes | List of all members
oomph::TriangleMeshClosedCurve Class Reference

Base class defining a closed curve for the Triangle mesh generation. More...

#include <unstructured_two_d_mesh_geometry_base.h>

+ Inheritance diagram for oomph::TriangleMeshClosedCurve:

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...
 
- Public Member Functions inherited from oomph::TriangleMeshCurve
 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 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< double > Internal_point_pt
 Vector of vertex coordinates. More...
 
bool Is_internal_point_fixed
 Indicate whether the internal point should be updated automatically. More...
 
- Protected Attributes inherited from oomph::TriangleMeshCurve
Vector< TriangleMeshCurveSection * > Curve_section_pt
 Vector of curve sections. More...
 

Detailed Description

Base class defining a closed curve for the Triangle mesh generation.

Definition at line 1242 of file unstructured_two_d_mesh_geometry_base.h.

Constructor & Destructor Documentation

◆ TriangleMeshClosedCurve()

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 
)

◆ ~TriangleMeshClosedCurve()

virtual oomph::TriangleMeshClosedCurve::~TriangleMeshClosedCurve ( )
inlinevirtual

Empty destructor.

Definition at line 1254 of file unstructured_two_d_mesh_geometry_base.h.

Member Function Documentation

◆ fix_internal_point()

void oomph::TriangleMeshClosedCurve::fix_internal_point ( )
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.

◆ internal_point() [1/2]

Vector<double> oomph::TriangleMeshClosedCurve::internal_point ( ) const
inline

◆ internal_point() [2/2]

Vector<double>& oomph::TriangleMeshClosedCurve::internal_point ( )
inline

Coordinates of the internal point.

Definition at line 1306 of file unstructured_two_d_mesh_geometry_base.h.

◆ is_internal_point_fixed()

bool oomph::TriangleMeshClosedCurve::is_internal_point_fixed ( ) const
inline

◆ nsegments()

unsigned oomph::TriangleMeshClosedCurve::nsegments ( ) const
inlinevirtual

Total number of segments.

Implements oomph::TriangleMeshCurve.

Definition at line 1272 of file unstructured_two_d_mesh_geometry_base.h.

◆ nvertices()

unsigned oomph::TriangleMeshClosedCurve::nvertices ( ) const
inlinevirtual

Number of vertices.

Implements oomph::TriangleMeshCurve.

Definition at line 1257 of file unstructured_two_d_mesh_geometry_base.h.

◆ output()

void oomph::TriangleMeshClosedCurve::output ( std::ostream &  outfile,
const unsigned &  n_sample = 50 
)
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.

◆ unfix_internal_point()

void oomph::TriangleMeshClosedCurve::unfix_internal_point ( )
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.

Member Data Documentation

◆ Internal_point_pt

Vector<double> oomph::TriangleMeshClosedCurve::Internal_point_pt
protected

Vector of vertex coordinates.

Definition at line 1322 of file unstructured_two_d_mesh_geometry_base.h.

Referenced by oomph::TriangleMeshPolygon::TriangleMeshPolygon().

◆ Is_internal_point_fixed

bool oomph::TriangleMeshClosedCurve::Is_internal_point_fixed
protected

Indicate whether the internal point should be updated automatically.

Definition at line 1325 of file unstructured_two_d_mesh_geometry_base.h.


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