MeshKit  1.0
PostBL Class Reference

#include <PostBL.hpp>

Inheritance diagram for PostBL:

List of all members.

Public Member Functions

 PostBL (MKCore *mk, const MEntVector &me_vec)
virtual ~PostBL ()
virtual const moab::EntityType * mesh_types_arr () const
 Return the mesh entity types operated on by this scheme.
virtual bool add_modelent (ModelEnt *model_ent)
 Re-implemented here so we can check topological dimension of model_ent.
virtual void setup_this ()
 Setup is a no-op, but must be provided since it's pure virtual.
virtual void execute_this ()
 execute PostBL graph node
void Algo2 ()
 Improved algorithm.
void PrepareIO (int argc, char *argv[], std::string TestDir)
 Prepare input/output files for reading/writing command line args and testdir for default test case.
void get_normal_quad (std::vector< moab::EntityHandle >conn, moab::CartVect &v)
 get the normals given connectivity of a quad
void get_normal_edge (std::vector< moab::EntityHandle >conn, moab::CartVect AB, moab::CartVect &v)
 get the normals given connectivity of a quad
void get_det_jacobian (std::vector< moab::EntityHandle > conn, int offset, double &detJ)
 compute determinant of jacobian of a hex element
void find_min_edge_length (moab::Range, moab::EntityHandle, moab::Range, double &e_len)
 compute edge length from the vertex specified
int push_bulk_mesh (VerdictWrapper vw)
 push the bulk mesh after creating the normals
int compute_normals ()
 compute the normal for each node of the boundary layer specified
int create_bl_elements (VerdictWrapper vw)
 create boundary layer elements after pushing the bulk mesh

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 Types

enum  ErrorStates { INVALIDINPUT }

Private Member Functions

void IOErrorHandler (ErrorStates) const

Private Attributes

iGeomigeom
 iGeom Impl for calling geometry creation/manipulation operations
iMeshimesh
 iMesh Impl for calling mesh creation/manipulation operations
moab::Interface * mb
 MOAB Impl for calling mesh creation/manipulation operations.
moab::Tag GDTag
moab::Tag GIDTag
moab::Tag NTag
moab::Tag MTag
moab::Tag STag
moab::Tag FTag
moab::Tag MNTag
moab::Tag MatIDTag
moab::Tag BLNodeIDTag
std::vector< moab::EntityHandle > old_hex
std::vector< moab::EntityHandle > new_vert
std::vector< moab::EntityHandle > conn
std::vector< moab::EntityHandle > qconn
std::vector< moab::EntityHandle > tri_conn
std::vector< moab::EntityHandle > tet_conn
std::vector< moab::EntityHandle > adj_qconn
std::vector< moab::EntityHandle > old_hex_conn
std::vector< moab::EntityHandle > adj_hex_nodes1
moab::CartVect surf_normal
moab::Range quads
moab::Range nodes
moab::Range edges
moab::Range fixmat_ents
double coords_new_quad [3]
double coords_old_quad [3]
moab::EntityHandle hex
moab::EntityHandle hex1
moab::EntityHandle hex2
moab::Range::iterator mset_it
moab::Range::iterator set_it
moab::EntityHandle mthis_set
moab::EntityHandle geom_set
moab::Range sets
moab::Range n_sets
moab::Range m_sets
bool debug
bool hybrid
bool check_bl_edge_length
std::ifstream m_FileInput
mstream m_LogFile
std::string szInputString
std::string szComment
int MAXCHARS
int m_nLineNumber
std::vector< int > blmaterial_id
std::vector< int > all_bl
std::string m_InputFile
std::string m_MeshFile
std::string m_OutFile
std::string m_LogName
std::string m_MeshType
int m_SurfId
int m_NeumannSet
int m_Material
int m_HConn
int hex27
double m_Thickness
double m_MinEdgeLength
int m_Intervals
int m_JacCalls
int tri_sch
int fixmat
double m_Bias
double m_JLo
double m_JHi
int m_Conn
int m_BElemNodes
int m_GD
int m_BLDim
std::string m_Card
int err

