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

Public Member Functions

 faceEvaluator (const edgeExtractor &)
 Construct from edgeExtractor. More...
 
 ~faceEvaluator ()
 
void setNewBoundaryPatches (const labelList &newBoudaryPatches)
 set the values for new boundary patches More...
 
void neiPatchesOverEdges (const label bfI, DynList< label > &neiPatches) const
 calculate neighbour patches over edges of a face More...
 
label bestPatchTopological (const label bfI) const
 
label bestPatchAfterModification (const label bfI) const
 

Private Member Functions

void calculateNeiPatchesParallel ()
 calculate patches of faces over inter-processor boundaries More...
 
void calculateNeiPatchesParallelNewPatches ()
 
void neiFacesOverEdges (const label, DynList< label > &) const
 find neighbour faces over edges More...
 
void neiFacesProcs (const label, DynList< label > &) const
 find processors of faces over edges More...
 
void neiPatchesOverEdges (const label bfI, const labelList &fPatches, const Map< label > &otherFacePatch, DynList< label > &neiPatches) const
 calculate neighbour patches over edges of a boundary face More...
 

Static Private Member Functions

static label bestPatchTopological (const DynList< label > &neiPatches, const label currentPatch)
 

Private Attributes

const edgeExtractorextractor_
 const reference to the parent class More...
 
Map< labelotherFacePatch_
 calculated patches of faces over inter-processor boundaries More...
 
const labelListnewBoundaryPatchesPtr_
 new status of face patches after re-assigning of patches More...
 
Map< label > * newOtherFacePatchPtr_
 

Detailed Description

Definition at line 205 of file edgeExtractor.H.

Constructor & Destructor Documentation

◆ faceEvaluator()

faceEvaluator ( const edgeExtractor ee)

Construct from edgeExtractor.

Definition at line 332 of file edgeExtractorCorners.C.

References edgeExtractor::faceEvaluator::calculateNeiPatchesParallel(), and UPstream::parRun().

Here is the call graph for this function:

◆ ~faceEvaluator()

Definition at line 345 of file edgeExtractorCorners.C.

References Foam::deleteDemandDrivenData().

Here is the call graph for this function:

Member Function Documentation

◆ calculateNeiPatchesParallel()

void calculateNeiPatchesParallel ( )
private

calculate patches of faces over inter-processor boundaries

create communication matrix

send data as follows: 1. global edge label 2. patch of the attached boundary face

Definition at line 58 of file edgeExtractorCorners.C.

References LongList< T, Offset >::append(), meshSurfaceEngine::beNeiProcs(), meshSurfaceEngine::edgeFaces(), Foam::help::exchangeMap(), edgeExtractor::faceEvaluator::extractor_, edgeExtractor::facePatch_, forAll, forAllConstIter(), meshSurfaceEngine::globalToLocalBndEdgeAddressing(), meshSurfaceEngine::otherEdgeFaceAtProc(), edgeExtractor::faceEvaluator::otherFacePatch_, UPstream::parRun(), LongList< T, Offset >::size(), VRWGraph::sizeOfRow(), and edgeExtractor::surfaceEngine().

Referenced by edgeExtractor::faceEvaluator::faceEvaluator().

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

◆ calculateNeiPatchesParallelNewPatches()

void calculateNeiPatchesParallelNewPatches ( )
private

◆ neiFacesOverEdges()

void neiFacesOverEdges ( const label  bfI,
DynList< label > &  neiFaces 
) const
private

find neighbour faces over edges

Definition at line 174 of file edgeExtractorCorners.C.

References meshSurfaceEngine::edgeFaces(), meshSurfaceEngine::faceEdges(), forAllRow, DynList< T, staticSize >::setSize(), and VRWGraph::sizeOfRow().

Here is the call graph for this function:

◆ neiFacesProcs()

void neiFacesProcs ( const label  bfI,
DynList< label > &  neiProcs 
) const
private

find processors of faces over edges

Definition at line 204 of file edgeExtractorCorners.C.

