Public Member Functions | Private Member Functions | Private Attributes
correctEdgesBetweenPatches Class Reference
Collaboration diagram for correctEdgesBetweenPatches:
Collaboration graph
[legend]

Public Member Functions

 correctEdgesBetweenPatches (polyMeshGen &mesh)
 Construct from mesh data. More...
 
 ~correctEdgesBetweenPatches ()
 

Private Member Functions

const meshSurfaceEnginemeshSurface () const
 construct and return mesh surface More...
 
void clearMeshSurface ()
 delete mesh surface More...
 
void replaceBoundary ()
 replace boundary More...
 
void decomposeCorrectedCells ()
 decompose corrected cells More...
 
void decomposeProblematicFaces ()
 
void decomposeConcaveFaces ()
 decompose cells with faces at concave boundary edges More...
 
void patchCorrection ()
 perform decompose remaining faces having more than one feature edge More...
 
 correctEdgesBetweenPatches (const correctEdgesBetweenPatches &)
 Disallow default bitwise copy construct. More...
 
void operator= (const correctEdgesBetweenPatches &)
 Disallow default bitwise assignment. More...
 

Private Attributes

polyMeshGenmesh_
 mesh More...
 
const meshSurfaceEnginemsePtr_
 pointer to surface engine More...
 
wordList patchNames_
 boundary data More...
 
wordList patchTypes_
 
VRWGraph newBoundaryFaces_
 
labelLongList newBoundaryOwners_
 
labelLongList newBoundaryPatches_
 
boolList decomposeCell_
 holds data which cells have to be decomposed More...
 
bool decompose_
 

Detailed Description

Definition at line 55 of file correctEdgesBetweenPatches.H.

Constructor & Destructor Documentation

◆ correctEdgesBetweenPatches() [1/2]

Disallow default bitwise copy construct.

◆ correctEdgesBetweenPatches() [2/2]

◆ ~correctEdgesBetweenPatches()

Definition at line 113 of file correctEdgesBetweenPatches.C.

References Foam::deleteDemandDrivenData(), and correctEdgesBetweenPatches::msePtr_.

Here is the call graph for this function:

Member Function Documentation

◆ meshSurface()

const meshSurfaceEngine & meshSurface ( ) const
private

◆ clearMeshSurface()

void clearMeshSurface ( )
private

◆ replaceBoundary()

void replaceBoundary ( )
private

◆ decomposeCorrectedCells()

void decomposeCorrectedCells ( )
private

decompose corrected cells

Definition at line 69 of file correctEdgesBetweenPatches.C.

References correctEdgesBetweenPatches::clearMeshSurface(), correctEdgesBetweenPatches::decompose_, correctEdgesBetweenPatches::decomposeCell_, decomposeCells::decomposeMesh(), and correctEdgesBetweenPatches::mesh_.

Referenced by correctEdgesBetweenPatches::correctEdgesBetweenPatches().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decomposeProblematicFaces()

void decomposeProblematicFaces ( )
private

decompose bnd faces for which the feature edges are not connected over vertices and internal faces which have more than one feature edge at the boundary

mark feature edges

find feature edges at parallel boundaries and propagate the information to all processors

propagate information to all processors that need this information

append labels of feature edges that need to be sent to other processors sharing that edge

decompose internal faces with more than one feature edge

check if this edge is a boundary edges and a feature edge

decompose boundary faces in case the feature edges are not connected into a single open chain of edges

decompose processor faces having more than one feature edge

check if this edge is a boundary edge and a feature edge

Definition at line 53 of file correctEdgesBetweenPatchesDistributeFaces.C.

References Foam::help::areElementsInChain(), meshSurfaceEngine::beAtProcs(), meshSurfaceEngine::beNeiProcs(), meshSurfaceEngine::boundaryFacePatches(), meshSurfaceEngine::boundaryPointEdges(), meshSurfaceEngine::bp(), polyMeshGenCells::clearAddressingData(), correctEdgesBetweenPatches::clearMeshSurface(), correctEdgesBetweenPatches::decompose_, correctEdgesBetweenPatches::decomposeCell_, decomposeFaces::decomposeMeshFaces(), Foam::e, meshSurfaceEngine::edgeFaces(), meshSurfaceEngine::edges(), Foam::endl(), Foam::help::exchangeMap(), f(), meshSurfaceEngine::faceEdges(), forAll, forAllConstIter(), forAllRow, meshSurfaceEngine::globalToLocalBndEdgeAddressing(), Foam::Info, mesh, meshSurfaceEngine::mesh(), correctEdgesBetweenPatches::mesh_, correctEdgesBetweenPatches::meshSurface(), UPstream::myProcNo(), meshSurfaceEngine::otherEdgeFacePatch(), UPstream::parRun(), Foam::reduce(), faceListPMG::size(), LongList< T, Offset >::size(), VRWGraph::size(), and VRWGraph::sizeOfRow().

Here is the call graph for this function:

◆ decomposeConcaveFaces()

void decomposeConcaveFaces ( )
private

decompose cells with faces at concave boundary edges

classify edges at the surface

