#include </usr1/tp517/Tumble/trunk/src/tumble/meshconstructor.h>
Collaboration diagram for MeshConstructor:
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 () |
BoundaryVertex * | add_vertex () |
BoundaryVertex * | add_vertex (const Point2D &p) |
BoundaryFace * | add_face (const std::vector< BoundaryEdge * > &edges, const Point2D &point) |
BoundaryEdge * | add_line (BoundaryVertex *v0, BoundaryVertex *v1, int segments) |
BoundaryEdge * | add_line (BoundaryVertex *v0, BoundaryVertex *v1, const Point2D &p1, int segments) |
BoundaryEdge * | add_line (BoundaryVertex *v0, BoundaryVertex *v1, const Point2D &p0, const Point2D &p1, int segments) |
BoundaryEdge * | add_circle (BoundaryVertex *v0, const Point2D ¢er, double radius, Radians start, int segments) |
BoundaryEdge * | add_arc (BoundaryVertex *v0, BoundaryVertex *v1, const Point2D ¢er, double radius, Radians start, Radians stop, int segments) |
BoundaryEdge * | add_spiral (BoundaryVertex *v0, BoundaryVertex *v1, const Point2D ¢er, double divergence, double start_radius, Radians start, Radians stop, int segments) |
BoundaryEdge * | add_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 > ¢ers) |
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 > ¢ers) |
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 > ¢ers) |
Private Member Functions | |
BoundaryEdge * | create_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 | |
BezierMesh * | bezier |
BoundaryMesh * | bdry |
ConformalMesher * | mesher |
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.
MeshConstructor::MeshConstructor | ( | BezierMesh * | _bezier_mesh, | |
BoundaryMesh * | _bdry_mesh | |||
) |
MeshConstructor::~MeshConstructor | ( | ) |
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().
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] |
BezierMesh* MeshConstructor::bezier [private] |
Definition at line 28 of file meshconstructor.h.
Referenced by MeshConstructor(), and remove_small_angles().
BoundaryMesh* MeshConstructor::bdry [private] |
ConformalMesher* MeshConstructor::mesher [private] |
Definition at line 30 of file meshconstructor.h.
Referenced by add_remove_point(), mesh(), MeshConstructor(), and ~MeshConstructor().