MeshConstructor Class Reference

Tools to define a BoundaryMesh and use it to generate a BezierMesh. More...

#include </usr1/tp517/Tumble/trunk/src/tumble/meshconstructor.h>

Collaboration diagram for MeshConstructor:

[legend]
List of all members.

Public Member Functions

 MeshConstructor (BezierMesh *_bezier_mesh, BoundaryMesh *_bdry_mesh)
 ~MeshConstructor ()
void add_remove_point (const Point2D &p)
int mesh (bool refine)
void remove_small_angles ()
BoundaryVertexadd_vertex ()
BoundaryVertexadd_vertex (const Point2D &p)
BoundaryFaceadd_face (const std::vector< BoundaryEdge * > &edges, const Point2D &point)
BoundaryEdgeadd_line (BoundaryVertex *v0, BoundaryVertex *v1, int segments)
BoundaryEdgeadd_line (BoundaryVertex *v0, BoundaryVertex *v1, const Point2D &p1, int segments)
BoundaryEdgeadd_line (BoundaryVertex *v0, BoundaryVertex *v1, const Point2D &p0, const Point2D &p1, int segments)
BoundaryEdgeadd_circle (BoundaryVertex *v0, const Point2D &center, double radius, Radians start, int segments)
BoundaryEdgeadd_arc (BoundaryVertex *v0, BoundaryVertex *v1, const Point2D &center, double radius, Radians start, Radians stop, int segments)
BoundaryEdgeadd_spiral (BoundaryVertex *v0, BoundaryVertex *v1, const Point2D &center, double divergence, double start_radius, Radians start, Radians stop, int segments)
BoundaryEdgeadd_bezier (BoundaryVertex *v0, BoundaryVertex *v1, const Point2D &p0, const Point2D &p1, const Point2D &p2)
void add_box_void (const Point2D &p0, const Point2D &p1, const Point2D &p2, const Point2D &p3, int segments)

Protected Member Functions

std::vector< BoundaryEdge * > add_box (const Point2D &p0, const Point2D &p1, const Point2D &p2, const Point2D &p3, int segments)
void add_red_blood_cells_box (int num, const Point2D &box_top, const Point2D &box_bot, int cell_type, double cell_size, std::vector< BoundaryVertex * > &verts, std::vector< BoundaryEdge * > &cells, std::vector< Point2D > &centers)
void add_red_blood_cells_triangle (int num, const Point2D &p1, const Point2D &p2, const Point2D &p3, int cell_type, double cell_size, std::vector< BoundaryVertex * > &verts, std::vector< BoundaryEdge * > &cells, std::vector< Point2D > &centers)
void insert_cells (int num, std::vector< Point2D > initial_cells, int cell_type, double cell_size, std::vector< BoundaryVertex * > &verts, std::vector< BoundaryEdge * > &cells, std::vector< Point2D > &centers)

Private Member Functions

BoundaryEdgecreate_edge (BoundaryVertex *v0, BoundaryVertex *v1, const std::vector< Point2D > &geometry_pts, const Point2D &initial)
double spiral_derivative (Radians phi, double r0, Radians delta, Radians start)

Private Attributes

BezierMeshbezier
BoundaryMeshbdry
ConformalMeshermesher

Detailed Description

Tools to define a BoundaryMesh and use it to generate a BezierMesh.

This class provides tools to use when designing a new mesh from scratch.

Most of the real work is done in the ConformalMesher (to create a conformal mesh) and the BezierMesh (to refine it). What the MeshConstructor does is correctly stage this work, and translate various shapes into splines.

Definition at line 26 of file meshconstructor.h.


Constructor & Destructor Documentation

MeshConstructor::MeshConstructor ( BezierMesh _bezier_mesh,
BoundaryMesh _bdry_mesh 
)

Definition at line 28 of file meshconstructor.C.

References bdry, bezier, and mesher.

MeshConstructor::~MeshConstructor (  ) 

Definition at line 35 of file meshconstructor.C.

References mesher.


Member Function Documentation

BoundaryEdge* MeshConstructor::create_edge ( BoundaryVertex v0,
BoundaryVertex v1,
const std::vector< Point2D > &  geometry_pts,
const Point2D initial 
) [private]

Referenced by add_arc(), add_bezier(), add_circle(), add_line(), and add_spiral().

double MeshConstructor::spiral_derivative ( Radians  phi,
double  r0,
Radians  delta,
Radians  start 
) [private]

Definition at line 255 of file meshconstructor.C.

References TWOPI.

Referenced by add_spiral().

void MeshConstructor::add_remove_point ( const Point2D p  ) 

Definition at line 305 of file meshconstructor.C.

References ConformalMesher::add_hole(), and mesher.

Here is the call graph for this function:

int MeshConstructor::mesh ( bool  refine  ) 

Definition at line 311 of file meshconstructor.C.

References ConformalMesher::mesh(), mesher, and remove_small_angles().

Here is the call graph for this function:

void MeshConstructor::remove_small_angles (  ) 

Definition at line 324 of file meshconstructor.C.

References bezier, CellComplex< Vertex, Edge, Face, Tuple >::get_num_faces(), BezierMesh::make_delaunay(), BezierMesh::remove_small_angles(), and BezierMesh::set_linear_flips().

Referenced by mesh().

Here is the call graph for this function:

