47 #ifndef FvFaceCellWave_H
48 #define FvFaceCellWave_H
74 template<
class Type,
class TrackingData =
int>
77 public FvFaceCellWaveName
146 const Type& neighbourInfo,
156 const label neighbourCelli,
157 const Type& neighbourInfo,
167 const Type& neighbourInfo,
179 template<
class PatchType>
239 template<
class ListList>
243 template<
class ListList,
class Value>
307 const TrackingData&
data()
const
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
Wave propagation of information through grid. Every iteration information goes through one layer of c...
DynamicList< labelPair > changedPatchAndFaces_
List of changed patch and faces.
PackedBoolList cellChanged_
Has cell changed?
List< List< Type > > & patchFaceInfo_
Information for patch faces.
DynamicList< label > changedCells_
List of changed cells.
void setFaceInfo(const List< labelPair > &changedPatchAndFaces, const List< Type > &changedFacesInfo)
Set initial changed faces.
void mergeFaceInfo(const fvPatch &patch, const label nFaces, const labelList &, const List< Type > &)
Merge received patch data into global data.
const fvMesh & mesh_
Reference to mesh.
label getChangedPatchFaces(const fvPatch &patch, labelList &changedPatchFaces, List< Type > &changedPatchFacesInfo) const
Extract info for single patch only.
void handleProcPatches()
Merge data from across processor boundaries.
const TrackingData & data() const
Additional data to be passed into container.
static labelList listListSizes(const ListList &ll)
...
bool updateFace(const labelPair &patchAndFacei, const label neighbourCelli, const Type &neighbourInfo, const scalar tol, Type &faceInfo)
Updates faceInfo with information from neighbour. Updates all.
List< PackedBoolList > patchFaceChanged_
Has patch face changed?
const fvMesh & mesh() const
Access mesh.
static scalar propagationTol()
Access to tolerance.
static scalar propagationTol_
...
PackedBoolList internalFaceChanged_
Has internal face changed?
bool hasPatch() const
Has cyclic patch?
TrackingData & td_
Additional data to be passed into container.
void checkCyclic(const fvPatch &patch) const
Debugging: check info on both sides of cyclic.
const Type & faceInfo(const labelPair &patchAndFacei) const
...
static const scalar geomTol_
...
bool faceChanged(const labelPair &patchAndFacei) const
...
static int defaultTrackingData_
Default tracking data to go with default template argument.
void transform(const fvPatch &patch, const label nFaces, const labelList &patchFaces, const transformer &transform, List< Type > &faceInfo)
Transform across an interface.
virtual label iterate(const label maxIter)
Iterate until no changes or maxIter reached. Returns actual.
void handleCyclicPatches()
Merge data from across cyclics.
FvFaceCellWave(const fvMesh &mesh, List< Type > &internalFaceInfo, List< List< Type >> &patchFaceInfo, List< Type > &cellInfo, TrackingData &td=defaultTrackingData_)
static ListList sizesListList(const labelList &s, const Value &value)
...
bool updateCell(const label celli, const labelPair &neighbourPatchAndFacei, const Type &neighbourInfo, const scalar tol, Type &cellInfo)
Updates cellInfo with information from neighbour. Updates all.
List< Type > & cellInfo()
Access cellInfo.
virtual label faceToCell()
Propagate from face to cell. Returns total number of cells.
List< Type > & internalFaceInfo_
Information for internal faces.
List< List< Type > > & patchFaceInfo()
Access patchFaceInfo.
virtual ~FvFaceCellWave()
Destructor.
List< Type > & cellInfo_
Information for all cells.
virtual label cellToFace()
Propagate from cell to face. Returns total number of faces.
List< Type > & internalFaceInfo()
Access internalFaceInfo.
void operator=(const FvFaceCellWave &)=delete
Disallow default bitwise assignment.
static void setPropagationTol(const scalar tol)
Change tolerance.
const bool hasCyclicPatches_
Contains cyclics.
Holds information regarding type of cell. Used in inside/outside determination in cellClassification.
Mesh data needed to do the Finite Volume discretisation.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.name(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
TemplateName(FvFaceCellWave)