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 edgeExtractor & | extractor_ |
const reference to the parent class More... | |
Map< label > | otherFacePatch_ |
calculated patches of faces over inter-processor boundaries More... | |
const labelList * | newBoundaryPatchesPtr_ |
new status of face patches after re-assigning of patches More... | |
Map< label > * | newOtherFacePatchPtr_ |
Definition at line 205 of file edgeExtractor.H.
faceEvaluator | ( | const edgeExtractor & | ee | ) |
Construct from edgeExtractor.
Definition at line 332 of file edgeExtractorCorners.C.
References edgeExtractor::faceEvaluator::calculateNeiPatchesParallel(), and UPstream::parRun().
~faceEvaluator | ( | ) |
Definition at line 345 of file edgeExtractorCorners.C.
References Foam::deleteDemandDrivenData().
|
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().
|
private |
create communication matrix
send data as follows: 1. global edge label 2. patch of the attached boundary face
Definition at line 110 of file edgeExtractorCorners.C.
References LongList< T, Offset >::append(), meshSurfaceEngine::beNeiProcs(), meshSurfaceEngine::edgeFaces(), Foam::help::exchangeMap(), Foam::exit(), Foam::FatalError, FatalErrorIn, forAll, forAllConstIter(), meshSurfaceEngine::globalToLocalBndEdgeAddressing(), meshSurfaceEngine::otherEdgeFaceAtProc(), UPstream::parRun(), LongList< T, Offset >::size(), and VRWGraph::sizeOfRow().
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().
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().
|
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().
|
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().
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().
calculate neighbour patches over edges of a face
Definition at line 364 of file edgeExtractorCorners.C.
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.
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().
|
private |
const reference to the parent class
Definition at line 209 of file edgeExtractor.H.
Referenced by edgeExtractor::faceEvaluator::calculateNeiPatchesParallel().
calculated patches of faces over inter-processor boundaries
Definition at line 212 of file edgeExtractor.H.
Referenced by edgeExtractor::faceEvaluator::calculateNeiPatchesParallel().
|
private |
new status of face patches after re-assigning of patches
Definition at line 215 of file edgeExtractor.H.
calculated patches of faces over inter-processor boundaries after re-assigning of patches
Definition at line 219 of file edgeExtractor.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.