39 inline bool contiguous<LayerInfoData<Pair<vector>>>()
51 if (isExtrudedRegion_)
53 if (!bottomFaceAreasPtr_.valid())
67 initialFaces1[ppFacei] = pp.
start() + ppFacei;
68 initialFaceInfo1[ppFacei] =
layerInfo(0, -1);
76 const label nIterations1 =
80 label nInitialFaces2 = 0;
91 && faceInfo1[facei].faceLayer() == nIterations1
101 label initialFace2i = 0;
112 && faceInfo1[facei].faceLayer() == nIterations1
115 initialFaces2[initialFace2i] = facei;
116 initialFaceInfo2[initialFace2i] =
152 faceInfo2[pp.
start() + ppFacei];
159 <<
"Mesh \"" << mesh.
name()
160 <<
"\" is not layered from the extruded patch "
164 bottomFaceAreasPtr_()[ppFacei] = - info.
data().first();
165 bottomFaceCentresPtr_()[ppFacei] = info.
data().second();
169 return bottomFaceAreasPtr_();
179 if (isExtrudedRegion_)
181 if (!bottomFaceCentresPtr_.valid())
186 return bottomFaceCentresPtr_();
196 if (isExtrudedRegion_)
198 if (!bottomLocalPointsPtr_.valid())
212 initialPoints1[ppPointi] = pp.
meshPoints()[ppPointi];
226 const label nIterations1 =
240 forAll(pointInfo1, pointi)
243 pointInfo1[pointi].valid(wave1.
data())
244 ? pointInfo1[pointi].pointLayer()
251 label nInitialPoints2 = 0;
252 forAll(pointInfo1, pointi)
257 && pointInfo1[pointi].pointLayer() == nIterations1
265 labelList initialPoints2(nInitialPoints2);
267 initialPointInfo2(nInitialPoints2);
268 label initialPoint2i = 0;
269 forAll(pointInfo1, pointi)
274 && pointInfo1[pointi].pointLayer() == nIterations1
277 initialPoints2[initialPoint2i] = pointi;
278 initialPointInfo2[initialPoint2i] =
309 <<
"Mesh \"" << mesh.
name()
310 <<
"\" is not layered from the extruded patch "
314 bottomLocalPointsPtr_()[ppPointi] = info.
data();
331 bottomLocalPointsPtr_()[ppPointi]
338 return bottomLocalPointsPtr_();
350 isExtrudedRegion_(false)
357 const word& nbrRegionName,
358 const word& nbrPatchName,
359 const bool isExtrudedRegion,
364 isExtrudedRegion_(isExtrudedRegion)
372 const bool defaultTransformIsNone
376 isExtrudedRegion_(
dict.lookup<bool>(
"isExtrudedRegion"))
387 isExtrudedRegion_(mepb.isExtrudedRegion_)
404 bottomFaceCentresPtr_.clear();
412 writeEntry(os,
"isExtrudedRegion", isExtrudedRegion_);
#define forAll(list, i)
Loop across all elements in list.
static pointMesh & New(const word &name, const polyMesh &mesh)
Construct and return the named DemandDrivenMeshObject.
Wave propagation of information through grid. Every iteration information goes through one layer of c...
const TrackingData & data() const
Additional data to be passed into container.
void setFaceInfo(const labelList &changedFaces, const List< Type > &changedFacesInfo)
Set initial changed faces.
virtual label iterate(const label maxIter)
Iterate until no changes or maxIter reached. Returns actual.
static tmp< GeometricField< Type, pointPatchField, pointMesh > > New(const word &name, const Internal &, const PtrList< pointPatchField< Type >> &, const HashPtrTable< Source > &=HashPtrTable< Source >())
Return a temporary field constructed from name,.
const word & name() const
Return name.
Class to be used with FaceCellWave which enumerates layers of cells and transports data through those...
const Type & data() const
Return the data.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
An ordered pair of two objects of type <T> with first() and second() elements.
Class to be used with PointEdgeWave which enumerates layers of points.
const Type & data() const
Return the data.
Wave propagation of information through grid. Every iteration information goes through one layer of e...
const TrackingData & data() const
Additional data to be passed into container.
void setPointInfo(const labelList &changedPoints, const List< Type > &changedPointsInfo)
Copy initial data into allPointInfo_.
label iterate(const label maxIter)
Iterate until no changes or maxIter reached. Returns actual.
label nPoints() const
Return number of points supporting patch faces.
const labelList & meshPoints() const
Return labelList of mesh points in patch. They are constructed.
const Field< PointType > & localPoints() const
Return pointField of points in patch.
label size() const
Return the number of elements in the UList.
A list of keyword definitions, which are a keyword followed by any number of values (e....
label nTotalPoints() const
Return total number of points in decomposed mesh. Not.
label nTotalCells() const
Return total number of cells in decomposed mesh.
Class to be used with FaceCellWave which enumerates layers of cells.
bool valid(TrackingData &td) const
Check whether the layerInfo has been changed at all or still.
Engine which provides mapping between two patches and which offsets the geometry to account for the e...
mappedExtrudedPatchBase(const polyPatch &)
Construct from patch.
virtual void write(Ostream &) const
Write the polyPatch data as a dictionary.
virtual tmp< vectorField > patchFaceAreas() const
Get the face-areas for the patch.
virtual tmp< pointField > patchLocalPoints() const
Get the local points for the patch.
virtual ~mappedExtrudedPatchBase()
Destructor.
virtual tmp< pointField > patchFaceCentres() const
Get the face-centres for the patch.
virtual void clearOut()
Clear out data on mesh change.
const polyPatch & patch_
Patch to map to.
Engine and base class for poly patches which provides interpolative mapping between two globally conf...
virtual void write(Ostream &) const
Write as a dictionary.
virtual tmp< vectorField > patchFaceAreas() const
Get the face-areas for this patch.
virtual tmp< pointField > patchLocalPoints() const
Get the local points for this patch.
virtual tmp< pointField > patchFaceCentres() const
Get the face-centres for this patch.
virtual void clearOut()
Clear out data on mesh change.
A zero-sized class without any storage. Used, for example, in HashSet.
const word & name() const
Return name.
Class to be used with PointEdgeWave which enumerates layers of points.
bool valid(TrackingData &td) const
Check whether info has been changed at all or.
const polyMesh & mesh() const
Return the mesh reference.
Mesh consisting of general polyhedral cells.
const globalMeshData & globalData() const
Return parallel info.
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
virtual const pointField & points() const
Return raw points.
A patch is a list of labels that address the faces in the global face list.
label start() const
Return start label of this patch in the polyMesh face list.
const polyBoundaryMesh & boundaryMesh() const
Return boundaryMesh reference.
const vectorField & faceCentres() const
label nInternalFaces() const
const vectorField & faceAreas() const
virtual bool write(const bool write=true) const
Write using setting from DB.
A class for managing temporary objects.
A class for handling words, derived from string.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
bool valid(const PtrList< ModelType > &l)
errorManipArg< error, int > exit(error &err, const int errNo=1)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const dimensionSet dimless
const dimensionSet dimLength
vectorField pointField
pointField is a vectorField.
void writeEntry(Ostream &os, const HashTable< T, Key, Hash > &ht)
dimensionSet transform(const dimensionSet &)
defineTypeNameAndDebug(combustionModel, 0)
word typedName(Name name)
Return the name of the object within the given type.
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.
Field< vector > vectorField
Specialisation of Field<T> for vector.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.