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

//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// 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 ()
 Fix the internal point (i.e. do not allow our automatic machinery to update it) More...
 
void unfix_internal_point ()
 Unfix the internal point (i.e. allow our automatic machinery to update it) More...
 
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 1338 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 
)

Constructor prototype.

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

Class defining a closed curve for the Triangle mesh generation

Definition at line 1420 of file unstructured_two_d_mesh_geometry_base.cc.

References oomph::TriangleMeshCurve::curve_section_pt(), oomph::TriangleMeshCurve::Curve_section_pt, oomph::TriangleMeshCurveSection::final_vertex_coordinate(), i, oomph::TriangleMeshCurveSection::initial_vertex_coordinate(), oomph::TriangleMeshPolyLine::nvertex(), oomph::ToleranceForVertexMismatchInPolygons::Tolerable_error, and oomph::TriangleMeshPolyLine::vertex_coordinate().

◆ ~TriangleMeshClosedCurve()

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

Empty destructor.

Definition at line 1348 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 1416 of file unstructured_two_d_mesh_geometry_base.h.

References Is_internal_point_fixed.

◆ internal_point() [1/2]

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

Coordinates of the internal point.

Definition at line 1409 of file unstructured_two_d_mesh_geometry_base.h.

References Internal_point_pt.

◆ internal_point() [2/2]

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

◆ is_internal_point_fixed()

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

◆ nsegments()

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

◆ nvertices()

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

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

References oomph::TriangleMeshCurve::Curve_section_pt, i, and Internal_point_pt.

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

References Is_internal_point_fixed.

Member Data Documentation

◆ Internal_point_pt

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

◆ Is_internal_point_fixed

bool oomph::TriangleMeshClosedCurve::Is_internal_point_fixed
protected

Indicate whether the internal point should be updated automatically.

Definition at line 1439 of file unstructured_two_d_mesh_geometry_base.h.

Referenced by fix_internal_point(), is_internal_point_fixed(), and unfix_internal_point().


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