#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().
1.5.2