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

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

polyMeshGenmesh_
 reference to the mesh More...
 
wordList patchNames_
 new boundary faces More...
 
wordList patchTypes_
 
VRWGraph newBoundaryFaces_
 
labelLongList newBoundaryPatches_
 
VRWGraphList facesOfNewCells_
 

Detailed Description

Definition at line 48 of file decomposeCells.H.

Constructor & Destructor Documentation

◆ decomposeCells() [1/2]

decomposeCells ( const decomposeCells )
private

copy constructor

◆ decomposeCells() [2/2]

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_.

Here is the call graph for this function:

◆ ~decomposeCells()

Destructor.

Definition at line 53 of file decomposeCells.C.

Member Function Documentation

◆ checkFaceConnections()

void checkFaceConnections ( const boolList decomposeCell)
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().

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

◆ findAddressingForCell()

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

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

◆ findTopVertex()

label findTopVertex ( const label  cellI,
const DynList< label, 32 > &  vrt,
const DynList< edge, 64 > &  edges,
const DynList< DynList< label, 2 >, 64 > &  edgeFaces 
)
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().

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

◆ decomposeCellIntoPyramids()

void decomposeCellIntoPyramids ( const label  cellI)
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().

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

◆ createPointsAndCellFaces()

void createPointsAndCellFaces ( const boolList decomposeCell)
private

Definition at line 154 of file decomposeCellsDecomposition.C.

References VRWGraphList::clear(), decomposeCells::decomposeCellIntoPyramids(), decomposeCells::facesOfNewCells_, and forAll.

Referenced by decomposeCells::decomposeMesh().

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

◆ storeBoundaryFaces()

void storeBoundaryFaces ( const boolList decomposeCell)
private

◆ removeDecomposedCells()

void removeDecomposedCells ( const boolList decomposeCell)
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().

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

◆ addNewCells()

void addNewCells ( )
private

◆ operator=()

void operator= ( const decomposeCells )
private

disallows bitwise construct

◆ decomposeMesh()

void decomposeMesh ( const boolList decomposeCell)

Field Documentation

◆ mesh_

polyMeshGen& mesh_
private

◆ patchNames_

wordList patchNames_
private

new boundary faces

Definition at line 55 of file decomposeCells.H.

Referenced by decomposeCells::addNewCells(), and decomposeCells::decomposeCells().

◆ patchTypes_

wordList patchTypes_
private

Definition at line 56 of file decomposeCells.H.

Referenced by decomposeCells::addNewCells(), and decomposeCells::decomposeCells().

◆ newBoundaryFaces_

VRWGraph newBoundaryFaces_
private

◆ newBoundaryPatches_

labelLongList newBoundaryPatches_
private

◆ facesOfNewCells_

VRWGraphList facesOfNewCells_
private

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