MeshKit
1.0
|
Generate the mesh for edges. More...
#include <EdgeMesher.hpp>
Classes | |
struct | Point3D |
Public Types | |
enum | EdgeSchemeType { EQUAL = 0, BIAS, DUAL, CURVATURE, VARIABLE, EQUIGNOMONIC } |
Public Member Functions | |
EdgeMesher (MKCore *mk_core, const MEntVector &me_vec) | |
virtual void | setup_this () |
Pure virtual, derived class must define. | |
virtual void | execute_this () |
Pure virtual, derived class must define. | |
virtual const moab::EntityType * | mesh_types_arr () const |
Return the mesh entity types operated on by this scheme. | |
EdgeSchemeType | get_edge_scheme () const |
void | set_edge_scheme (EdgeSchemeType scheme) |
void | set_ratio (double q) |
double | get_ratio () |
~EdgeMesher () | |
Static Public Member Functions | |
static const char * | name () |
Get class name. | |
static bool | can_mesh (iBase_EntityType dim) |
Function returning whether this scheme can mesh entities of t the specified dimension. | |
static bool | can_mesh (ModelEnt *me) |
Function returning whether this scheme can mesh the specified entity. | |
static const moab::EntityType * | output_types () |
Get list of mesh entity types that can be generated. | |
Private Member Functions | |
Point3D | getXYZCoords (ModelEnt *ent, double u) const |
double | getUCoord (ModelEnt *ent, double ustart, double dist, double uguess, double umin, double umax) const |
void | DivideIntoMore (ModelEnt *ent, Point3D p0, Point3D pMid, Point3D p1, double u0, double u1, double uMid, int &index, vector< double > &nodes, vector< double > &URecord) |
bool | ErrorCalculate (ModelEnt *ent, Point3D p0, Point3D p1, Point3D pMid) |
void | RapidSorting (vector< double > &nodes, vector< double > &URecord, int left, int right) |
void | QuickSorting (vector< double > &nodes, vector< double > &URecord, int count) |
void | EqualMeshing (ModelEnt *ent, int num_edges, std::vector< double > &coords) |
void | BiasMeshing (ModelEnt *ent, int num_edges, std::vector< double > &coords) |
void | DualBiasMeshing (ModelEnt *ent, int &num_edges, std::vector< double > &coords) |
void | CurvatureMeshing (ModelEnt *ent, int &num_edges, std::vector< double > &coords) |
void | VariableMeshing (ModelEnt *ent, int &num_edges, std::vector< double > &coords) |
void | EquiAngleGnomonic (ModelEnt *ent, int num_edges, std::vector< double > &coords) |
Private Attributes | |
EdgeSchemeType | schemeType |
double | ratio |
Generate the mesh for edges.
EdgeMesher generates a mesh for edges, creating the nodes and line segments on edges. There are four schemes for edge mesher: equal meshing, Bias Meshing Dual Bias Meshing, Curvature-Based Meshing
Definition at line 41 of file EdgeMesher.hpp.
enum EdgeSchemeType |
Definition at line 45 of file EdgeMesher.hpp.
EdgeMesher | ( | MKCore * | mk_core, |
const MEntVector & | me_vec | ||
) |
Definition at line 22 of file EdgeMesher.cpp.
~EdgeMesher | ( | ) |
Definition at line 252 of file EdgeMesher.cpp.
void BiasMeshing | ( | ModelEnt * | ent, |
int | num_edges, | ||
std::vector< double > & | coords | ||
) | [private] |
Definition at line 458 of file EdgeMesher.cpp.
static bool can_mesh | ( | iBase_EntityType | dim | ) | [inline, static] |
Function returning whether this scheme can mesh entities of t the specified dimension.
dim | entity dimension |
Definition at line 66 of file EdgeMesher.hpp.
Function returning whether this scheme can mesh the specified entity.
Used by MeshOpFactory to find scheme for an entity.
me | ModelEnt being queried |
Definition at line 75 of file EdgeMesher.hpp.
void CurvatureMeshing | ( | ModelEnt * | ent, |
int & | num_edges, | ||
std::vector< double > & | coords | ||
) | [private] |
Definition at line 289 of file EdgeMesher.cpp.
void DivideIntoMore | ( | ModelEnt * | ent, |
Point3D | p0, | ||
Point3D | pMid, | ||
Point3D | p1, | ||
double | u0, | ||
double | u1, | ||
double | uMid, | ||
int & | index, | ||
vector< double > & | nodes, | ||
vector< double > & | URecord | ||
) | [private] |
Definition at line 493 of file EdgeMesher.cpp.
void DualBiasMeshing | ( | ModelEnt * | ent, |
int & | num_edges, | ||
std::vector< double > & | coords | ||
) | [private] |
Definition at line 397 of file EdgeMesher.cpp.
void EqualMeshing | ( | ModelEnt * | ent, |
int | num_edges, | ||
std::vector< double > & | coords | ||
) | [private] |
Definition at line 259 of file EdgeMesher.cpp.
void EquiAngleGnomonic | ( | ModelEnt * | ent, |
int | num_edges, | ||
std::vector< double > & | coords | ||
) | [private] |
Definition at line 724 of file EdgeMesher.cpp.
bool ErrorCalculate | ( | ModelEnt * | ent, |
Point3D | p0, | ||
Point3D | p1, | ||
Point3D | pMid | ||
) | [private] |
Definition at line 884 of file EdgeMesher.cpp.
void execute_this | ( | ) | [virtual] |
Pure virtual, derived class must define.
Implements GraphNode.
Definition at line 133 of file EdgeMesher.cpp.
EdgeMesher::EdgeSchemeType get_edge_scheme | ( | ) | const [inline] |
Definition at line 158 of file EdgeMesher.hpp.
double get_ratio | ( | ) | [inline] |
Definition at line 170 of file EdgeMesher.hpp.
double getUCoord | ( | ModelEnt * | ent, |
double | ustart, | ||
double | dist, | ||
double | uguess, | ||
double | umin, | ||
double | umax | ||
) | const [private] |
Definition at line 836 of file EdgeMesher.cpp.
EdgeMesher::Point3D getXYZCoords | ( | ModelEnt * | ent, |
double | u | ||
) | const [private] |
Definition at line 818 of file EdgeMesher.cpp.
virtual const moab::EntityType* mesh_types_arr | ( | ) | const [inline, virtual] |
Return the mesh entity types operated on by this scheme.
moab::MBMAXTYPE
Implements MeshOp.
Definition at line 87 of file EdgeMesher.hpp.
static const char* name | ( | ) | [inline, static] |
Get class name.
Definition at line 59 of file EdgeMesher.hpp.
const moab::EntityType * output_types | ( | ) | [static] |
Get list of mesh entity types that can be generated.
moab::MBMAXTYPE
Definition at line 17 of file EdgeMesher.cpp.
void QuickSorting | ( | vector< double > & | nodes, |
vector< double > & | URecord, | ||
int | count | ||
) | [private] |
Definition at line 810 of file EdgeMesher.cpp.
void RapidSorting | ( | vector< double > & | nodes, |
vector< double > & | URecord, | ||
int | left, | ||
int | right | ||
) | [private] |
Definition at line 758 of file EdgeMesher.cpp.
void set_edge_scheme | ( | EdgeMesher::EdgeSchemeType | scheme | ) | [inline] |
Definition at line 152 of file EdgeMesher.hpp.
void set_ratio | ( | double | q | ) | [inline] |
Definition at line 164 of file EdgeMesher.hpp.
void setup_this | ( | ) | [virtual] |
Pure virtual, derived class must define.
Implements GraphNode.
Definition at line 53 of file EdgeMesher.cpp.
void VariableMeshing | ( | ModelEnt * | ent, |
int & | num_edges, | ||
std::vector< double > & | coords | ||
) | [private] |
Definition at line 553 of file EdgeMesher.cpp.
double ratio [private] |
Definition at line 109 of file EdgeMesher.hpp.
EdgeSchemeType schemeType [private] |
Definition at line 108 of file EdgeMesher.hpp.