Public Member Functions | |
decomposeCells (polyMeshGen &mesh) | |
~decomposeCells () | |
Destructor. More... | |
void | decomposeMesh (const boolList &) |
perform decomposition of selected cell into pyramids More... | |
Private Member Functions | |
void | checkFaceConnections (const boolList &decomposeCell) |
void | findAddressingForCell (const label cellI, DynList< label, 32 > &vrt, DynList< edge, 64 > &edges, DynList< DynList< label, 8 > > &faceEdges, DynList< DynList< label, 2 >, 64 > &edgeFaces) const |
create addressing needed to decompose the cell More... | |
label | findTopVertex (const label cellI, const DynList< label, 32 > &vrt, const DynList< edge, 64 > &edges, const DynList< DynList< label, 2 >, 64 > &edgeFaces) |
find the apex of the pyramids More... | |
void | decomposeCellIntoPyramids (const label cellI) |
void | createPointsAndCellFaces (const boolList &decomposeCell) |
void | storeBoundaryFaces (const boolList &decomposeCell) |
void | removeDecomposedCells (const boolList &decomposeCell) |
void | addNewCells () |
void | operator= (const decomposeCells &) |
disallows bitwise construct More... | |
decomposeCells (const decomposeCells &) | |
copy constructor More... | |
Private Attributes | |
polyMeshGen & | mesh_ |
reference to the mesh More... | |
wordList | patchNames_ |
new boundary faces More... | |
wordList | patchTypes_ |
VRWGraph | newBoundaryFaces_ |
labelLongList | newBoundaryPatches_ |
VRWGraphList | facesOfNewCells_ |
Definition at line 48 of file decomposeCells.H.
|
private |
copy constructor
decomposeCells | ( | polyMeshGen & | mesh | ) |
construct from polyMeshGen and a list containing patches for each point
Definition at line 35 of file decomposeCells.C.
References polyMeshGenFaces::boundaries(), forAll, decomposeCells::mesh_, decomposeCells::patchNames_, and decomposeCells::patchTypes_.
~decomposeCells | ( | ) |
Destructor.
Definition at line 53 of file decomposeCells.C.
|
private |
check if the valid pyramids are generated from the split cells this check splits faces which could result in multiple inbetween faces
send information to the neighbour processor
receive information from the neighbour processor
decompose faces which would cause invalid connections
Definition at line 59 of file decomposeCellsDecomposition.C.
References UPstream::blocking, cells, polyMeshGenCells::cells(), decomposeFaces::decomposeMeshFaces(), polyMeshGenFaces::faces(), decomposeCells::findAddressingForCell(), forAll, HashTable::found(), HashSet< Key, Hash >::insert(), decomposeCells::mesh_, UPstream::parRun(), polyMeshGenFaces::procBoundaries(), faceListPMG::size(), and List::size().
Referenced by decomposeCells::decomposeMesh().
|
private |
create addressing needed to decompose the cell
check if the edge alreready exists
check if the cell is topologically closed
Definition at line 40 of file decomposeCellsPyramids.C.
References Foam::abort(), DynList< T, staticSize >::append(), Foam::constant::universal::c, DynList< T, staticSize >::clear(), Foam::e, Foam::endl(), f(), Foam::FatalError, FatalErrorIn, forAll, Foam::Info, DynList< T, staticSize >::size(), and Ostream::write().
Referenced by decomposeCells::checkFaceConnections(), and decomposeCells::decomposeCellIntoPyramids().
|
private |
find the apex of the pyramids
there is no vertex in 3 or more patches find boundary faces
Definition at line 128 of file decomposeCellsPyramids.C.
References pointFieldPMG::append(), Foam::constant::universal::c, Foam::cp(), Foam::endl(), forAll, Foam::Info, p, pointFieldPMG::size(), and Vector< scalar >::zero.
Referenced by decomposeCells::decomposeCellIntoPyramids().
|
private |
calculate edges, faceEdges and edgeFaces addressing
if there exist a corner vertex which is in 3 or more patches then it is selected as the top vertex
start generating pyramids
Definition at line 160 of file decomposeCellsPyramids.C.
References DynList< T, staticSize >::append(), VRWGraphList::appendGraph(), Foam::constant::universal::c, cells, polyMeshGenCells::cells(), DynList< T, staticSize >::contains(), Foam::e, Foam::endl(), f(), polyMeshGenFaces::faces(), decomposeCells::facesOfNewCells_, decomposeCells::findAddressingForCell(), decomposeCells::findTopVertex(), forAll, Foam::Info, decomposeCells::mesh_, polyMeshGenFaces::owner(), Foam::pos(), Foam::Pout, and DynList< T, staticSize >::setSize().
Referenced by decomposeCells::createPointsAndCellFaces().
|
private |
Definition at line 154 of file decomposeCellsDecomposition.C.
References VRWGraphList::clear(), decomposeCells::decomposeCellIntoPyramids(), decomposeCells::facesOfNewCells_, and forAll.
Referenced by decomposeCells::decomposeMesh().
|
private |
Definition at line 165 of file decomposeCellsDecomposition.C.
References LongList< T, Offset >::append(), VRWGraph::appendList(), meshSurfaceEngine::boundaryFacePatches(), meshSurfaceEngine::boundaryFaces(), forAll, decomposeCells::mesh_, decomposeCells::newBoundaryFaces_, and decomposeCells::newBoundaryPatches_.
Referenced by decomposeCells::decomposeMesh().
|
private |
Definition at line 178 of file decomposeCellsDecomposition.C.
References polyMeshGenCells::cells(), Foam::endl(), Foam::Info, decomposeCells::mesh_, polyMeshGenModifier::removeCells(), and cellListPMG::size().
Referenced by decomposeCells::decomposeMesh().
|
private |
Definition at line 192 of file decomposeCellsDecomposition.C.
References Foam::abort(), polyMeshGenModifier::addCells(), polyMeshGenCells::addressingData(), LongList< T, Offset >::append(), polyMeshGenModifier::boundariesAccess(), VRWGraphList::clear(), polyMeshGenModifier::clearAll(), Foam::endl(), polyMeshGenFaces::faceIsInPatch(), polyMeshGenFaces::faces(), decomposeCells::facesOfNewCells_, Foam::FatalError, FatalErrorIn, forAll, forAllRow, found, Foam::Info, decomposeCells::mesh_, decomposeCells::newBoundaryFaces_, decomposeCells::newBoundaryPatches_, polyMeshGenFaces::owner(), decomposeCells::patchNames_, decomposeCells::patchTypes_, polyMeshGenAddressing::pointFaces(), polyMeshGenModifier::removeUnusedVertices(), polyMeshGenModifier::reorderBoundaryFaces(), polyMeshGenModifier::replaceBoundary(), and VRWGraph::sizeOfRow().
Referenced by decomposeCells::decomposeMesh().
|
private |
disallows bitwise construct
void decomposeMesh | ( | const boolList & | decomposeCell | ) |
perform decomposition of selected cell into pyramids
Definition at line 42 of file decomposeCellsDecomposition.C.
References decomposeCells::addNewCells(), polyMeshGenCells::addressingData(), decomposeCells::checkFaceConnections(), decomposeCells::createPointsAndCellFaces(), decomposeCells::mesh_, decomposeCells::removeDecomposedCells(), and decomposeCells::storeBoundaryFaces().
Referenced by boundaryLayers::checkTopologyOfBoundaryFaces(), topologicalCleaner::decomposeCells(), triangulateNonPlanarBaseFaces::decomposeCellsIntoPyramids(), correctEdgesBetweenPatches::decomposeCorrectedCells(), cartesianMeshExtractor::decomposeSplitHexesIntoTetsAndPyramids(), and checkBoundaryFacesSharingTwoEdges::improveTopology().
|
private |
reference to the mesh
Definition at line 52 of file decomposeCells.H.
Referenced by decomposeCells::addNewCells(), decomposeCells::checkFaceConnections(), decomposeCells::decomposeCellIntoPyramids(), decomposeCells::decomposeCells(), decomposeCells::decomposeMesh(), decomposeCells::removeDecomposedCells(), and decomposeCells::storeBoundaryFaces().
|
private |
new boundary faces
Definition at line 55 of file decomposeCells.H.
Referenced by decomposeCells::addNewCells(), and decomposeCells::decomposeCells().
|
private |
Definition at line 56 of file decomposeCells.H.
Referenced by decomposeCells::addNewCells(), and decomposeCells::decomposeCells().
|
private |
Definition at line 57 of file decomposeCells.H.
Referenced by decomposeCells::addNewCells(), and decomposeCells::storeBoundaryFaces().
|
private |
Definition at line 58 of file decomposeCells.H.
Referenced by decomposeCells::addNewCells(), and decomposeCells::storeBoundaryFaces().
|
private |
Definition at line 60 of file decomposeCells.H.
Referenced by decomposeCells::addNewCells(), decomposeCells::createPointsAndCellFaces(), and decomposeCells::decomposeCellIntoPyramids().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.