Detailed Description

Examples:
example_postbl.cpp.

Definition at line 69 of file PostBL.hpp.


Member Enumeration Documentation

enum ErrorStates [private]
Enumerator:
INVALIDINPUT 

Definition at line 217 of file PostBL.hpp.


Constructor & Destructor Documentation

PostBL ( MKCore mk,
const MEntVector me_vec 
)

Function: Constructor
Input: Initialize mesh and geometry instances and parameters
Output: none

Definition at line 12 of file PostBL.cpp.

~PostBL ( ) [virtual]

Function: Destructor, does nothing..
Input: none
Output: none

Definition at line 45 of file PostBL.cpp.


Member Function Documentation

bool add_modelent ( ModelEnt model_ent) [virtual]

Re-implemented here so we can check topological dimension of model_ent.

Parameters:
model_entModelEnt being added

Function: Adds entities for PosBL graph node.
Input: ModelEnt
Output: none

Reimplemented from MeshOp.

Definition at line 53 of file PostBL.cpp.

void Algo2 ( )

Improved algorithm.

bool can_mesh ( iBase_EntityType  dim) [inline, static]

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

Parameters:
dimentity dimension

Definition at line 226 of file PostBL.hpp.

bool can_mesh ( ModelEnt me) [inline, static]

Function returning whether this scheme can mesh the specified entity.

Used by MeshOpFactory to find scheme for an entity.

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

Definition at line 231 of file PostBL.hpp.

int compute_normals ( )

compute the normal for each node of the boundary layer specified

Function: Compute the normal direction for boundary layer compution.
Input: From included .hpp file
Output: none

Definition at line 4 of file computenormals.cpp.

int create_bl_elements ( VerdictWrapper  vw)

create boundary layer elements after pushing the bulk mesh

Function: Parser for reading the PostBL specification (.inp) file.
Input: Command line arguments.
Output: none

Definition at line 4 of file createblelements.cpp.

void execute_this ( ) [virtual]

execute PostBL graph node

Function: Read user input from file and run the PostBL algorithm
Input: Uses the file name (.inp) with keywords predefined by PosBL algorithm.
Output: Resulting mesh file is saved.

Implements GraphNode.

Examples:
example_postbl.cpp.

Definition at line 76 of file PostBL.cpp.

void find_min_edge_length ( moab::Range  adj_qn,
moab::EntityHandle  node,
moab::Range  bl_nodes,
double &  e_len 
)

compute edge length from the vertex specified

Parameters:
vectorof quads/edges
vertexspecified
o/pedge length

Function: Get minimum edge length from several adjacent quads/edges specified
Input: verts of quads, BL vert
Output: distance b/w BL vert and inner vert

Definition at line 311 of file computenormals.cpp.

void get_det_jacobian ( std::vector< moab::EntityHandle >  conn,
int  offset,
double &  AvgJ 
)

compute determinant of jacobian of a hex element

Parameters:
connconnectivity array
offsetpassed when conn array has connectivity of more than one element
detJis returned

Function: Get determinant of jacobian
Input: conn
Output: vector x, y and z

Definition at line 244 of file computenormals.cpp.

void get_normal_edge ( std::vector< moab::EntityHandle >  conn,
moab::CartVect  AB,
moab::CartVect &  v 
)

get the normals given connectivity of a quad

Parameters:
connconnectivity array type moab::EntityHandle
vreturn normal vector

Function: Get normal of a edge along its quad
Input: conn of edge, normal to the surf
Output: moab::CartVect v

Definition at line 229 of file computenormals.cpp.

void get_normal_quad ( std::vector< moab::EntityHandle >  conn,
moab::CartVect &  v 
)

get the normals given connectivity of a quad

Parameters:
connconnectivity array type EntityHandle
vreturn normal vector

Function: Get normal of a quad
Input: conn
Output: moab::CartVect v

Definition at line 213 of file computenormals.cpp.