BoundaryVertex * MeshConstructor::add_vertex (  ) 

Definition at line 45 of file meshconstructor.C.

References BoundaryMesh::add_boundary_vertex(), and bdry.

Referenced by add_box().

Here is the call graph for this function:

BoundaryVertex * MeshConstructor::add_vertex ( const Point2D p  ) 

Definition at line 40 of file meshconstructor.C.

References BoundaryMesh::add_boundary_vertex(), and bdry.

Here is the call graph for this function:

BoundaryFace* MeshConstructor::add_face ( const std::vector< BoundaryEdge * > &  edges,
const Point2D point 
)

BoundaryEdge * MeshConstructor::add_line ( BoundaryVertex v0,
BoundaryVertex v1,
int  segments 
)

Definition at line 92 of file meshconstructor.C.

References BoundaryVertex::get_cp().

Referenced by add_box(), and add_line().

Here is the call graph for this function:

BoundaryEdge * MeshConstructor::add_line ( BoundaryVertex v0,
BoundaryVertex v1,
const Point2D p1,
int  segments 
)

Definition at line 98 of file meshconstructor.C.

References add_line(), and BoundaryVertex::get_cp().

Here is the call graph for this function:

BoundaryEdge * MeshConstructor::add_line ( BoundaryVertex v0,
BoundaryVertex v1,
const Point2D p0,
const Point2D p1,
int  segments 
)

Definition at line 104 of file meshconstructor.C.

References create_edge(), and BoundaryVertex::set_cp().

Here is the call graph for this function:

BoundaryEdge * MeshConstructor::add_circle ( BoundaryVertex v0,
const Point2D center,
double  radius,
Radians  start,
int  segments 
)

Definition at line 124 of file meshconstructor.C.

References Point2D::assign(), create_edge(), BoundaryVertex::set_cp(), and TWOPI.

Here is the call graph for this function:

BoundaryEdge * MeshConstructor::add_arc ( BoundaryVertex v0,
BoundaryVertex v1,
const Point2D center,
double  radius,
Radians  start,
Radians  stop,
int  segments 
)

Definition at line 155 of file meshconstructor.C.

References Point2D::assign(), create_edge(), PI, and BoundaryVertex::set_cp().

Here is the call graph for this function:

BoundaryEdge * MeshConstructor::add_spiral ( BoundaryVertex v0,
BoundaryVertex v1,
const Point2D center,
double  divergence,
double  start_radius,
Radians  start,
Radians  stop,
int  segments 
)

Definition at line 194 of file meshconstructor.C.

References Point2D::assign(), Point2D::coords, create_edge(), PI, BoundaryVertex::set_cp(), spiral_derivative(), TWOPI, and Point2D::x().

Here is the call graph for this function:

BoundaryEdge * MeshConstructor::add_bezier ( BoundaryVertex v0,
BoundaryVertex v1,
const Point2D p0,
const Point2D p1,
const Point2D p2 
)

Definition at line 265 of file meshconstructor.C.

References create_edge(), and BoundaryVertex::set_cp().

Here is the call graph for this function:

void MeshConstructor::add_box_void ( const Point2D p0,
const Point2D p1,
const Point2D p2,
const Point2D p3,
int  segments 
)

Definition at line 280 of file meshconstructor.C.

References add_box().

Here is the call graph for this function:

vector< BoundaryEdge * > MeshConstructor::add_box ( const Point2D p0,
const Point2D p1,
const Point2D p2,
const Point2D p3,
int  segments 
) [protected]

Definition at line 287 of file meshconstructor.C.

References add_line(), and add_vertex().

Referenced by add_box_void().

Here is the call graph for this function:

void MeshConstructor::add_red_blood_cells_box ( int  num,
const Point2D box_top,
const Point2D box_bot,
int  cell_type,
double  cell_size,
std::vector< BoundaryVertex * > &  verts,
std::vector< BoundaryEdge * > &  cells,
std::vector< Point2D > &  centers 
) [protected]

void MeshConstructor::add_red_blood_cells_triangle ( int  num,
const Point2D p1,
const Point2D p2,
const Point2D p3,
int  cell_type,
double  cell_size,
std::vector< BoundaryVertex * > &  verts,
std::vector< BoundaryEdge * > &  cells,
std::vector< Point2D > &  centers 
) [protected]

void MeshConstructor::insert_cells ( int  num,
std::vector< Point2D initial_cells,
int  cell_type,
double  cell_size,
std::vector< BoundaryVertex * > &  verts,
std::vector< BoundaryEdge * > &  cells,
std::vector< Point2D > &  centers 
) [protected]


Member Data Documentation

BezierMesh* MeshConstructor::bezier [private]

Definition at line 28 of file meshconstructor.h.

Referenced by MeshConstructor(), and remove_small_angles().

BoundaryMesh* MeshConstructor::bdry [private]

Definition at line 29 of file meshconstructor.h.

Referenced by add_vertex(), and MeshConstructor().

ConformalMesher* MeshConstructor::mesher [private]

Definition at line 30 of file meshconstructor.h.

Referenced by add_remove_point(), mesh(), MeshConstructor(), and ~MeshConstructor().


The documentation for this class was generated from the following files:
Generated on Mon May 24 09:53:34 2010 for TUMBLE by  doxygen 1.5.2