47 #ifndef FaceCellWave_H 48 #define FaceCellWave_H 76 template<
class Type,
class TrackingData =
int>
79 public FaceCellWaveName
144 const label neighbourFacei,
145 const Type& neighbourInfo,
155 const label neighbourCelli,
156 const Type& neighbourInfo,
166 const Type& neighbourInfo,
178 template<
class PatchType>
194 const label startFacei,
243 propagationTol_ = tol;
256 TrackingData& td = defaultTrackingData_
270 TrackingData& td = defaultTrackingData_
281 const bool handleCyclicAMI,
287 TrackingData& td = defaultTrackingData_
316 const TrackingData&
data()
const void handleAMICyclicPatches()
Merge data from across AMI cyclics.
void mergeFaceInfo(const polyPatch &patch, const label nFaces, const labelList &, const List< Type > &)
Merge received patch data into global data.
const bool hasCyclicAMIPatches_
Contains cyclicAMI.
void handleExplicitConnections()
Merge data across explicitly provided local connections (usually.
UList< Type > & allFaceInfo_
Information for all faces.
const polyMesh & mesh_
Reference to mesh.
virtual label iterate(const label maxIter)
Iterate until no changes or maxIter reached. Returns actual.
PackedBoolList changedFace_
Has face changed.
void setFaceInfo(const labelList &changedFaces, const List< Type > &changedFacesInfo)
Set initial changed faces.
virtual ~FaceCellWave()
Destructor.
virtual label cellToFace()
Propagate from cell to face. Returns total number of faces.
const bool hasCyclicPatches_
Contains cyclics.
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.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
static scalar propagationTol()
Access to tolerance.
Wave propagation of information through grid. Every iteration information goes through one layer of c...
DynamicList< label > changedCells_
UList< Type > & allFaceInfo()
Access allFaceInfo.
label nEvals_
Number of evaluations.
Holds information regarding type of cell. Used in inside/outside determination in cellClassification...
const polyMesh & mesh() const
Access mesh.
UList< Type > & allCellInfo_
Information for all cells.
void handleProcPatches()
Merge data from across processor boundaries.
label nUnvisitedFaces_
Number of unvisited faces.
void operator=(const FaceCellWave &)=delete
Disallow default bitwise assignment.
PackedBoolList changedCell_
Has cell changed.
static const scalar geomTol_
...
label getUnsetFaces() const
Get number of unvisited faces.
Forward declarations of the specialisations of Field<T> for scalar, vector and tensor.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
bool hasPatch() const
Has cyclic patch?
TemplateName(FvFaceCellWave)
bool updateFace(const label facei, const label neighbourCelli, const Type &neighbourInfo, const scalar tol, Type &faceInfo)
Updates faceInfo with information from neighbour. Updates all.
bool updateCell(const label celli, const label neighbourFacei, const Type &neighbourInfo, const scalar tol, Type &cellInfo)
Updates cellInfo with information from neighbour. Updates all.
DynamicList< label > changedFaces_
List of changed faces.
static void setPropagationTol(const scalar tol)
Change tolerance.
FaceCellWave(const polyMesh &, UList< Type > &allFaceInfo, UList< Type > &allCellInfo, TrackingData &td=defaultTrackingData_)
static int defaultTrackingData_
Default tracking data to go with default template argument.
label getChangedPatchFaces(const polyPatch &patch, const label startFacei, const label nFaces, labelList &changedPatchFaces, List< Type > &changedPatchFacesInfo) const
Extract info for single patch only.
label nUnvisitedCells_
Number of unvisited cells.
const TrackingData & data() const
Additional data to be passed into container.
UList< Type > & allCellInfo()
Access allCellInfo.
void checkCyclic(const polyPatch &pPatch) const
Debugging: check info on both sides of cyclic.
void handleCyclicPatches()
Merge data from across cyclics.
Mesh consisting of general polyhedral cells.
static scalar propagationTol_
...
A patch is a list of labels that address the faces in the global face list.
const labelPairList explicitConnections_
Optional boundary faces that information should travel through.
TrackingData & td_
Additional data to be passed into container.
virtual label faceToCell()
Propagate from face to cell. Returns total number of cells.
label getUnsetCells() const
Get number of unvisited cells, i.e. cells that were not (yet)