void IOErrorHandler ( ErrorStates  ECode) const [private]

Function: Displays error messages related to input data
Input: Error code
Output: none

Definition at line 645 of file PostBL.cpp.

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 236 of file PostBL.hpp.

const char * name ( ) [inline, static]

Get class name.

Definition at line 221 of file PostBL.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 9 of file PostBL.cpp.

void PrepareIO ( int  argc,
char *  argv[],
std::string  TestDir 
)

Prepare input/output files for reading/writing command line args and testdir for default test case.

Parameters:
TestDirdirectory where test will be located and command line arguments.

Function: Parser for reading the PostBL specification (.inp) file.
Input: Command line arguments.
Output: none

Examples:
example_postbl.cpp.

Definition at line 468 of file PostBL.cpp.

int push_bulk_mesh ( VerdictWrapper  vw)

push the bulk mesh after creating the normals

Function: After normal creation push the bulk mesh and make room for creation of new BL elements
Input: mesh quality verdict handle and included variables from PostBL.hpp file
Output: save a mesh file in debug mode

Definition at line 4 of file pushbmesh.cpp.

void setup_this ( ) [virtual]

Setup is a no-op, but must be provided since it's pure virtual.

Function: Setup the graph node for PostBL
Input: none
Output: none

Implements GraphNode.

Examples:
example_postbl.cpp.

Definition at line 63 of file PostBL.cpp.


Member Data Documentation

std::vector<moab::EntityHandle> adj_hex_nodes1 [private]

Definition at line 181 of file PostBL.hpp.

std::vector<moab::EntityHandle> adj_qconn [private]

Definition at line 181 of file PostBL.hpp.

std::vector<int> all_bl [private]

Definition at line 202 of file PostBL.hpp.

std::vector<int> blmaterial_id [private]

Definition at line 202 of file PostBL.hpp.

moab::Tag BLNodeIDTag [private]

Definition at line 179 of file PostBL.hpp.

bool check_bl_edge_length [private]

Definition at line 194 of file PostBL.hpp.

std::vector<moab::EntityHandle> conn [private]

Definition at line 180 of file PostBL.hpp.

double coords_new_quad[3] [private]

Definition at line 185 of file PostBL.hpp.

double coords_old_quad[3] [private]

Definition at line 186 of file PostBL.hpp.

bool debug [private]

Definition at line 194 of file PostBL.hpp.

moab::Range edges [private]

Definition at line 184 of file PostBL.hpp.

int err [private]

Definition at line 214 of file PostBL.hpp.

int fixmat [private]

Definition at line 208 of file PostBL.hpp.

moab::Range fixmat_ents [private]

Definition at line 184 of file PostBL.hpp.

moab::Tag FTag [private]

Definition at line 179 of file PostBL.hpp.

moab::Tag GDTag [private]

Definition at line 179 of file PostBL.hpp.

moab::EntityHandle geom_set [private]

Definition at line 189 of file PostBL.hpp.

moab::Tag GIDTag [private]

Definition at line 179 of file PostBL.hpp.

moab::EntityHandle hex [private]

Definition at line 187 of file PostBL.hpp.

moab::EntityHandle hex1 [private]

Definition at line 187 of file PostBL.hpp.

moab::EntityHandle hex2 [private]

Definition at line 187 of file PostBL.hpp.

int hex27 [private]

Definition at line 206 of file PostBL.hpp.

bool hybrid [private]

Definition at line 194 of file PostBL.hpp.

iGeom* igeom [private]

iGeom Impl for calling geometry creation/manipulation operations

Definition at line 172 of file PostBL.hpp.

iMesh* imesh [private]

iMesh Impl for calling mesh creation/manipulation operations

Definition at line 175 of file PostBL.hpp.

int m_BElemNodes [private]

Definition at line 211 of file PostBL.hpp.

double m_Bias [private]

Definition at line 209 of file PostBL.hpp.

int m_BLDim [private]

Definition at line 212 of file PostBL.hpp.

std::string m_Card [private]

