Public Member Functions | |
surfaceMorpherCells (polyMeshGen &mesh) | |
Construct from points and cell shapes. More... | |
~surfaceMorpherCells () | |
void | morphMesh () |
Private Types | |
enum | cellTypes { NONE = 0, BOUNDARY = 1, CHANGED = 2 } |
Private Member Functions | |
void | findBoundaryVertices () |
find surface vertices More... | |
void | findBoundaryCells () |
find boundary cells More... | |
bool | removeCellsWithAllVerticesAtTheBoundary () |
remove cells with all vertices at the boundary More... | |
bool | morphBoundaryFaces () |
morph boundary faces More... | |
bool | morphInternalFaces () |
morph internal faces More... | |
void | replaceMeshBoundary () |
replace the boundary of the mesh with the newly created one More... | |
surfaceMorpherCells (const surfaceMorpherCells &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const surfaceMorpherCells &) |
Disallow default bitwise assignment. More... | |
Private Attributes | |
polyMeshGen & | mesh_ |
mesh modifier More... | |
label | nIntFaces_ |
number of internal faces More... | |
boolList | boundaryVertex_ |
true for vertices which are at the boundary More... | |
List< direction > | cellFlags_ |
true for cells which are at the boundary More... | |
VRWGraph | newBoundaryFaces_ |
new boundary faces and owner cells More... | |
labelLongList | newBoundaryOwners_ |
labelLongList | newBoundaryPatches_ |
Definition at line 51 of file surfaceMorpherCells.H.
|
private |
Enumerator | |
---|---|
NONE | |
BOUNDARY | |
CHANGED |
Definition at line 72 of file surfaceMorpherCells.H.
|
private |
Disallow default bitwise copy construct.
surfaceMorpherCells | ( | polyMeshGen & | mesh | ) |
Construct from points and cell shapes.
Definition at line 62 of file surfaceMorpherCells.C.
~surfaceMorpherCells | ( | ) |
Definition at line 76 of file surfaceMorpherCells.C.
|
private |
find surface vertices
send data about boundary vertices to other processors
create information about bnd nodes which must be exchanged with other processors
send the list of other processor
receive boundary vertices from other processor and continue sending and receiving as long as it makes some change
Definition at line 46 of file surfaceMorpherCellsMorphInternalFaces.C.
References Foam::abort(), LongList< T, Offset >::append(), UPstream::blocking, polyMeshGenFaces::boundaries(), surfaceMorpherCells::boundaryVertex_, Foam::endl(), f(), polyMeshGenFaces::faces(), Foam::FatalError, forAll, HashTable::found(), Foam::Info, HashSet< Key, Hash >::insert(), surfaceMorpherCells::mesh_, UPstream::parRun(), polyMeshGenPoints::points(), polyMeshGenFaces::procBoundaries(), Foam::reduce(), List::setSize(), pointFieldPMG::size(), List::size(), and LongList< T, Offset >::size().
Referenced by surfaceMorpherCells::morphMesh().
|
private |
find boundary cells
Definition at line 160 of file surfaceMorpherCellsMorphInternalFaces.C.
References polyMeshGenFaces::boundaries(), surfaceMorpherCells::BOUNDARY, surfaceMorpherCells::cellFlags_, polyMeshGenCells::cells(), forAll, surfaceMorpherCells::mesh_, surfaceMorpherCells::NONE, polyMeshGenFaces::owner(), List::setSize(), and cellListPMG::size().
Referenced by surfaceMorpherCells::morphMesh().
|
private |
remove cells with all vertices at the boundary
remove cells which have all their vertices at the boundary
remove cells which are not topologically closed
Definition at line 46 of file surfaceMorpherCellsCreateBoundaryFaces.C.
References DynList< T, staticSize >::append(), surfaceMorpherCells::BOUNDARY, surfaceMorpherCells::boundaryVertex_, Foam::constant::universal::c, surfaceMorpherCells::cellFlags_, cells, polyMeshGenCells::cells(), DynList< T, staticSize >::containsAtPosition(), Foam::endl(), f(), polyMeshGenFaces::faces(), forAll, Foam::Info, surfaceMorpherCells::mesh_, UPstream::parRun(), Foam::pos(), Foam::reduce(), polyMeshGenModifier::removeCells(), and List::size().
Referenced by surfaceMorpherCells::morphMesh().
|
private |
morph boundary faces
set CHANGED flag
Definition at line 130 of file surfaceMorpherCellsCreateBoundaryFaces.C.
References polyMeshGenCells::addressingData(), LongList< T, Offset >::append(), DynList< T, staticSize >::append(), VRWGraph::appendList(), surfaceMorpherCells::BOUNDARY, Foam::constant::universal::c, surfaceMorpherCells::cellFlags_, cells, polyMeshGenCells::cells(), surfaceMorpherCells::CHANGED, polyMeshGenCells::clearAddressingData(), face::edges(), Foam::endl(), Foam::exit(), polyMeshGenFaces::faceIsInPatch(), polyMeshGenFaces::faces(), forAll, Foam::Info, Foam::help::mergeTwoFaces(), surfaceMorpherCells::mesh_, surfaceMorpherCells::newBoundaryFaces_, surfaceMorpherCells::newBoundaryOwners_, surfaceMorpherCells::newBoundaryPatches_, UPstream::parRun(), Foam::reduce(), surfaceMorpherCells::replaceMeshBoundary(), LongList< T, Offset >::setSize(), VRWGraph::setSize(), DynList< T, staticSize >::size(), and HashTable::size().
Referenced by surfaceMorpherCells::morphMesh().
|
private |
morph internal faces
copy boundary faces
start morphing internal faces
store shrinked face
create new boundary faces from the removed part
treat processor boundaries
store shrinked face
create new boundary faces from the removed part
replace boundary of the mesh
remove faces which do not exist any more
Definition at line 179 of file surfaceMorpherCellsMorphInternalFaces.C.
References polyMeshGenCells::addressingData(), LongList< T, Offset >::append(), DynList< T, staticSize >::append(), DynList< T, staticSize >::appendIfNotIn(), VRWGraph::appendList(), polyMeshGenFaces::boundaries(), surfaceMorpherCells::boundaryVertex_, Foam::constant::universal::c, cells, polyMeshGenCells::cells(), polyMeshGenCells::clearAddressingData(), DynList< T, staticSize >::containsAtPosition(), Foam::help::createFaceFromRemovedPart(), Foam::endl(), f(), polyMeshGenFaces::faces(), forAll, Foam::Info, surfaceMorpherCells::mesh_, UPstream::myProcNo(), polyMeshGenFaces::neighbour(), surfaceMorpherCells::newBoundaryFaces_, surfaceMorpherCells::newBoundaryOwners_, surfaceMorpherCells::newBoundaryPatches_, polyMeshGenFaces::nInternalFaces(), polyMeshGenFaces::owner(), UPstream::parRun(), Foam::pos(), polyMeshGenFaces::procBoundaries(), Foam::reduce(), Foam::help::removeEdgesFromFace(), polyMeshGenModifier::removeFaces(), surfaceMorpherCells::replaceMeshBoundary(), face::reverseFace(), Foam::Serr, LongList< T, Offset >::setSize(), List::setSize(), VRWGraph::setSize(), DynList< T, staticSize >::shrink(), faceListPMG::size(), List::size(), DynList< T, staticSize >::size(), HashTable::size(), and Foam::Warning.
Referenced by surfaceMorpherCells::morphMesh().
|
private |
replace the boundary of the mesh with the newly created one
Definition at line 45 of file surfaceMorpherCells.C.
References surfaceMorpherCells::mesh_, surfaceMorpherCells::newBoundaryFaces_, surfaceMorpherCells::newBoundaryOwners_, surfaceMorpherCells::newBoundaryPatches_, patchNames(), and polyMeshGenModifier::replaceBoundary().
Referenced by surfaceMorpherCells::morphBoundaryFaces(), and surfaceMorpherCells::morphInternalFaces().
|
private |
Disallow default bitwise assignment.
void morphMesh | ( | ) |
perform surface morphing
Definition at line 81 of file surfaceMorpherCells.C.
References Foam::abort(), polyMeshGenCells::addressingData(), Foam::constant::universal::c, cells, polyMeshGenCells::cells(), Foam::endl(), polyMeshGenFaces::faces(), Foam::FatalError, FatalErrorIn, surfaceMorpherCells::findBoundaryCells(), surfaceMorpherCells::findBoundaryVertices(), forAll, Foam::Info, surfaceMorpherCells::mesh_, surfaceMorpherCells::morphBoundaryFaces(), surfaceMorpherCells::morphInternalFaces(), Foam::name(), surfaceMorpherCells::removeCellsWithAllVerticesAtTheBoundary(), polyMeshGenModifier::removeUnusedVertices(), List::size(), and polyMeshGen::write().
Referenced by tetMeshGenerator::surfacePreparation(), and voronoiMeshGenerator::surfacePreparation().
|
private |
mesh modifier
Definition at line 55 of file surfaceMorpherCells.H.
Referenced by surfaceMorpherCells::findBoundaryCells(), surfaceMorpherCells::findBoundaryVertices(), surfaceMorpherCells::morphBoundaryFaces(), surfaceMorpherCells::morphInternalFaces(), surfaceMorpherCells::morphMesh(), surfaceMorpherCells::removeCellsWithAllVerticesAtTheBoundary(), and surfaceMorpherCells::replaceMeshBoundary().
|
private |
number of internal faces
Definition at line 58 of file surfaceMorpherCells.H.
|
private |
true for vertices which are at the boundary
Definition at line 61 of file surfaceMorpherCells.H.
Referenced by surfaceMorpherCells::findBoundaryVertices(), surfaceMorpherCells::morphInternalFaces(), and surfaceMorpherCells::removeCellsWithAllVerticesAtTheBoundary().
true for cells which are at the boundary
Definition at line 64 of file surfaceMorpherCells.H.
Referenced by surfaceMorpherCells::findBoundaryCells(), surfaceMorpherCells::morphBoundaryFaces(), and surfaceMorpherCells::removeCellsWithAllVerticesAtTheBoundary().
|
private |
new boundary faces and owner cells
Definition at line 67 of file surfaceMorpherCells.H.
Referenced by surfaceMorpherCells::morphBoundaryFaces(), surfaceMorpherCells::morphInternalFaces(), and surfaceMorpherCells::replaceMeshBoundary().
|
private |
Definition at line 68 of file surfaceMorpherCells.H.
Referenced by surfaceMorpherCells::morphBoundaryFaces(), surfaceMorpherCells::morphInternalFaces(), and surfaceMorpherCells::replaceMeshBoundary().
|
private |
Definition at line 69 of file surfaceMorpherCells.H.
Referenced by surfaceMorpherCells::morphBoundaryFaces(), surfaceMorpherCells::morphInternalFaces(), and surfaceMorpherCells::replaceMeshBoundary().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.