hHybridMesh Class Reference
[Hybrid Mesh Module]

#include <hHybridMesh.h>

Inheritance diagram for hHybridMesh:
Inheritance graph
[legend]
Collaboration diagram for hHybridMesh:
Collaboration graph
[legend]

List of all members.

Public Types

typedef StaticPool< Elem,
ElemPrism::nVerts > 
ElemPool
typedef StaticPool< Face,
Face4::nVerts > 
FacePool
typedef StaticPool< Edge,
Edge::nVerts > 
EdgePool
typedef StaticPool< Vertex,
Vertex::nVerts > 
VertexPool
typedef ElemPool::Iterator
< ElemPool::notBroken > 
Iterator
typedef
ElemPool::constIterator
< ElemPool::notBroken > 
constIterator
typedef ElemPool::Iterator allIterator
typedef ElemPool::constIterator allConstIterator

Public Member Functions

 hHybridMesh (MeshWrite::IMeshWriter *defaultWriter=NULL, MeshRead::IMeshReader *defaultReader=NULL)
 ~hHybridMesh ()
bool read (MeshRead::IMeshReader &reader)
bool read (MeshRead::IMeshReader *readers[], const int noReaders)
bool write (MeshWrite::IMeshWriter &writer) const
bool free ()
virtual bool normalizationProcessor ()
bool printSetup ()
bool checkUniqueness () const
bool checkGeometry () const
bool checkTypes () const
bool checkAll () const
bool createBoundaryLayer (const double thicknessProc=0.1, const int nLayers=1, const bool quadraticDistribution=false, const double *vecIgnoreNormal=NULL)
bool initRefine ()
bool refine ()
bool refineElem (hObj &el)
bool refineElem (const int elemID)
bool rRefine (const int BC_id, void(*reallocation_func)(double *x, double *y, double *z))
bool derefine ()
bool derefineElem (hObj &elx)
bool derefineElem (const int elemID)
bool finalRef ()
 Assume that: no more than one-level_adaptation is done in one REFINEMENT.
bool isRefining () const
Edge & edge (const uTind v0, const uTind v1)
hObj & face (const uTind v0, const uTind v1, const uTind v2, const uTind v3=UNKNOWN)
const hObj & face (const uTind v0, const uTind v1, const uTind v2, const uTind v3=UNKNOWN) const
hObj & element (const uTind v0, const uTind v1, const uTind v2, const uTind v3, const uTind v4=UNKNOWN, const uTind v5=UNKNOWN)
Edge & edge (const uTind *v)
hObj & face (const uTind v[4])
const hObj & face (const uTind v[4]) const
ID faceVertex (const hObj &face, const Tind vertNo) const
ID elemVertex (const hObj &elem, const Tind vertNo) const
ID elemNeigh (const hObj &elem, const Tind neighNo) const
int whichNeighAmI (const hObj &elem, const hObj &otherElem) const
int whichFaceAmI (const hObj &face, const hObj &elem) const
int whichNodeAmI (const hObj &node, const hObj &elem) const
eElemFlag normalizeElem (hObj &elem)
eFaceFlag normalizeFace (hObj &face, hObj &elem)
double elemHSize (const hObj &elem)
void faceNormal (IN const hObj &face, OUT double vecNorm[3], OUT double *area) const
eFaceFlag faceDirection (const hObj &face, const hObj &elem) const
Iterator begin ()
constIterator begin () const
size_t totalSize () const
bool test () const
void findEdgeElems ()
void computeDist2Bound (const int BCs[], const int nBCs)
void print () const

Public Attributes

const int meshId_
VertexPool vertices_
EdgePool edges_
FacePool faces_
ElemPool elements_
std::string name_
int gen_
int maxGen_
int maxGenDiff_
int maxEdgesPerVertex_
int maxFacesPerVertex_
MeshWrite::IMeshWriter * defaultWriter_
MeshRead::IMeshReader * defaultReader_
std::vector< std::vector< uTind > > edge_elems
bool wasNormalized_

Protected Member Functions

 hHybridMesh (const hHybridMesh &other)
hHybridMesh & operator= (const hHybridMesh &other)
bool actualRefine ()
bool actualDerefine ()
bool actualDelete ()

Protected Attributes

bool isRefining_

Friends