find concave points

decompose internal faces attached to concave vertices which have two or more edges at the boundary

points is at a concave edge count the number of boundary edge

the face has two or more edges at the boundary Hence, it is marked for decomposition

finally, perform decomposition of marked faces

Definition at line 267 of file correctEdgesBetweenPatchesDistributeFaces.C.

References Foam::abort(), LongList< T, Offset >::append(), DynList< T, staticSize >::appendIfNotIn(), meshSurfaceEngine::beAtProcs(), meshSurfaceEngine::beNeiProcs(), meshSurfaceEngine::boundaryFacePatches(), meshSurfaceEngine::boundaryPointEdges(), meshSurfaceEngine::boundaryPoints(), meshSurfaceEngine::bp(), polyMeshGenCells::clearAddressingData(), correctEdgesBetweenPatches::clearMeshSurface(), meshSurfaceCheckEdgeTypes::CONCAVEEDGE, correctEdgesBetweenPatches::decompose_, correctEdgesBetweenPatches::decomposeCell_, decomposeFaces::decomposeMeshFaces(), Foam::e, meshSurfaceEngine::edgeFaces(), meshSurfaceEngine::edges(), meshSurfaceCheckEdgeTypes::edgeTypes(), Foam::endl(), Foam::help::exchangeMap(), f(), polyMeshGenFaces::faces(), Foam::FatalError, FatalErrorIn, forAll, forAllConstIter(), forAllRow, meshSurfaceEngine::globalToLocalBndEdgeAddressing(), Foam::Info, correctEdgesBetweenPatches::mesh_, correctEdgesBetweenPatches::meshSurface(), UPstream::myProcNo(), polyMeshGenFaces::neighbour(), polyMeshGenFaces::nInternalFaces(), polyMeshGenFaces::owner(), UPstream::parRun(), meshSurfaceCheckEdgeTypes::PATCHEDGE, Foam::returnReduce(), faceListPMG::size(), List::size(), LongList< T, Offset >::size(), DynList< T, staticSize >::size(), VRWGraph::sizeOfRow(), and meshSurfaceCheckEdgeTypes::UNDETERMINED.

Referenced by correctEdgesBetweenPatches::correctEdgesBetweenPatches().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ patchCorrection()

void patchCorrection ( )
private

perform decompose remaining faces having more than one feature edge

set flag 1 to corner vertices, flag 2 to edge vertices

set corner flags

set flgs to edge vertices

set flags for feature edges

set flags for edges at parallel boundaries

decompose bad faces into triangles

decompose into triangles

decompose the quad into 2 triangles

face has not been altered

Definition at line 439 of file correctEdgesBetweenPatchesDistributeFaces.C.

References pointFieldPMG::append(), LongList< T, Offset >::append(), VRWGraph::appendList(), meshSurfaceEngine::boundaryFacePatches(), meshSurfaceEngine::boundaryFaces(), meshSurfaceEngine::boundaryPoints(), meshSurfaceEngine::bp(), face::centre(), LongList< T, Offset >::clear(), VRWGraph::clear(), polyMeshGenCells::clearAddressingData(), correctEdgesBetweenPatches::clearMeshSurface(), meshSurfacePartitioner::corners(), correctEdgesBetweenPatches::decompose_, correctEdgesBetweenPatches::decomposeCell_, meshSurfaceEngine::edgeFaces(), meshSurfacePartitioner::edgePoints(), Foam::endl(), meshSurfaceEngine::faceEdges(), meshSurfaceEngine::faceOwners(), forAll, forAllConstIter(), Foam::Info, correctEdgesBetweenPatches::mesh_, correctEdgesBetweenPatches::meshSurface(), correctEdgesBetweenPatches::newBoundaryFaces_, correctEdgesBetweenPatches::newBoundaryOwners_, correctEdgesBetweenPatches::newBoundaryPatches_, face::nextLabel(), meshSurfaceEngine::otherEdgeFacePatch(), p, UPstream::parRun(), polyMeshGenPoints::points(), face::prevLabel(), Foam::reduce(), correctEdgesBetweenPatches::replaceBoundary(), Foam::returnReduce(), pointFieldPMG::size(), List::size(), VRWGraph::size(), and VRWGraph::sizeOfRow().

Referenced by correctEdgesBetweenPatches::correctEdgesBetweenPatches().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

void operator= ( const correctEdgesBetweenPatches )
private

Disallow default bitwise assignment.

Field Documentation

◆ mesh_

polyMeshGen& mesh_
private

◆ msePtr_

const meshSurfaceEngine* msePtr_
mutableprivate

◆ patchNames_

wordList patchNames_
private

◆ patchTypes_

wordList patchTypes_
private

◆ newBoundaryFaces_

VRWGraph newBoundaryFaces_
private

◆ newBoundaryOwners_

labelLongList newBoundaryOwners_
private

◆ newBoundaryPatches_

labelLongList newBoundaryPatches_
private

◆ decomposeCell_

boolList decomposeCell_
private

◆ decompose_

bool decompose_
private

The documentation for this class was generated from the following files: