OppositeFaceCellWave< Type, TrackingData > Class Template Reference

Version of FaceCellWave that walks through prismatic cells only. More...

Inheritance diagram for OppositeFaceCellWave< Type, TrackingData >:
Collaboration diagram for OppositeFaceCellWave< Type, TrackingData >:

Public Member Functions

 OppositeFaceCellWave (const polyMesh &, const labelList &initialChangedFaces, const List< Type > &changedFacesInfo, UList< Type > &allFaceInfo, UList< Type > &allCellInfo, const label maxIter, TrackingData &td=FaceCellWave< Type, TrackingData >::defaultTrackingData_)
 Construct from mesh and list of changed faces with the Type. More...
 
virtual ~OppositeFaceCellWave ()
 Destructor. More...
 
virtual label faceToCell ()
 Propagate from face to cell. Returns total number of cells. More...
 
virtual label cellToFace ()
 Propagate from cell to face. Returns total number of faces. More...
 
- Public Member Functions inherited from FaceCellWave< Type, int >
 FaceCellWave (const polyMesh &, UList< Type > &allFaceInfo, UList< Type > &allCellInfo, int &td=defaultTrackingData_)
 
 FaceCellWave (const polyMesh &, const labelList &initialChangedFaces, const List< Type > &changedFacesInfo, UList< Type > &allFaceInfo, UList< Type > &allCellInfo, const label maxIter, int &td=defaultTrackingData_)
 Construct from mesh and list of changed faces with the Type. More...
 
 FaceCellWave (const polyMesh &, const labelPairList &explicitConnections, const labelList &initialChangedFaces, const List< Type > &changedFacesInfo, UList< Type > &allFaceInfo, UList< Type > &allCellInfo, const label maxIter, int &td=defaultTrackingData_)
 Construct from mesh and explicitly connected boundary faces. More...
 
 FaceCellWave (const FaceCellWave &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~FaceCellWave ()
 Destructor. More...
 
UList< Type > & allFaceInfo ()
 Access allFaceInfo. More...
 
UList< Type > & allCellInfo ()
 Access allCellInfo. More...
 
const int & data () const
 Additional data to be passed into container. More...
 
int & data ()
 Additional data to be passed into container. More...
 
const polyMeshmesh () const
 Access mesh. More...
 
label getUnsetCells () const
 Get number of unvisited cells, i.e. cells that were not (yet) More...
 
label getUnsetFaces () const
 Get number of unvisited faces. More...
 
void setFaceInfo (const labelList &changedFaces, const List< Type > &changedFacesInfo)
 Set initial changed faces. More...
 
virtual label iterate (const label maxIter)
 Iterate until no changes or maxIter reached. Returns actual. More...
 
void operator= (const FaceCellWave &)=delete
 Disallow default bitwise assignment. More...
 

Protected Member Functions

void opposingFaceLabels (const label celli, const label facei, DynamicList< label > &) const
 Determine 'opposite' faces (= faces not sharing a vertex) on cell. More...
 
- Protected Member Functions inherited from FaceCellWave< Type, int >
bool updateCell (const label celli, const label neighbourFacei, const Type &neighbourInfo, const scalar tol, Type &cellInfo)
 Updates cellInfo with information from neighbour. Updates all. More...
 
bool updateFace (const label facei, const label neighbourCelli, const Type &neighbourInfo, const scalar tol, Type &faceInfo)
 Updates faceInfo with information from neighbour. Updates all. More...
 
bool updateFace (const label facei, const Type &neighbourInfo, const scalar tol, Type &faceInfo)
 Updates faceInfo with information from same face. Updates all. More...
 
void checkCyclic (const polyPatch &pPatch) const
 Debugging: check info on both sides of cyclic. More...
 
bool hasPatch () const
 Has cyclic patch? More...
 
void mergeFaceInfo (const polyPatch &patch, const label nFaces, const labelList &, const List< Type > &)
 Merge received patch data into global data. More...
 
label getChangedPatchFaces (const polyPatch &patch, const label startFacei, const label nFaces, labelList &changedPatchFaces, List< Type > &changedPatchFacesInfo) const
 Extract info for single patch only. More...
 
void transform (const polyPatch &patch, const label nFaces, const labelList &faceLabels, const transformer &transform, List< Type > &faceInfo)
 Transform across an interface. Implementation referred to Type. More...
 
void handleProcPatches ()
 Merge data from across processor boundaries. More...
 
void handleCyclicPatches ()
 Merge data from across cyclics. More...
 
void handleExplicitConnections ()
 Merge data across explicitly provided local connections (usually. More...
 

Protected Attributes

DynamicList< labelchangedOppositeFaces_
 For every entry in changedCells (i.e. the cell front) gives. More...
 
- Protected Attributes inherited from FaceCellWave< Type, int >
const polyMeshmesh_
 Reference to mesh. More...
 
const labelPairList explicitConnections_
 Optional boundary faces that information should travel through. More...
 
UList< Type > & allFaceInfo_
 Information for all faces. More...
 
UList< Type > & allCellInfo_
 Information for all cells. More...
 
int & td_
 Additional data to be passed into container. More...
 
PackedBoolList changedFace_
 Has face changed. More...
 
DynamicList< labelchangedFaces_
 List of changed faces. More...
 
PackedBoolList changedCell_
 Has cell changed. More...
 
DynamicList< labelchangedCells_
 
const bool hasCyclicPatches_
 Contains cyclics. More...
 
label nEvals_
 Number of evaluations. More...
 
label nUnvisitedCells_
 Number of unvisited cells. More...
 
label nUnvisitedFaces_
 Number of unvisited faces. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from FaceCellWave< Type, int >
static scalar propagationTol ()
 Access to tolerance. More...
 
static void setPropagationTol (const scalar tol)
 Change tolerance. More...
 
- Static Public Attributes inherited from FaceCellWave< Type, int >
static int defaultTrackingData_
 Default tracking data to go with default template argument. More...
 
- Static Protected Attributes inherited from FaceCellWave< Type, int >
static const scalar geomTol_
 ... More...
 
static scalar propagationTol_
 ... More...
 

Detailed Description

template<class Type, class TrackingData = int>
class Foam::OppositeFaceCellWave< Type, TrackingData >

Version of FaceCellWave that walks through prismatic cells only.

Used to determine mesh structure. In the front walking routines (faceToCell and faceToCell) it

  • walks across prismatic cells only
  • and only to a single opposite face

Notes: A cell with a split faces will be marked but not walked through (since there is no single opposite face.

Source files

Definition at line 65 of file OppositeFaceCellWave.H.

Constructor & Destructor Documentation

◆ OppositeFaceCellWave()

OppositeFaceCellWave ( const polyMesh mesh,
const labelList initialChangedFaces,
const List< Type > &  changedFacesInfo,
UList< Type > &  allFaceInfo,
UList< Type > &  allCellInfo,
const label  maxIter,
TrackingData &  td = FaceCellWave<Type, TrackingData>::defaultTrackingData_ 
)

Construct from mesh and list of changed faces with the Type.

for these faces. Iterates until nothing changes or maxIter reached. (maxIter can be 0)

Definition at line 97 of file OppositeFaceCellWave.C.

References FaceCellWave< Type, int >::changedCells_, FaceCellWave< Type, int >::changedFaces_, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, FaceCellWave< Type, int >::iterate(), and List< T >::size().

Here is the call graph for this function:

◆ ~OppositeFaceCellWave()

virtual ~OppositeFaceCellWave ( )
inlinevirtual

Destructor.

Definition at line 111 of file OppositeFaceCellWave.H.

Member Function Documentation

◆ opposingFaceLabels()

void opposingFaceLabels ( const label  celli,
const label  facei,
DynamicList< label > &  oppositeFaceLabels 
) const
protected

Determine 'opposite' faces (= faces not sharing a vertex) on cell.

Definition at line 32 of file OppositeFaceCellWave.C.

References DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::clear(), and forAll.

Here is the call graph for this function:

◆ faceToCell()

Propagate from face to cell. Returns total number of cells.

(over all processors) changed.

Reimplemented from FaceCellWave< Type, int >.

Definition at line 139 of file OppositeFaceCellWave.C.

References Foam::abort(), DynamicList< T, SizeInc, SizeMult, SizeDiv >::append(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, Foam::Pout, Foam::reduce(), and List< T >::size().

Here is the call graph for this function:

◆ cellToFace()

Propagate from cell to face. Returns total number of faces.

(over all processors) changed. (Faces on processorpatches are counted double)

Reimplemented from FaceCellWave< Type, int >.

Definition at line 256 of file OppositeFaceCellWave.C.

References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, UPstream::parRun(), Foam::Pout, and Foam::reduce().

Here is the call graph for this function:

Member Data Documentation

◆ changedOppositeFaces_

DynamicList<label> changedOppositeFaces_
protected

For every entry in changedCells (i.e. the cell front) gives.

the face that it needs to transfer to

Definition at line 76 of file OppositeFaceCellWave.H.


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