Public Member Functions | Public Attributes | List of all members
oomph::QuadFromTriangleMesh< ELEMENT > Class Template Reference

Quad mesh built on top of triangle scaffold mesh coming from the triangle mesh generator Triangle. http://www.cs.cmu.edu/~quake/triangle.html. More...

#include <quad_from_triangle_mesh.template.h>

Inheritance diagram for oomph::QuadFromTriangleMesh< ELEMENT >:
oomph::RefineableQuadFromTriangleMesh< ELEMENT > oomph::SolidQuadFromTriangleMesh< ELEMENT > oomph::RefineableSolidQuadFromTriangleMesh< ELEMENT >

Public Member Functions

 QuadFromTriangleMesh ()
 Empty constructor. More...
 
 QuadFromTriangleMesh (const std::string &node_file_name, const std::string &element_file_name, const std::string &poly_file_name, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper, const bool &use_attributes=false, const bool &allow_automatic_creation_of_vertices_on_boundaries=true)
 Constructor with the input files. More...
 
 QuadFromTriangleMesh (TriangleMeshParameters &triangle_mesh_parameters, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
 Build mesh, based on the specifications on TriangleMeshParameters. All the actual work is done in UnstructuredTwoDMeshGeometryBase. More...
 
void generic_constructor (Vector< TriangleMeshPolygon * > &outer_boundary_pt, Vector< TriangleMeshPolygon * > &internal_polygon_pt, Vector< TriangleMeshOpenCurve * > &open_polylines_pt, const double &element_area, Vector< Vector< double >> &extra_holes_coordinates, std::map< unsigned, Vector< double >> &regions_coordinates, std::map< unsigned, double > &regions_areas, TimeStepper *time_stepper_pt, const bool &use_attributes, const bool &refine_boundary, const bool &refine_internal_boundary)
 A general-purpose construction function that builds the mesh once the different specific constructors have assembled the appropriate information. More...
 
 QuadFromTriangleMesh (const QuadFromTriangleMesh &dummy)=delete
 Broken copy constructor. More...
 
void operator= (const QuadFromTriangleMesh &)=delete
 Broken assignment operator. More...
 
 ~QuadFromTriangleMesh ()
 Empty destructor. More...
 
void build_from_scaffold (TriangleScaffoldMesh *tmp_mesh_pt, TimeStepper *time_stepper_pt, const bool &use_attributes)
 Build the quad mesh from the given scaffold mesh. More...
 

Public Attributes

TimeStepper * Time_stepper_pt
 Timestepper used to build elements. More...
 
bool Use_attributes
 Boolean flag to indicate whether to use attributes or not (required for multidomain meshes) More...
 

Detailed Description

template<class ELEMENT>
class oomph::QuadFromTriangleMesh< ELEMENT >

Quad mesh built on top of triangle scaffold mesh coming from the triangle mesh generator Triangle. http://www.cs.cmu.edu/~quake/triangle.html.

Definition at line 70 of file quad_from_triangle_mesh.template.h.

Constructor & Destructor Documentation

◆ QuadFromTriangleMesh() [1/4]

template<class ELEMENT >
oomph::QuadFromTriangleMesh< ELEMENT >::QuadFromTriangleMesh ( )
inline

Empty constructor.

Definition at line 75 of file quad_from_triangle_mesh.template.h.

◆ QuadFromTriangleMesh() [2/4]

template<class ELEMENT >
oomph::QuadFromTriangleMesh< ELEMENT >::QuadFromTriangleMesh ( const std::string &  node_file_name,
const std::string &  element_file_name,
const std::string &  poly_file_name,
TimeStepper *  time_stepper_pt = &Mesh::Default_TimeStepper,
const bool &  use_attributes = false,
const bool &  allow_automatic_creation_of_vertices_on_boundaries = true 
)
inline

◆ QuadFromTriangleMesh() [3/4]

template<class ELEMENT >
oomph::QuadFromTriangleMesh< ELEMENT >::QuadFromTriangleMesh ( TriangleMeshParameters triangle_mesh_parameters,
TimeStepper *  time_stepper_pt = &Mesh::Default_TimeStepper 
)
inline

◆ QuadFromTriangleMesh() [4/4]

template<class ELEMENT >
oomph::QuadFromTriangleMesh< ELEMENT >::QuadFromTriangleMesh ( const QuadFromTriangleMesh< ELEMENT > &  dummy)
delete

Broken copy constructor.

◆ ~QuadFromTriangleMesh()

template<class ELEMENT >
oomph::QuadFromTriangleMesh< ELEMENT >::~QuadFromTriangleMesh ( )
inline

Empty destructor.

Definition at line 521 of file quad_from_triangle_mesh.template.h.

Member Function Documentation

◆ build_from_scaffold()

template<class ELEMENT >
void oomph::QuadFromTriangleMesh< ELEMENT >::build_from_scaffold ( TriangleScaffoldMesh *  tmp_mesh_pt,
TimeStepper *  time_stepper_pt,
const bool &  use_attributes 
)

Build the quad mesh from the given scaffold mesh.

Build the full mesh with the help of the scaffold mesh coming from the triangle mesh generator, Triangle. To build this quad element based mesh we make use of the fact that a triangle element can be split as shown in the diagram below:

             N2
            | |                 N0 : 1st scaffold element node
           |   |                N1 : 2nd scaffold element node
          |     |               N2 : 3rd scaffold element node
         |       |
      C |   Q_2   | B           Edge 0 : N0 --> N1
       | |       | |            Edge 1 : N1 --> N2
      |   |     |   |           Edge 2 : N2 --> N0
     |     |   |     |
    |       | |       |         A : Midpoint of edge 0
   |   Q_0   |   Q_1   |        B : Midpoint of edge 1
  |          |          |       C : Midpoint of edge 2
 |           |           |
N0 __________|__________ N1
             A

The intersection of all three quad elements is the centroid. Using this splitting, the subsequent mesh will consist of quadrilaterals whose shape which depend on the structure of the underlying mesh.

Definition at line 71 of file quad_from_triangle_mesh.template.cc.

Referenced by oomph::QuadFromTriangleMesh< ELEMENT >::generic_constructor(), and oomph::QuadFromTriangleMesh< ELEMENT >::QuadFromTriangleMesh().

◆ generic_constructor()

template<class ELEMENT >
void oomph::QuadFromTriangleMesh< ELEMENT >::generic_constructor ( Vector< TriangleMeshPolygon * > &  outer_boundary_pt,
Vector< TriangleMeshPolygon * > &  internal_polygon_pt,
Vector< TriangleMeshOpenCurve * > &  open_polylines_pt,
const double &  element_area,
Vector< Vector< double >> &  extra_holes_coordinates,
std::map< unsigned, Vector< double >> &  regions_coordinates,
std::map< unsigned, double > &  regions_areas,
TimeStepper *  time_stepper_pt,
const bool &  use_attributes,
const bool &  refine_boundary,
const bool &  refine_internal_boundary 
)
inline

A general-purpose construction function that builds the mesh once the different specific constructors have assembled the appropriate information.

Definition at line 368 of file quad_from_triangle_mesh.template.h.

References oomph::QuadFromTriangleMesh< ELEMENT >::build_from_scaffold(), oomph::QuadFromTriangleMesh< ELEMENT >::Time_stepper_pt, oomph::triangulate(), and oomph::QuadFromTriangleMesh< ELEMENT >::Use_attributes.

Referenced by oomph::QuadFromTriangleMesh< ELEMENT >::QuadFromTriangleMesh().

◆ operator=()

template<class ELEMENT >
void oomph::QuadFromTriangleMesh< ELEMENT >::operator= ( const QuadFromTriangleMesh< ELEMENT > &  )
delete

Broken assignment operator.

Member Data Documentation

◆ Time_stepper_pt

template<class ELEMENT >
TimeStepper* oomph::QuadFromTriangleMesh< ELEMENT >::Time_stepper_pt

◆ Use_attributes

template<class ELEMENT >
bool oomph::QuadFromTriangleMesh< ELEMENT >::Use_attributes

Boolean flag to indicate whether to use attributes or not (required for multidomain meshes)

Definition at line 562 of file quad_from_triangle_mesh.template.h.

Referenced by oomph::QuadFromTriangleMesh< ELEMENT >::generic_constructor(), and oomph::QuadFromTriangleMesh< ELEMENT >::QuadFromTriangleMesh().


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