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
Edgeedge (const uTind v0, const uTind v1)
hObjface (const uTind v0, const uTind v1, const uTind v2, const uTind v3=UNKNOWN)
const hObjface (const uTind v0, const uTind v1, const uTind v2, const uTind v3=UNKNOWN) const
hObjelement (const uTind v0, const uTind v1, const uTind v2, const uTind v3, const uTind v4=UNKNOWN, const uTind v5=UNKNOWN)
Edgeedge (const uTind *v)
hObjface (const uTind v[4])
const hObjface (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::IMeshWriterdefaultWriter_
MeshRead::IMeshReaderdefaultReader_
std::vector< std::vector< uTind > > edge_elems
bool wasNormalized_

Protected Member Functions

 hHybridMesh (const hHybridMesh &other)
hHybridMeshoperator= (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