Definition at line 213 of file PostBL.hpp.

int m_Conn [private]

Definition at line 211 of file PostBL.hpp.

std::ifstream m_FileInput [private]

Definition at line 196 of file PostBL.hpp.

int m_GD [private]

Definition at line 212 of file PostBL.hpp.

int m_HConn [private]

Definition at line 206 of file PostBL.hpp.

std::string m_InputFile [private]

Definition at line 205 of file PostBL.hpp.

int m_Intervals [private]

Definition at line 208 of file PostBL.hpp.

int m_JacCalls [private]

Definition at line 208 of file PostBL.hpp.

double m_JHi [private]

Definition at line 209 of file PostBL.hpp.

double m_JLo [private]

Definition at line 209 of file PostBL.hpp.

mstream m_LogFile [private]

Definition at line 197 of file PostBL.hpp.

std::string m_LogName [private]

Definition at line 205 of file PostBL.hpp.

int m_Material [private]

Definition at line 206 of file PostBL.hpp.

std::string m_MeshFile [private]

Definition at line 205 of file PostBL.hpp.

std::string m_MeshType [private]

Definition at line 205 of file PostBL.hpp.

double m_MinEdgeLength [private]

Definition at line 207 of file PostBL.hpp.

int m_NeumannSet [private]

Definition at line 206 of file PostBL.hpp.

int m_nLineNumber [private]

Definition at line 200 of file PostBL.hpp.

std::string m_OutFile [private]

Definition at line 205 of file PostBL.hpp.

moab::Range m_sets [private]

Definition at line 190 of file PostBL.hpp.

int m_SurfId [private]

Definition at line 206 of file PostBL.hpp.

double m_Thickness [private]

Definition at line 207 of file PostBL.hpp.

moab::Tag MatIDTag [private]

Definition at line 179 of file PostBL.hpp.

int MAXCHARS [private]

Definition at line 200 of file PostBL.hpp.

moab::Interface* mb [private]

MOAB Impl for calling mesh creation/manipulation operations.

Definition at line 178 of file PostBL.hpp.

moab::Tag MNTag [private]

Definition at line 179 of file PostBL.hpp.

moab::Range::iterator mset_it [private]

Definition at line 188 of file PostBL.hpp.

moab::Tag MTag [private]

Definition at line 179 of file PostBL.hpp.

moab::EntityHandle mthis_set [private]

Definition at line 189 of file PostBL.hpp.

moab::Range n_sets [private]

Definition at line 190 of file PostBL.hpp.

std::vector<moab::EntityHandle> new_vert [private]

Definition at line 180 of file PostBL.hpp.

moab::Range nodes [private]

Definition at line 184 of file PostBL.hpp.

moab::Tag NTag [private]

Definition at line 179 of file PostBL.hpp.

std::vector<moab::EntityHandle> old_hex [private]

Definition at line 180 of file PostBL.hpp.

std::vector<moab::EntityHandle> old_hex_conn [private]

Definition at line 181 of file PostBL.hpp.

std::vector<moab::EntityHandle> qconn [private]

Definition at line 180 of file PostBL.hpp.

moab::Range quads [private]

Definition at line 184 of file PostBL.hpp.

moab::Range::iterator set_it [private]

Definition at line 188 of file PostBL.hpp.

moab::Range sets [private]

Definition at line 190 of file PostBL.hpp.

moab::Tag STag [private]

Definition at line 179 of file PostBL.hpp.

moab::CartVect surf_normal [private]

Definition at line 183 of file PostBL.hpp.

std::string szComment [private]

Definition at line 199 of file PostBL.hpp.

std::string szInputString [private]

Definition at line 198 of file PostBL.hpp.

std::vector<moab::EntityHandle> tet_conn [private]

Definition at line 180 of file PostBL.hpp.

std::vector<moab::EntityHandle> tri_conn [private]

Definition at line 180 of file PostBL.hpp.

int tri_sch [private]

Definition at line 208 of file PostBL.hpp.


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