Public Member Functions | Private Types | Private Member Functions | Private Attributes
surfaceMorpherCells Class Reference
Collaboration diagram for surfaceMorpherCells:
Collaboration graph
[legend]

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

polyMeshGenmesh_
 mesh modifier More...
 
label nIntFaces_
 number of internal faces More...
 
boolList boundaryVertex_
 true for vertices which are at the boundary More...
 
List< directioncellFlags_
 true for cells which are at the boundary More...
 
VRWGraph newBoundaryFaces_
 new boundary faces and owner cells More...
 
labelLongList newBoundaryOwners_
 
labelLongList newBoundaryPatches_
 

Detailed Description

Definition at line 51 of file surfaceMorpherCells.H.

Member Enumeration Documentation

◆ cellTypes

enum cellTypes
private
Enumerator
NONE 
BOUNDARY 
CHANGED 

Definition at line 72 of file surfaceMorpherCells.H.

Constructor & Destructor Documentation

◆ surfaceMorpherCells() [1/2]

Disallow default bitwise copy construct.

◆ surfaceMorpherCells() [2/2]

Construct from points and cell shapes.

Definition at line 62 of file surfaceMorpherCells.C.

◆ ~surfaceMorpherCells()

Definition at line 76 of file surfaceMorpherCells.C.

Member Function Documentation

◆ findBoundaryVertices()

void findBoundaryVertices ( )
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ findBoundaryCells()

void findBoundaryCells ( )
private

◆ removeCellsWithAllVerticesAtTheBoundary()

bool removeCellsWithAllVerticesAtTheBoundary ( )
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ morphBoundaryFaces()

bool morphBoundaryFaces ( )
private

◆ morphInternalFaces()

bool morphInternalFaces ( )
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ replaceMeshBoundary()

void replaceMeshBoundary ( )
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

void operator= ( const surfaceMorpherCells )
private

Disallow default bitwise assignment.

◆ morphMesh()

void morphMesh ( )

Field Documentation

◆ mesh_

polyMeshGen& mesh_
private

◆ nIntFaces_

label nIntFaces_
private

number of internal faces

Definition at line 58 of file surfaceMorpherCells.H.

◆ boundaryVertex_

boolList boundaryVertex_
private

◆ cellFlags_

List<direction> cellFlags_
private

◆ newBoundaryFaces_

VRWGraph newBoundaryFaces_
private

◆ newBoundaryOwners_

labelLongList newBoundaryOwners_
private

◆ newBoundaryPatches_

labelLongList newBoundaryPatches_
private

The documentation for this class was generated from the following files: