Go to the documentation of this file.
50 #ifndef FaceCellWave_H
51 #define FaceCellWave_H
78 template<
class Type,
class TrackingData =
int>
81 public FaceCellWaveName
153 const label neighbourFacei,
154 const Type& neighbourInfo,
164 const label neighbourCelli,
165 const Type& neighbourInfo,
175 const Type& neighbourInfo,
187 template<
class PatchType>
203 const label startFacei,
318 const bool handleCyclicAMI,
349 const TrackingData&
data()
const
376 void setFaceInfo(
const label facei,
const Type& faceInfo);
396 virtual label
iterate(
const label maxIter);
bool updateCell(const label celli, const label neighbourFacei, const Type &neighbourInfo, const scalar tol, Type &cellInfo)
Updates cellInfo with information from neighbour.
Forward declarations of the specialisations of Field<T> for scalar, vector and tensor.
static int dummyTrackData_
Default trackdata value to satisfy default template argument.
void handleExplicitConnections()
Merge data across explicitly provided local connections.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
void operator=(const FaceCellWave &)=delete
No copy assignment.
void enterDomain(const polyPatch &patch, const label nFaces, const labelUList &faceLabels, List< Type > &faceInfo) const
Handle leaving domain. Implementation referred to Type.
bool updateFace(const label facei, const label neighbourCelli, const Type &neighbourInfo, const scalar tol, Type &faceInfo)
Updates faceInfo with information from neighbour.
const bool hasCyclicPatches_
Contains cyclics.
const TrackingData & data() const
Additional data to be passed into container.
UList< Type > & allFaceInfo()
Access allFaceInfo.
DynamicList< taggedInfoType > changedBaffles_
UList< Type > & allCellInfo_
Information for all cells.
virtual label iterate(const label maxIter)
Iterate until no changes or maxIter reached.
bitSet changedCell_
Has cell changed.
Mesh consisting of general polyhedral cells.
DynamicList< label > changedCells_
label getChangedPatchFaces(const polyPatch &patch, const label startFacei, const label nFaces, labelList &changedPatchFaces, List< Type > &changedPatchFacesInfo) const
Extract info for single patch only.
void checkCyclic(const polyPatch &pPatch) const
Debugging: check info on both sides of cyclic.
void handleProcPatches()
Merge data from across processor boundaries.
static scalar propagationTol_
static const scalar geomTol_
label nUnvisitedFaces() const
Get number of unvisited faces.
bool hasPatch() const
Has cyclic patch?
const bool hasCyclicAMIPatches_
Contains cyclicAMI.
static scalar propagationTol()
Access to tolerance.
virtual label faceToCell()
Propagate from face to cell.
void setFaceInfo(const label facei, const Type &faceInfo)
Set single initial changed face.
label nUnvisitedCells() const
void handleCyclicPatches()
Merge data from across cyclics.
UList< Type > & allFaceInfo_
Information for all faces.
A patch is a list of labels that address the faces in the global face list.
std::pair< label, Type > taggedInfoType
Information tagged with a source or destination id.
TemplateName(blendedSchemeBase)
FaceCellWave(const FaceCellWave &)=delete
No copy construct.
void handleAMICyclicPatches()
Merge data from across AMI cyclics.
const labelPairList explicitConnections_
Optional boundary faces that information should travel through.
virtual label cellToFace()
Propagate from cell to face.
TrackingData & td_
Additional data to be passed into container.
const polyMesh & mesh_
Reference to mesh.
label nEvals_
Number of evaluations.
Wave propagation of information through grid. Every iteration information goes through one layer of c...
UList< Type > & allCellInfo()
Access allCellInfo.
bitSet changedFace_
Has face changed.
Holds information regarding type of cell. Used in inside/outside determination in cellClassification.
const polyMesh & mesh() const
Access mesh.
void transform(const tensorField &rotTensor, const label nFaces, List< Type > &faceInfo)
Apply transformation to Type.
DynamicList< label > changedFaces_
List of changed faces.
const std::string patch
OpenFOAM patch number as a std::string.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
static void setPropagationTol(const scalar tol)
Change tolerance.
void mergeFaceInfo(const polyPatch &patch, const label nFaces, const labelUList &changedFaces, const List< Type > &changedFacesInfo)
Merge received patch data into global data.
label nUnvisitedCells_
Number of unvisited cells/faces.
static void offset(const polyPatch &patch, const label off, const label nFaces, labelList &faces)
Offset face labels by constant value.
void leaveDomain(const polyPatch &patch, const label nFaces, const labelUList &faceLabels, List< Type > &faceInfo) const
Handle leaving domain. Implementation referred to Type.
virtual ~FaceCellWave()=default
Destructor.