MeshKit
1.0
|
Generate a structured Cartesian grid over a geometry. More...
#include <SCDMesh.hpp>
Public Types | |
enum | InterfaceSchemeType { full, scd } |
enum | GridSchemeType { cfMesh, vtxMesh } |
enum | AxisSchemeType { cartesian, oriented } |
enum | GeomSchemeType { all, individual } |
Public Member Functions | |
SCDMesh (MKCore *mkcore, const MEntVector &me_vec) | |
Bare Constructor. | |
virtual | ~SCDMesh () |
Destructor. | |
virtual void | setup_this () |
Setup. | |
virtual void | execute_this () |
Generates the SCD Mesh. | |
virtual const moab::EntityType * | mesh_types_arr () const |
Return the mesh entity types operated on by this scheme. | |
void | set_interface_scheme (InterfaceSchemeType scheme) |
Set the interface type to be used. | |
InterfaceSchemeType | get_interface_scheme () const |
Get the interface type. | |
void | set_grid_scheme (GridSchemeType scheme) |
Set the grid generation scheme to be used. | |
GridSchemeType | get_grid_scheme () const |
Get the grid scheme assigned to the mesh. | |
void | set_axis_scheme (AxisSchemeType scheme) |
Set the axis type to be used. | |
AxisSchemeType | get_axis_scheme () const |
Get the axis scheme assigned ot the mesh. | |
void | set_geometry_scheme (GeomSchemeType scheme) |
Set how the geometric volumes will be meshed. | |
GeomSchemeType | get_geometry_scheme () const |
Get the volume meshing scheme assigned ot the mesh. | |
void | set_coarse_i_grid (int coarse_i_) |
Set the i direction number of coarse grid divisions for the cfmesh case. | |
void | set_coarse_j_grid (int coarse_j_) |
Set the j direction number of coarse grid divisions for the cfmesh case. | |
void | set_coarse_k_grid (int coarse_k_) |
Set the k direction number of coarse grid divisions for the cfmesh case. | |
void | set_fine_i_grid (std::vector< int > fine_i_) |
Set the i direction fine grid divisions. | |
void | set_fine_j_grid (std::vector< int > fine_j_) |
Set the j direction fine grid divisions. | |
void | set_fine_k_grid (std::vector< int > fine_k_) |
Set the k direction fine grid divisions. | |
void | get_box_dimension (double *min, double *max) |
Get the geometry encompasing box dimensions. | |
void | set_box_increase_ratio (double box_increase=.03) |
Set the geometry encompasing box size increase ratio. | |
void | use_mesh_geometry (bool use) |
Set if mesh based geometry is used. | |
void | set_cart_box_min_max (double *min, double *max, double box_increase) |
Set if mesh based geometry is used. | |
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 the specified dimension. | |
static bool | can_mesh (ModelEnt *ent) |
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 | |
void | set_cart_box_all () |
set the Cartesian bounding box dimensions over the entire geometry | |
void | set_cart_box_individual (ModelEnt *this_me) |
set the Cartesian bounding box dimensions over an individual model entity | |
void | create_cart_edges () |
create cartesian bounding box | |
void | create_vertex_coords () |
create mesh vertex coordinates | |
void | create_full_mesh (moab::Range &me_range) |
create full mesh representation | |
void | create_light_mesh (moab::Range &me_range) |
create lightweight ScdInterface representation | |
Private Attributes | |
InterfaceSchemeType | interfaceType |
GridSchemeType | gridType |
AxisSchemeType | axisType |
GeomSchemeType | geomType |
moab::ScdInterface * | scdIface |
unsigned int | coarse_i |
unsigned int | coarse_j |
unsigned int | coarse_k |
std::vector< int > | fine_i |
std::vector< int > | fine_j |
std::vector< int > | fine_k |
std::vector< double > | i_arr |
std::vector< double > | j_arr |
std::vector< double > | k_arr |
iGeom::Error | gerr |
moab::ErrorCode | rval |
double | minCoord [3] |
double | maxCoord [3] |
int | num_i |
int | num_j |
int | num_k |
int | num_verts |
double | boxIncrease |
std::vector< double > | full_coords |
moab::Range | vtx_range |
moab::Range | hex_range |
moab::Tag | bb_tag |
bool | useMeshGeom |
Generate a structured Cartesian grid over a geometry.
SCDMesh generates a structured Cartesian grid with either a lightweight representation using ScdInterface in MOAB or a full representation of all the entities.
Definition at line 40 of file SCDMesh.hpp.
enum AxisSchemeType |
Definition at line 59 of file SCDMesh.hpp.
enum GeomSchemeType |
Definition at line 64 of file SCDMesh.hpp.
enum GridSchemeType |
Definition at line 54 of file SCDMesh.hpp.
enum InterfaceSchemeType |
Definition at line 47 of file SCDMesh.hpp.
SCDMesh | ( | MKCore * | mkcore, |
const MEntVector & | me_vec | ||
) |
Bare Constructor.
Definition at line 32 of file SCDMesh.cpp.
~SCDMesh | ( | ) | [inline, virtual] |
Destructor.
Definition at line 296 of file SCDMesh.hpp.
static bool can_mesh | ( | iBase_EntityType | dim | ) | [inline, static] |
Function returning whether this scheme can mesh entities of the specified dimension.
dim | entity dimension |
Definition at line 143 of file SCDMesh.hpp.
Function returning whether this scheme can mesh the specified entity.
Used by MeshOpFactory to find scheme for an entity.
ent | ModelEnt being queried |
Definition at line 152 of file SCDMesh.hpp.
void create_cart_edges | ( | ) | [private] |
create cartesian bounding box
Definition at line 175 of file SCDMesh.cpp.
void create_full_mesh | ( | moab::Range & | me_range | ) | [private] |
create full mesh representation
Definition at line 239 of file SCDMesh.cpp.
void create_light_mesh | ( | moab::Range & | me_range | ) | [private] |
create lightweight ScdInterface representation
Definition at line 282 of file SCDMesh.cpp.
void create_vertex_coords | ( | ) | [private] |
create mesh vertex coordinates
Definition at line 214 of file SCDMesh.cpp.
void execute_this | ( | ) | [virtual] |
SCDMesh::AxisSchemeType get_axis_scheme | ( | ) | const [inline] |
Get the axis scheme assigned ot the mesh.
Definition at line 325 of file SCDMesh.hpp.
void get_box_dimension | ( | double * | min, |
double * | max | ||
) | [inline] |
Get the geometry encompasing box dimensions.
Definition at line 370 of file SCDMesh.hpp.
SCDMesh::GeomSchemeType get_geometry_scheme | ( | ) | const [inline] |
Get the volume meshing scheme assigned ot the mesh.
Definition at line 335 of file SCDMesh.hpp.
SCDMesh::GridSchemeType get_grid_scheme | ( | ) | const [inline] |
Get the grid scheme assigned to the mesh.
Definition at line 315 of file SCDMesh.hpp.
SCDMesh::InterfaceSchemeType get_interface_scheme | ( | ) | const [inline] |
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 163 of file SCDMesh.hpp.
static const char* name | ( | ) | [inline, static] |
Get class name.
Definition at line 136 of file SCDMesh.hpp.
const moab::EntityType * output_types | ( | ) | [static] |
Get list of mesh entity types that can be generated.
moab::MBMAXTYPE
Definition at line 27 of file SCDMesh.cpp.
void set_axis_scheme | ( | SCDMesh::AxisSchemeType | scheme | ) | [inline] |
Set the axis type to be used.
scheme | The type of axis scheme to use |
Definition at line 320 of file SCDMesh.hpp.
void set_box_increase_ratio | ( | double | box_increase = .03 | ) | [inline] |
Set the geometry encompasing box size increase ratio.
Definition at line 378 of file SCDMesh.hpp.
void set_cart_box_all | ( | ) | [private] |
set the Cartesian bounding box dimensions over the entire geometry
Definition at line 121 of file SCDMesh.cpp.
void set_cart_box_individual | ( | ModelEnt * | this_me | ) | [private] |
set the Cartesian bounding box dimensions over an individual model entity
Definition at line 140 of file SCDMesh.cpp.
void set_cart_box_min_max | ( | double * | min, |
double * | max, | ||
double | box_increase | ||
) |
Set if mesh based geometry is used.
Definition at line 164 of file SCDMesh.cpp.
void set_coarse_i_grid | ( | int | coarse_i_ | ) | [inline] |
Set the i direction number of coarse grid divisions for the cfmesh case.
coarse_i_ | Number of equally sized coarse divisions in the i direction |
Definition at line 340 of file SCDMesh.hpp.
void set_coarse_j_grid | ( | int | coarse_j_ | ) | [inline] |
Set the j direction number of coarse grid divisions for the cfmesh case.
coarse_j_ | Number of equally sized coarse divisions in the j direction |
Definition at line 345 of file SCDMesh.hpp.
void set_coarse_k_grid | ( | int | coarse_k_ | ) | [inline] |
Set the k direction number of coarse grid divisions for the cfmesh case.
coarse_k_ | Number of equally sized coarse divisions in the k direction |
Definition at line 350 of file SCDMesh.hpp.
void set_fine_i_grid | ( | std::vector< int > | fine_i_ | ) | [inline] |
Set the i direction fine grid divisions.
fine_i_ | Vector of integers defining the number of equally sized fine divisions in each coarse divisions in the i direction |
Definition at line 355 of file SCDMesh.hpp.
void set_fine_j_grid | ( | std::vector< int > | fine_j_ | ) | [inline] |
Set the j direction fine grid divisions.
fine_i_ | Vector of integers defining the number of equally sized fine divisions in each coarse divisions in the j direction |
Definition at line 360 of file SCDMesh.hpp.
void set_fine_k_grid | ( | std::vector< int > | fine_k_ | ) | [inline] |
Set the k direction fine grid divisions.
fine_i_ | Vector of integers defining the number of equally sized fine divisions in each coarse divisions in the k direction |
Definition at line 365 of file SCDMesh.hpp.
void set_geometry_scheme | ( | SCDMesh::GeomSchemeType | scheme | ) | [inline] |
Set how the geometric volumes will be meshed.
scheme | The type of volume meshing scheme to use |
Definition at line 330 of file SCDMesh.hpp.
void set_grid_scheme | ( | SCDMesh::GridSchemeType | scheme | ) | [inline] |
Set the grid generation scheme to be used.
scheme | The type of grid scheme to be used |
Definition at line 310 of file SCDMesh.hpp.
void set_interface_scheme | ( | SCDMesh::InterfaceSchemeType | scheme | ) | [inline] |
Set the interface type to be used.
scheme | The type of grid scheme to be used |
Definition at line 300 of file SCDMesh.hpp.
void setup_this | ( | ) | [virtual] |
void use_mesh_geometry | ( | bool | use | ) | [inline] |
Set if mesh based geometry is used.
Definition at line 383 of file SCDMesh.hpp.
AxisSchemeType axisType [private] |
Definition at line 71 of file SCDMesh.hpp.
moab::Tag bb_tag [private] |
Definition at line 115 of file SCDMesh.hpp.
double boxIncrease [private] |
Definition at line 106 of file SCDMesh.hpp.
unsigned int coarse_i [private] |
Definition at line 78 of file SCDMesh.hpp.
unsigned int coarse_j [private] |
Definition at line 79 of file SCDMesh.hpp.
unsigned int coarse_k [private] |
Definition at line 80 of file SCDMesh.hpp.
std::vector<int> fine_i [private] |
Definition at line 83 of file SCDMesh.hpp.
std::vector<int> fine_j [private] |
Definition at line 84 of file SCDMesh.hpp.
std::vector<int> fine_k [private] |
Definition at line 85 of file SCDMesh.hpp.
std::vector<double> full_coords [private] |
Definition at line 109 of file SCDMesh.hpp.
GeomSchemeType geomType [private] |
Definition at line 72 of file SCDMesh.hpp.
iGeom::Error gerr [private] |
Definition at line 93 of file SCDMesh.hpp.
GridSchemeType gridType [private] |
Definition at line 70 of file SCDMesh.hpp.
moab::Range hex_range [private] |
Definition at line 113 of file SCDMesh.hpp.
std::vector<double> i_arr [private] |
Definition at line 88 of file SCDMesh.hpp.
InterfaceSchemeType interfaceType [private] |
Definition at line 69 of file SCDMesh.hpp.
std::vector<double> j_arr [private] |
Definition at line 89 of file SCDMesh.hpp.
std::vector<double> k_arr [private] |
Definition at line 90 of file SCDMesh.hpp.
double maxCoord[3] [private] |
Definition at line 97 of file SCDMesh.hpp.
double minCoord[3] [private] |
Definition at line 97 of file SCDMesh.hpp.
int num_i [private] |
Definition at line 100 of file SCDMesh.hpp.
int num_j [private] |
Definition at line 101 of file SCDMesh.hpp.
int num_k [private] |
Definition at line 102 of file SCDMesh.hpp.
int num_verts [private] |
Definition at line 103 of file SCDMesh.hpp.
moab::ErrorCode rval [private] |
Definition at line 94 of file SCDMesh.hpp.
moab::ScdInterface* scdIface [private] |
Definition at line 75 of file SCDMesh.hpp.
bool useMeshGeom [private] |
Definition at line 117 of file SCDMesh.hpp.
moab::Range vtx_range [private] |
Definition at line 112 of file SCDMesh.hpp.