47 #ifndef FvFaceCellWave_H 48 #define FvFaceCellWave_H 74 template<
class Type,
class TrackingData =
int>
77 public FvFaceCellWaveName
149 const Type& neighbourInfo,
159 const label neighbourCelli,
160 const Type& neighbourInfo,
170 const Type& neighbourInfo,
182 template<
class PatchType>
241 propagationTol_ = tol;
245 template<
class ListList>
249 template<
class ListList,
class Value>
263 TrackingData& td = defaultTrackingData_
278 TrackingData& td = defaultTrackingData_
313 const TrackingData&
data()
const
Wave propagation of information through grid. Every iteration information goes through one layer of c...
List< Type > & cellInfo()
Access cellInfo.
List< PackedBoolList > patchFaceChanged_
Has patch face changed?
static const scalar geomTol_
...
const TrackingData & data() const
Additional data to be passed into container.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
static scalar propagationTol()
Access to tolerance.
Holds information regarding type of cell. Used in inside/outside determination in cellClassification...
static labelList listListSizes(const ListList &ll)
...
bool updateCell(const label celli, const labelPair &neighbourPatchAndFacei, const Type &neighbourInfo, const scalar tol, Type &cellInfo)
Updates cellInfo with information from neighbour. Updates all.
static int defaultTrackingData_
Default tracking data to go with default template argument.
void handleCyclicAMIPatches()
Merge data from across AMI cyclics.
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.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
An ordered pair of two objects of type <T> with first() and second() elements.
TrackingData & td_
Additional data to be passed into container.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
const fvMesh & mesh_
Reference to mesh.
List< Type > & cellInfo_
Information for all cells.
TemplateName(FvFaceCellWave)
bool hasPatch() const
Has cyclic patch?
DynamicList< label > changedCells_
List of changed cells.
List< List< Type > > & patchFaceInfo()
Access patchFaceInfo.
void handleCyclicPatches()
Merge data from across cyclics.
label getChangedPatchFaces(const fvPatch &patch, labelList &changedPatchFaces, List< Type > &changedPatchFacesInfo) const
Extract info for single patch only.
List< Type > & internalFaceInfo()
Access internalFaceInfo.
void setFaceInfo(const List< labelPair > &changedPatchAndFaces, const List< Type > &changedFacesInfo)
Set initial changed faces.
static ListList sizesListList(const labelList &s, const Value &value)
...
void handleProcPatches()
Merge data from across processor boundaries.
bool updateFace(const labelPair &patchAndFacei, const label neighbourCelli, const Type &neighbourInfo, const scalar tol, Type &faceInfo)
Updates faceInfo with information from neighbour. Updates all.
FvFaceCellWave(const fvMesh &mesh, List< Type > &internalFaceInfo, List< List< Type >> &patchFaceInfo, List< Type > &cellInfo, TrackingData &td=defaultTrackingData_)
List< List< Type > > & patchFaceInfo_
Information for patch faces.
void mergeFaceInfo(const fvPatch &patch, const label nFaces, const labelList &, const List< Type > &)
Merge received patch data into global data.
const bool hasCyclicPatches_
Contains cyclics.
virtual label cellToFace()
Propagate from cell to face. Returns total number of faces.
static void setPropagationTol(const scalar tol)
Change tolerance.
const bool hasCyclicAMIPatches_
Contains cyclicAMI.
void transform(const fvPatch &patch, const label nFaces, const labelList &patchFaces, const transformer &transform, List< Type > &faceInfo)
Transform across an interface.
Mesh data needed to do the Finite Volume discretisation.
DynamicList< labelPair > changedPatchAndFaces_
List of changed patch and faces.
const Type & faceInfo(const labelPair &patchAndFacei) const
...
virtual label faceToCell()
Propagate from face to cell. Returns total number of cells.
const fvMesh & mesh() const
Access mesh.
void checkCyclic(const fvPatch &patch) const
Debugging: check info on both sides of cyclic.
List< Type > & internalFaceInfo_
Information for internal faces.
void operator=(const FvFaceCellWave &)=delete
Disallow default bitwise assignment.
PackedBoolList internalFaceChanged_
Has internal face changed?
virtual label iterate(const label maxIter)
Iterate until no changes or maxIter reached. Returns actual.
PackedBoolList cellChanged_
Has cell changed?
virtual ~FvFaceCellWave()
Destructor.
static scalar propagationTol_
...
bool faceChanged(const labelPair &patchAndFacei) const
...