std::ofstream & operator<< (std::ofstream &stream, const hHybridMesh &mesh)

Member Typedef Documentation

typedef ElemPool::constIterator hHybridMesh::allConstIterator
typedef ElemPool::Iterator hHybridMesh::allIterator
typedef ElemPool::constIterator<ElemPool::notBroken> hHybridMesh::constIterator
typedef StaticPool<Edge, Edge::nVerts> hHybridMesh::EdgePool
typedef StaticPool<Elem, ElemPrism::nVerts> hHybridMesh::ElemPool
typedef StaticPool<Face, Face4::nVerts> hHybridMesh::FacePool
typedef ElemPool::Iterator<ElemPool::notBroken> hHybridMesh::Iterator
typedef StaticPool<Vertex, Vertex::nVerts> hHybridMesh::VertexPool

Constructor & Destructor Documentation

hHybridMesh::hHybridMesh ( MeshWrite::IMeshWriter *  defaultWriter = NULL,
MeshRead::IMeshReader *  defaultReader = NULL 
)

Here is the call graph for this function:

hHybridMesh::~hHybridMesh (  ) 

Here is the call graph for this function:

hHybridMesh::hHybridMesh ( const hHybridMesh &  other  )  [protected]

Member Function Documentation

bool hHybridMesh::actualDelete (  )  [protected]
bool hHybridMesh::actualDerefine (  )  [protected]
bool hHybridMesh::actualRefine (  )  [protected]
constIterator hHybridMesh::begin (  )  const [inline]

Here is the call graph for this function:

Iterator hHybridMesh::begin (  )  [inline]

Here is the call graph for this function:

Here is the caller graph for this function:

bool hHybridMesh::checkAll (  )  const

Here is the call graph for this function:

Here is the caller graph for this function:

bool hHybridMesh::checkGeometry (  )  const

Here is the caller graph for this function:

bool hHybridMesh::checkTypes (  )  const

Here is the caller graph for this function:

bool hHybridMesh::checkUniqueness (  )  const

Here is the caller graph for this function:

void hHybridMesh::computeDist2Bound ( const int  BCs[],
const int  nBCs 
)
bool hHybridMesh::createBoundaryLayer ( const double  thicknessProc = 0.1,
const int  nLayers = 1,
const bool  quadraticDistribution = false,
const double *  vecIgnoreNormal = NULL 
)

FACE LEVEL

Here is the call graph for this function:

Here is the caller graph for this function:

bool hHybridMesh::derefine (  ) 

Here is the call graph for this function:

Here is the caller graph for this function:

bool hHybridMesh::derefineElem ( const int  elemID  ) 

Here is the call graph for this function:

bool hHybridMesh::derefineElem ( hObj &  elx  ) 

Here is the call graph for this function:

Here is the caller graph for this function:

Edge& hHybridMesh::edge ( const uTind *  v  ) 
Edge & hHybridMesh::edge ( const uTind  v0,
const uTind  v1 
)

Here is the call graph for this function:

Here is the caller graph for this function:

hObj & hHybridMesh::element ( const uTind  v0,
const uTind  v1,
const uTind  v2,
const uTind  v3,
const uTind  v4 = UNKNOWN,
const uTind  v5 = UNKNOWN 
)
double hHybridMesh::elemHSize ( const hObj &  elem  ) 

