91 #ifndef Foam_wallDistAddressing_H 92 #define Foam_wallDistAddressing_H 106 class wallPointAddressing;
114 public MeshObject<fvMesh, UpdateableMeshObject, wallDistAddressing>,
208 const bool correctWalls =
true,
209 const label updateInterval = 1
216 const word& patchTypeName,
219 const bool correctWalls =
true,
220 const label updateInterval = 1
253 template<
class Container,
class Type>
257 template<
class VolField>
260 const Field<typename VolField::value_type>& patchFld,
268 template<
class VolField,
class TransformOp>
const labelList patchIDs_
Set of patch IDs.
const volScalarField & y() const noexcept
Return reference to cached distance-to-wall field. Unvisited.
labelList untransformedItems_
Indices of cells followed by boundary faces.
const bool correctWalls_
Do accurate distance calculation for near-wall cells.
wallDistAddressing(const wallDistAddressing &)=delete
No copy construct.
const labelUList & patchIDs() const noexcept
Return the patchIDs.
Wave propagation of information through grid. Every iteration information goes through one layer of c...
label getValues(const FaceCellWave< wallPointAddressing > &wave, const List< wallPointAddressing > &allCellInfo, const List< wallPointAddressing > &allFaceInfo, volScalarField &y) const
Extract FaceCellWave data.
void correct(volScalarField &y)
Extract nearest-patch distance data.
Collection of functions used in wall distance calculation.
void extract(const Field< typename VolField::value_type > &patchFld, VolField &fld) const
Take collected/distributed patch field and fill volField.
Templated abstract base-class for optional mesh objects used to automate their allocation to the mesh...
labelList untransformedSlots_
Corresponding slot in mapPtr distribution result.
tmp< Field< Type > > collectPatchFields(const Container &bfld) const
Collect patchFields from patchIDs into straight list.
autoPtr< mapDistribute > mapPtr_
Map to pull wall face info to cell or boundary face.
A class for handling words, derived from Foam::string.
labelList untransformedPatchStarts_
Start of patches. Start of untransformedPatchStarts_[0] is end.
virtual ~wallDistAddressing()
Destructor.
const label updateInterval_
Update wall distance every updateInterval_ steps.
virtual void updateMesh(const mapPolyMesh &)
Update the y-field when the mesh changes.
ClassName("wallDistAddressing")
Database for solution data, solver performance and other reduced data.
autoPtr< globalIndex > globalWallsPtr_
Number of wall faces.
const VolField & map(VolField &fld, const TransformOp &top=mapDistribute::transform()) const
Map nearest-patch information. Take wall patch values.
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< ' ';}gmvFile<< nl;for(const word &name :lagrangianScalarNames){ IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
const word patchTypeName_
Name for the patch set, e.g. "wall".
labelList transformedPatchStarts_
volScalarField y_
Distance-to-wall field.
Mesh data needed to do the Finite Volume discretisation.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
void operator=(const wallDistAddressing &)=delete
No copy assignment.
virtual bool movePoints()
Update the y-field when the mesh moves.
bool requireUpdate_
Flag to indicate whether the wall distance requires updating.
labelList transformedSlots_
const polyMesh & mesh() const
Access mesh.
void addItem(const label item, const labelPair &data, label &untransformi, label &transformi, labelPairList &transformedWallInfo)
Store nearest-data to cell or boundary face.
Variant of wallDist that uses meshWave and stores the addressing.
labelList transformedItems_