References meshSurfaceEngine::faceEdges(), forAllRow, UPstream::myProcNo(), meshSurfaceEngine::otherEdgeFaceAtProc(), UPstream::parRun(), DynList< T, staticSize >::setSize(), and VRWGraph::sizeOfRow().

Here is the call graph for this function:

◆ neiPatchesOverEdges() [1/2]

void neiPatchesOverEdges ( const label  bfI,
const labelList fPatches,
const Map< label > &  otherFacePatch,
DynList< label > &  neiPatches 
) const
private

calculate neighbour patches over edges of a boundary face

Definition at line 233 of file edgeExtractorCorners.C.

References meshSurfaceEngine::edgeFaces(), meshSurfaceEngine::faceEdges(), forAllRow, UPstream::parRun(), DynList< T, staticSize >::setSize(), and VRWGraph::sizeOfRow().

Here is the call graph for this function:

◆ bestPatchTopological() [1/2]

label bestPatchTopological ( const DynList< label > &  neiPatches,
const label  currentPatch 
)
staticprivate

evaluate new patch for a face based on the number of common edges shared between faces in other patches

find indices of all neighbour patches

counter the number of neighbours in a patch

do not swap if the situation allows for more than one edge shared with faces in other patches than the dominant one

do not swap if the best face is in the current patch

check whether the edges shared ith the neighbour patch form a singly linked chain

Definition at line 267 of file edgeExtractorCorners.C.

References DynList< T, staticSize >::appendIfNotIn(), Foam::help::areElementsInChain(), forAll, forAllConstIter(), FixedList::setSize(), Foam::help::sharedEdge(), and DynList< T, staticSize >::size().

Here is the call graph for this function:

◆ setNewBoundaryPatches()

void setNewBoundaryPatches ( const labelList newBoudaryPatches)

set the values for new boundary patches

Definition at line 353 of file edgeExtractorCorners.C.

References UPstream::parRun().

Referenced by edgeExtractor::checkFacePatchesGeometry(), and edgeExtractor::checkFacePatchesTopology().

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

◆ neiPatchesOverEdges() [2/2]

void neiPatchesOverEdges ( const label  bfI,
DynList< label > &  neiPatches 
) const

calculate neighbour patches over edges of a face

Definition at line 364 of file edgeExtractorCorners.C.

◆ bestPatchTopological() [2/2]

label bestPatchTopological ( const label  bfI) const

return the patch that the face shall be moved to such that the number of feature edges between the two patches is minimised

get neighbour patches over edges

Definition at line 378 of file edgeExtractorCorners.C.

◆ bestPatchAfterModification()

label bestPatchAfterModification ( const label  bfI) const

return the best patch for a face by comparing the patch before and after modifications to face patches have been made this function checks whether the changes of face patches cause oscillations in the procedure

Definition at line 394 of file edgeExtractorCorners.C.

References forAll, and UPstream::myProcNo().

Referenced by edgeExtractor::checkFacePatchesGeometry(), and edgeExtractor::checkFacePatchesTopology().

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

Field Documentation

◆ extractor_

const edgeExtractor& extractor_
private

const reference to the parent class

Definition at line 209 of file edgeExtractor.H.

Referenced by edgeExtractor::faceEvaluator::calculateNeiPatchesParallel().

◆ otherFacePatch_

Map<label> otherFacePatch_
private

calculated patches of faces over inter-processor boundaries

Definition at line 212 of file edgeExtractor.H.

Referenced by edgeExtractor::faceEvaluator::calculateNeiPatchesParallel().

◆ newBoundaryPatchesPtr_

const labelList* newBoundaryPatchesPtr_
private

new status of face patches after re-assigning of patches

Definition at line 215 of file edgeExtractor.H.

◆ newOtherFacePatchPtr_

Map<label>* newOtherFacePatchPtr_
private

calculated patches of faces over inter-processor boundaries after re-assigning of patches

Definition at line 219 of file edgeExtractor.H.


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