/* compute hsize as third root of volume (computed as mixed produc/

Here is the call graph for this function:

Here is the caller graph for this function:

ID hHybridMesh::elemNeigh ( const hObj &  elem,
const Tind  neighNo 
) const

Here is the call graph for this function:

Here is the caller graph for this function:

ID hHybridMesh::elemVertex ( const hObj &  elem,
const Tind  vertNo 
) const

Here is the call graph for this function:

const hObj & hHybridMesh::face ( const uTind  v[4]  )  const
hObj & hHybridMesh::face ( const uTind  v[4]  ) 

Here is the call graph for this function:

const hObj & hHybridMesh::face ( const uTind  v0,
const uTind  v1,
const uTind  v2,
const uTind  v3 = UNKNOWN 
) const

Here is the call graph for this function:

hObj & hHybridMesh::face ( const uTind  v0,
const uTind  v1,
const uTind  v2,
const uTind  v3 = UNKNOWN 
)

Here is the caller graph for this function:

eFaceFlag hHybridMesh::faceDirection ( const hObj &  face,
const hObj &  elem 
) const

2. Compute "center vector" from face center to existing neigh center. (pointing inside element)

3. Determine angle between normal vector and center vector. If angle < 90(deg) normal vector IS POINTING INSIDE and must points outside, so we mark appr. flag.

Here is the call graph for this function:

Here is the caller graph for this function:

void hHybridMesh::faceNormal ( IN const hObj &  face,
OUT double  vecNorm[3],
OUT double *  area 
) const

switch

Here is the call graph for this function:

Here is the caller graph for this function:

ID hHybridMesh::faceVertex ( const hObj &  face,
const Tind  vertNo 
) const

Here is the call graph for this function:

bool hHybridMesh::finalRef (  ) 

Assume that: no more than one-level_adaptation is done in one REFINEMENT.

Here is the call graph for this function:

Here is the caller graph for this function:

void hHybridMesh::findEdgeElems (  ) 

Here is the call graph for this function:

Here is the caller graph for this function:

bool hHybridMesh::free (  ) 

Here is the call graph for this function:

Here is the caller graph for this function:

bool hHybridMesh::initRefine (  ) 

Here is the caller graph for this function:

bool hHybridMesh::isRefining (  )  const [inline]

Here is the caller graph for this function:

bool hHybridMesh::normalizationProcessor (  )  [virtual]

Reimplemented in hHybridMeshWithContacts.

Here is the call graph for this function:

Here is the caller graph for this function:

eElemFlag hHybridMesh::normalizeElem ( hObj &  elem  ) 

volume testing

volume testing

Here is the call graph for this function:

Here is the caller graph for this function:

eFaceFlag hHybridMesh::normalizeFace ( hObj &  face,
hObj &  elem 
)

switch

Here is the call graph for this function:

Here is the caller graph for this function:

hHybridMesh& hHybridMesh::operator= ( const hHybridMesh &  other  )  [protected]
void hHybridMesh::print (  )  const

Here is the call graph for this function:

bool hHybridMesh::printSetup (  ) 

Marking element types

Here is the call graph for this function:

Here is the caller graph for this function:

bool hHybridMesh::read ( MeshRead::IMeshReader *  readers[],
const int  noReaders 
)

Here is the call graph for this function:

bool hHybridMesh::read ( MeshRead::IMeshReader &  reader  ) 

Here is the call graph for this function:

Here is the caller graph for this function:

bool hHybridMesh::refine (  ) 

Here is the call graph for this function:

Here is the caller graph for this function:

bool hHybridMesh::refineElem ( const int  elemID  ) 

Here is the call graph for this function:

bool hHybridMesh::refineElem ( hObj &  el  ) 

Here is the call graph for this function:

Here is the caller graph for this function:

bool hHybridMesh::rRefine ( const int  BC_id,
void(*)(double *x, double *y, double *z)  reallocation_func 
)

Here is the call graph for this function:

Here is the caller graph for this function:

bool hHybridMesh::test (  )  const

Here is the call graph for this function:

Here is the caller graph for this function:

size_t hHybridMesh::totalSize (  )  const [inline]

Here is the call graph for this function:

Here is the caller graph for this function:

int hHybridMesh::whichFaceAmI ( const hObj &  face,
const hObj &  elem 
) const

Here is the call graph for this function:

Here is the caller graph for this function:

int hHybridMesh::whichNeighAmI ( const hObj &  elem,
const hObj &  otherElem 
) const

Here is the call graph for this function:

int hHybridMesh::whichNodeAmI ( const hObj &  node,
const hObj &  elem 
) const

Here is the call graph for this function:

bool hHybridMesh::write ( MeshWrite::IMeshWriter &  writer  )  const

Here is the call graph for this function:

Here is the caller graph for this function:


Friends And Related Function Documentation

std::ofstream& operator<< ( std::ofstream &  stream,
const hHybridMesh &  mesh 
) [friend]

Member Data Documentation

std::vector< std::vector<uTind> > hHybridMesh::edge_elems
bool hHybridMesh::isRefining_ [protected]
std::string hHybridMesh::name_

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

Generated on 3 Jun 2020 for ModFEM by  doxygen 1.6.1