MeshKit  1.0
SCDMesh Class Reference

Generate a structured Cartesian grid over a geometry. More...

#include <SCDMesh.hpp>

Inheritance diagram for SCDMesh:

List of all members.

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

Detailed Description

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.

Examples:
example_scdmesh.cpp.

Definition at line 40 of file SCDMesh.hpp.


Member Enumeration Documentation

Enumerator:
cartesian 
oriented 

Definition at line 59 of file SCDMesh.hpp.

Enumerator:
all 
individual 

Definition at line 64 of file SCDMesh.hpp.

Enumerator:
cfMesh 
vtxMesh 

Definition at line 54 of file SCDMesh.hpp.

Enumerator:
full 
scd 

Definition at line 47 of file SCDMesh.hpp.


Constructor & Destructor Documentation

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.


Member Function Documentation

static bool can_mesh ( iBase_EntityType  dim) [inline, static]

Function returning whether this scheme can mesh entities of the specified dimension.

Parameters:
dimentity dimension

Definition at line 143 of file SCDMesh.hpp.

static bool can_mesh ( ModelEnt ent) [inline, static]

Function returning whether this scheme can mesh the specified entity.

Used by MeshOpFactory to find scheme for an entity.

Parameters:
entModelEnt being queried
Returns:
If true, this scheme can mesh the specified ModelEnt

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]

Generates the SCD Mesh.

Implements GraphNode.

Definition at line 78 of file SCDMesh.cpp.

Get the axis scheme assigned ot the mesh.

Returns:
Axis scheme type

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.

Get the volume meshing scheme assigned ot the mesh.

Returns:
volume meshing scheme type

Definition at line 335 of file SCDMesh.hpp.

Get the grid scheme assigned to the mesh.

Returns:
Grid scheme type

Definition at line 315 of file SCDMesh.hpp.

Get the interface type.

Returns:
Interface scheme type

Definition at line 305 of file SCDMesh.hpp.

virtual const moab::EntityType* mesh_types_arr ( ) const [inline, virtual]

Return the mesh entity types operated on by this scheme.

Returns:
array terminated with 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.

Returns:
array terminated with 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.

Parameters:
schemeThe type of axis scheme to use
Examples:
example_scdmesh.cpp.

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.

Parameters:
coarse_i_Number of equally sized coarse divisions in the i direction
Examples:
example_scdmesh.cpp.

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.

Parameters:
coarse_j_Number of equally sized coarse divisions in the j direction
Examples:
example_scdmesh.cpp.

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.

Parameters:
coarse_k_Number of equally sized coarse divisions in the k direction
Examples:
example_scdmesh.cpp.

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.

Parameters:
fine_i_Vector of integers defining the number of equally sized fine divisions in each coarse divisions in the i direction
Examples:
example_scdmesh.cpp.

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.

Parameters:
fine_i_Vector of integers defining the number of equally sized fine divisions in each coarse divisions in the j direction
Examples:
example_scdmesh.cpp.

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.

Parameters:
fine_i_Vector of integers defining the number of equally sized fine divisions in each coarse divisions in the k direction
Examples:
example_scdmesh.cpp.

Definition at line 365 of file SCDMesh.hpp.

void set_geometry_scheme ( SCDMesh::GeomSchemeType  scheme) [inline]

Set how the geometric volumes will be meshed.

Parameters:
schemeThe type of volume meshing scheme to use
Examples:
example_scdmesh.cpp.

Definition at line 330 of file SCDMesh.hpp.

void set_grid_scheme ( SCDMesh::GridSchemeType  scheme) [inline]

Set the grid generation scheme to be used.

Parameters:
schemeThe type of grid scheme to be used
Examples:
example_scdmesh.cpp.

Definition at line 310 of file SCDMesh.hpp.

Set the interface type to be used.

Parameters:
schemeThe type of grid scheme to be used
Examples:
example_scdmesh.cpp.

Definition at line 300 of file SCDMesh.hpp.

void setup_this ( ) [virtual]

Setup.

Implements GraphNode.

Definition at line 49 of file SCDMesh.cpp.

void use_mesh_geometry ( bool  use) [inline]

Set if mesh based geometry is used.

Definition at line 383 of file SCDMesh.hpp.


Member Data Documentation

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.

Definition at line 72 of file SCDMesh.hpp.

iGeom::Error gerr [private]

Definition at line 93 of file SCDMesh.hpp.

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.

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.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines