Public Member Functions | |
checkIrregularSurfaceConnections (polyMeshGen &mesh) | |
Construct from polyMeshGen. More... | |
~checkIrregularSurfaceConnections () | |
void | checkIrregularVertices (labelHashSet &badVertices) |
find vertices where the surface is not valid More... | |
bool | checkAndFixIrregularConnections () |
find invalid connections and fix them on the fly More... | |
Private Member Functions | |
const meshSurfaceEngine & | surfaceEngine () const |
create meshSurfaceEngine More... | |
void | clearMeshEngine () |
clear meshSurfaceEngine. Used in case if the mesh is modified More... | |
bool | checkAndFixCellGroupsAtBndVertices (labelHashSet &badVertices, const bool removeConnections=false) |
bool | checkEdgeFaceConnections (labelHashSet &badVertices, const bool removeCells=false) |
bool | checkFaceGroupsAtBndVertices (labelHashSet &badVertices, const bool removeCells=false) |
checkIrregularSurfaceConnections (const checkIrregularSurfaceConnections &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const checkIrregularSurfaceConnections &) |
Disallow default bitwise assignment. More... | |
Private Attributes | |
polyMeshGen & | mesh_ |
Reference to polyMeshGen. More... | |
meshSurfaceEngine * | meshSurfacePtr_ |
pointer to meshSurfaceEngine More... | |
Definition at line 51 of file checkIrregularSurfaceConnections.H.
|
private |
Disallow default bitwise copy construct.
checkIrregularSurfaceConnections | ( | polyMeshGen & | mesh | ) |
Construct from polyMeshGen.
Definition at line 41 of file checkIrregularSurfaceConnections.C.
Definition at line 52 of file checkIrregularSurfaceConnections.C.
References polyMeshGenCells::clearAddressingData(), checkIrregularSurfaceConnections::clearMeshEngine(), and checkIrregularSurfaceConnections::mesh_.
|
inlineprivate |
create meshSurfaceEngine
Definition at line 62 of file checkIrregularSurfaceConnections.H.
References checkIrregularSurfaceConnections::mesh_, and checkIrregularSurfaceConnections::meshSurfacePtr_.
|
inlineprivate |
clear meshSurfaceEngine. Used in case if the mesh is modified
Definition at line 71 of file checkIrregularSurfaceConnections.H.
References Foam::deleteDemandDrivenData(), and checkIrregularSurfaceConnections::meshSurfacePtr_.
Referenced by checkIrregularSurfaceConnections::~checkIrregularSurfaceConnections().
|
private |
check if there exist vertices with more than one groups of cells attached to it
check cells connected to surface nodes cells connected to a vertex must create a single loop when cells are visited over faces from to the other
check if the vertices at processor boundaries are connected correctly
fill-in dualEdgesForPoint with local data
store the edge
fill-in with data at processor boundaries. Store edges on the processor with the lower label not to duplicate the data
exchange data with other processors this step supplies all processors with all necessary data
edges are sent to other processors as follows 1. global point label 2. number of edges at node 3. labels of edges
Finally, check the number of dual loops processor vertices
check if all points can be visited via edges
Definition at line 47 of file checkIrregularSurfaceConnectionsFunctions.C.
References LongList< T, Offset >::append(), DynList< T, staticSize >::append(), UPstream::blocking, meshSurfaceEngine::boundaryPoints(), meshSurfaceEngine::bp(), meshSurfaceEngine::bpAtProcs(), Foam::constant::universal::c, cells, polyMeshGenModifier::cellsAccess(), DynList< T, staticSize >::clear(), VRWGraph::contains(), Foam::e, Foam::endl(), Foam::help::exchangeMap(), f(), polyMeshGenModifier::facesAccess(), forAll, forAllConstIter(), forAllRow, meshSurfaceEngine::globalBoundaryPointLabel(), meshSurfaceEngine::globalToLocalBndPointAddressing(), Foam::Info, HashSet< Key, Hash >::insert(), UPstream::myProcNo(), nPoints, UPstream::nProcs(), p, UPstream::parRun(), points, polyMeshGenModifier::pointsAccess(), Foam::pos(), Foam::Pout, Foam::reduce(), DynList< T, staticSize >::removeLastElement(), Foam::returnReduce(), s(), List::size(), LongList< T, Offset >::size(), DynList< T, staticSize >::size(), and VRWGraph::sizeOfRow().
Referenced by checkIrregularSurfaceConnections::checkAndFixIrregularConnections().
|
private |
check if all boundary edges are connected to two boundary faces, only!
boundary edges at processor boundaries
send data to other processors
remove all cells connected to the selected edge
Definition at line 464 of file checkIrregularSurfaceConnectionsFunctions.C.
References meshSurfaceEngine::beAtProcs(), meshSurfaceEngine::beNeiProcs(), meshSurfaceEngine::boundaryPointEdges(), meshSurfaceEngine::bp(), Foam::e, meshSurfaceEngine::edgeFaces(), meshSurfaceEngine::edges(), Foam::endl(), Foam::help::exchangeMap(), f(), forAll, forAllRow, HashTable::found(), meshSurfaceEngine::globalBoundaryEdgeLabel(), meshSurfaceEngine::globalToLocalBndEdgeAddressing(), Foam::Info, HashSet< Key, Hash >::insert(), UPstream::myProcNo(), UPstream::parRun(), polyMeshGenModifier::removeCells(), Foam::returnReduce(), LongList< T, Offset >::size(), HashTable::size(), and VRWGraph::sizeOfRow().
Referenced by checkIrregularSurfaceConnections::checkAndFixIrregularConnections().
|
private |
check if all boundary face connected to a boundary vertex are connected into a single group of faces that can be visited over edges
check number of face groups
check connections at parallel vertices a connection of two faces over an edge can be represented as an edge. A list of edges at a bnd vertex must be connected into a single loop, otherwise the surface is ill-connected.
create map of dual edges for boundary points at processor boundaries
add local edge
collect connections over processor edges on the processor with the lowest label to avoid duplication of data
the data is sent as follows: 1. global edge label 2. global face label
exchange data with other processors this step supplies all processors with all necessary data
edges are sent to other processors as follows 1. global point label 2. number of edges at node 3. labels of edges
Finally, check the number of dual loops processor vertices
check if all points can be visited via edges
Definition at line 603 of file checkIrregularSurfaceConnectionsFunctions.C.
References LongList< T, Offset >::append(), DynList< T, staticSize >::append(), List::append(), meshSurfaceEngine::beNeiProcs(), meshSurfaceEngine::boundaryPointEdges(), meshSurfaceEngine::boundaryPoints(), meshSurfaceEngine::bp(), meshSurfaceEngine::bpAtProcs(), LongList< T, Offset >::clear(), DynList< T, staticSize >::clear(), VRWGraph::contains(), Foam::e, meshSurfaceEngine::edgeFaces(), meshSurfaceEngine::edges(), Foam::endl(), Foam::help::exchangeMap(), meshSurfaceEngine::faceFaces(), forAll, forAllConstIter(), forAllRow, meshSurfaceEngine::globalBoundaryEdgeLabel(), meshSurfaceEngine::globalBoundaryFaceLabel(), meshSurfaceEngine::globalBoundaryPointLabel(), meshSurfaceEngine::globalToLocalBndEdgeAddressing(), meshSurfaceEngine::globalToLocalBndPointAddressing(), Foam::Info, HashSet< Key, Hash >::insert(), UPstream::myProcNo(), UPstream::nProcs(), meshSurfaceEngine::otherEdgeFaceAtProc(), UPstream::parRun(), meshSurfaceEngine::pointFaces(), Foam::Pout, polyMeshGenModifier::removeCells(), DynList< T, staticSize >::removeLastElement(), Foam::returnReduce(), s(), List::size(), LongList< T, Offset >::size(), DynList< T, staticSize >::size(), VRWGraph::size(), HashTable::size(), and VRWGraph::sizeOfRow().
Referenced by checkIrregularSurfaceConnections::checkAndFixIrregularConnections().
|
private |
Disallow default bitwise assignment.
void checkIrregularVertices | ( | labelHashSet & | badVertices | ) |
find vertices where the surface is not valid
Definition at line 62 of file checkIrregularSurfaceConnections.C.
bool checkAndFixIrregularConnections | ( | ) |
find invalid connections and fix them on the fly
Definition at line 73 of file checkIrregularSurfaceConnections.C.
References checkIrregularSurfaceConnections::checkAndFixCellGroupsAtBndVertices(), checkIrregularSurfaceConnections::checkEdgeFaceConnections(), checkIrregularSurfaceConnections::checkFaceGroupsAtBndVertices(), Foam::endl(), Foam::Info, checkIrregularSurfaceConnections::mesh_, polyMeshGenModifier::removeUnusedVertices(), Foam::returnReduce(), and HashTable::size().
Referenced by cartesian2DMeshGenerator::surfacePreparation(), and cartesianMeshGenerator::surfacePreparation().
|
private |
Reference to polyMeshGen.
Definition at line 55 of file checkIrregularSurfaceConnections.H.
Referenced by checkIrregularSurfaceConnections::checkAndFixIrregularConnections(), checkIrregularSurfaceConnections::surfaceEngine(), and checkIrregularSurfaceConnections::~checkIrregularSurfaceConnections().
|
mutableprivate |
pointer to meshSurfaceEngine
Definition at line 58 of file checkIrregularSurfaceConnections.H.
Referenced by checkIrregularSurfaceConnections::clearMeshEngine(), and checkIrregularSurfaceConnections::surfaceEngine().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.