47 #ifndef FaceCellWave_H 48 #define FaceCellWave_H 76 template<
class Type,
class TrackingData =
int>
79 public FaceCellWaveName
132 const label neighbourFacei,
133 const Type& neighbourInfo,
143 const label neighbourCelli,
144 const Type& neighbourInfo,
154 const Type& neighbourInfo,
166 template<
class PatchType>
182 const label startFacei,
268 propagationTol_ = tol;
281 TrackingData& td = dummyTrackData_
295 TrackingData& td = dummyTrackData_
306 const bool handleCyclicAMI,
312 TrackingData& td = dummyTrackData_
341 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.
TemplateName(blendedSchemeBase)
const bool hasCyclicAMIPatches_
Contains cyclicAMI.
void handleExplicitConnections()
Merge data across explicitly provided local connections (usually.
dimensionSet trans(const dimensionSet &)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
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.
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...
FaceCellWave(const polyMesh &, UList< Type > &allFaceInfo, UList< Type > &allCellInfo, TrackingData &td=dummyTrackData_)
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.
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.
void enterDomain(const polyPatch &patch, const label nFaces, const labelList &faceLabels, List< Type > &faceInfo) const
Handle leaving domain. Implementation referred to Type.
bool hasPatch() const
Has cyclic patch?
void transform(const tensor &rotTensor, const label nFaces, List< Type > &faceInfo)
Apply transformation to Type.
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.
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/faces.
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_
static int dummyTrackData_
Used as default trackdata value to satisfy default template.
void leaveDomain(const polyPatch &patch, const label nFaces, const labelList &faceLabels, List< Type > &faceInfo) const
Handle leaving domain. Implementation referred to Type.
A patch is a list of labels that address the faces in the global face list.
static void offset(const polyPatch &patch, const label off, const label nFaces, labelList &faces)
Offset face labels by constant value.
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)