Public Member Functions | |
correctEdgesBetweenPatches (polyMeshGen &mesh) | |
Construct from mesh data. More... | |
~correctEdgesBetweenPatches () | |
Private Member Functions | |
const meshSurfaceEngine & | meshSurface () 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 | |
polyMeshGen & | mesh_ |
mesh More... | |
const meshSurfaceEngine * | msePtr_ |
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_ |
Definition at line 55 of file correctEdgesBetweenPatches.H.
|
private |
Disallow default bitwise copy construct.
correctEdgesBetweenPatches | ( | polyMeshGen & | mesh | ) |
Construct from mesh data.
Definition at line 83 of file correctEdgesBetweenPatches.C.
References polyMeshGenFaces::boundaries(), correctEdgesBetweenPatches::decomposeConcaveFaces(), correctEdgesBetweenPatches::decomposeCorrectedCells(), forAll, correctEdgesBetweenPatches::mesh_, correctEdgesBetweenPatches::patchCorrection(), correctEdgesBetweenPatches::patchNames_, and correctEdgesBetweenPatches::patchTypes_.
Definition at line 113 of file correctEdgesBetweenPatches.C.
References Foam::deleteDemandDrivenData(), and correctEdgesBetweenPatches::msePtr_.
|
private |
construct and return mesh surface
Definition at line 42 of file correctEdgesBetweenPatches.C.
References correctEdgesBetweenPatches::mesh_, and correctEdgesBetweenPatches::msePtr_.
Referenced by correctEdgesBetweenPatches::decomposeConcaveFaces(), correctEdgesBetweenPatches::decomposeProblematicFaces(), and correctEdgesBetweenPatches::patchCorrection().
|
private |
delete mesh surface
Definition at line 51 of file correctEdgesBetweenPatches.C.
References Foam::deleteDemandDrivenData(), and correctEdgesBetweenPatches::msePtr_.
Referenced by correctEdgesBetweenPatches::decomposeConcaveFaces(), correctEdgesBetweenPatches::decomposeCorrectedCells(), correctEdgesBetweenPatches::decomposeProblematicFaces(), correctEdgesBetweenPatches::patchCorrection(), and correctEdgesBetweenPatches::replaceBoundary().
|
private |
replace boundary
Definition at line 56 of file correctEdgesBetweenPatches.C.
References correctEdgesBetweenPatches::clearMeshSurface(), correctEdgesBetweenPatches::mesh_, correctEdgesBetweenPatches::newBoundaryFaces_, correctEdgesBetweenPatches::newBoundaryOwners_, correctEdgesBetweenPatches::newBoundaryPatches_, correctEdgesBetweenPatches::patchNames_, and polyMeshGenModifier::replaceBoundary().
Referenced by correctEdgesBetweenPatches::patchCorrection().
|
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().
|
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().
|
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().
|
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().
|
private |
Disallow default bitwise assignment.
|
private |
mesh
Definition at line 59 of file correctEdgesBetweenPatches.H.
Referenced by correctEdgesBetweenPatches::correctEdgesBetweenPatches(), correctEdgesBetweenPatches::decomposeConcaveFaces(), correctEdgesBetweenPatches::decomposeCorrectedCells(), correctEdgesBetweenPatches::decomposeProblematicFaces(), correctEdgesBetweenPatches::meshSurface(), correctEdgesBetweenPatches::patchCorrection(), and correctEdgesBetweenPatches::replaceBoundary().
|
mutableprivate |
pointer to surface engine
Definition at line 62 of file correctEdgesBetweenPatches.H.
Referenced by correctEdgesBetweenPatches::clearMeshSurface(), correctEdgesBetweenPatches::meshSurface(), and correctEdgesBetweenPatches::~correctEdgesBetweenPatches().
|
private |
boundary data
Definition at line 65 of file correctEdgesBetweenPatches.H.
Referenced by correctEdgesBetweenPatches::correctEdgesBetweenPatches(), and correctEdgesBetweenPatches::replaceBoundary().
|
private |
Definition at line 66 of file correctEdgesBetweenPatches.H.
Referenced by correctEdgesBetweenPatches::correctEdgesBetweenPatches().
|
private |
Definition at line 67 of file correctEdgesBetweenPatches.H.
Referenced by correctEdgesBetweenPatches::patchCorrection(), and correctEdgesBetweenPatches::replaceBoundary().
|
private |
Definition at line 68 of file correctEdgesBetweenPatches.H.
Referenced by correctEdgesBetweenPatches::patchCorrection(), and correctEdgesBetweenPatches::replaceBoundary().
|
private |
Definition at line 69 of file correctEdgesBetweenPatches.H.
Referenced by correctEdgesBetweenPatches::patchCorrection(), and correctEdgesBetweenPatches::replaceBoundary().
|
private |
holds data which cells have to be decomposed
Definition at line 72 of file correctEdgesBetweenPatches.H.
Referenced by correctEdgesBetweenPatches::decomposeConcaveFaces(), correctEdgesBetweenPatches::decomposeCorrectedCells(), correctEdgesBetweenPatches::decomposeProblematicFaces(), and correctEdgesBetweenPatches::patchCorrection().
|
private |
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.