51 cellLevelPtr_.reset(
new Type(rio));
62 pointLevelPtr_.reset(
new Type(rio));
73 level0EdgePtr_.reset(
new Type(rio));
84 refHistoryPtr_.reset(
new Type(rio));
98 if (
data.cellLevelPtr_)
111 if (
data.pointLevelPtr_)
124 if (
data.level0EdgePtr_)
133 if (
data.refHistoryPtr_)
137 refHistoryPtr_ =
data.refHistoryPtr_().
clone(rio, cellMap);
154 if (procDatas[0].cellLevelPtr_)
159 auto& cellLevel = *cellLevelPtr_;
163 const labelList& procCellLevel = procDatas[procI].cellLevelPtr_();
171 if (procDatas[0].pointLevelPtr_)
176 auto& pointLevel = *pointLevelPtr_;
180 const labelList& procPointLevel = procDatas[procI].pointLevelPtr_();
181 labelUIndList(pointLevel, pointMaps[procI]) = procPointLevel;
188 if (procDatas[0].level0EdgePtr_)
197 procDatas[0].level0EdgePtr_()
205 if (procDatas[0].refHistoryPtr_)
212 procRefs.
set(i, &procDatas[i].refHistoryPtr_());
241 if (hasCellLevel && !cellLevelPtr_)
252 if (hasPointLevel && !pointLevelPtr_)
284 if (hasHistory && !refHistoryPtr_)
298 (cellLevelPtr_ && cellLevelPtr_().size() != map.
nOldCells())
299 || (pointLevelPtr_ && pointLevelPtr_().size() != map.
nOldPoints())
302 cellLevelPtr_.clear();
303 pointLevelPtr_.clear();
304 level0EdgePtr_.clear();
305 refHistoryPtr_.clear();
318 label oldCelli = cellMap[newCelli];
322 newCellLevel[newCelli] = 0;
326 newCellLevel[newCelli] = cellLevel[oldCelli];
335 labelList& pointLevel = pointLevelPtr_();
348 newPointLevel[
newPointi] = pointLevel[oldPointi];
356 if (refHistoryPtr_ && refHistoryPtr_().active())
358 refHistoryPtr_().updateMesh(map);
377 if (refHistoryPtr_ && refHistoryPtr_().active())
379 refHistoryPtr_().distribute(map);
389 ok = ok && cellLevelPtr_().write();
393 ok = ok && pointLevelPtr_().write();
397 ok = ok && level0EdgePtr_().write();
401 ok = ok && refHistoryPtr_().write();
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const word & name() const noexcept
Return the object name.
readOption readOpt() const noexcept
The read option.
bool typeHeaderOk(const bool checkType=true, const bool search=true, const bool verbose=true)
Read header (uses typeFilePath to find file) and check its info.
const objectRegistry & db() const noexcept
Return the local objectRegistry.
void transfer(List< T > &list)
static void broadcast(Type &value, const label comm=UPstream::worldComm)
void size(const label n)
Older name for setAddressableSize.
A list of pointers to objects of type <T>, without allocation/deallocation management of the pointers...
const T * set(const label i) const
label size() const noexcept
The number of elements in the list.
const word & name() const
Database for solution data, solver performance and other reduced data.
autoPtr< dictionary > clone() const
Construct and return clone.
void sync()
Do all: synchronise all IOFields and objectRegistry.
Various for reading/decomposing/reconstructing/distributing refinement data.
void distribute(const mapDistributePolyMesh &)
In-place distribute.
~hexRef8Data()
Destructor.
Class containing mesh-to-mesh mapping information after a mesh distribution where we send parts of me...
const mapDistribute & cellMap() const noexcept
Cell distribute map.
const mapDistribute & pointMap() const noexcept
Point distribute map.
void distribute(List< T > &fld, const bool dummyTransform=true, const int tag=UPstream::msgType()) const
Distribute data using default commsType.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
label nOldCells() const
Number of old cells.
const polyMesh & mesh() const
Return polyMesh.
const labelList & cellMap() const
Old cell map.
const labelList & pointMap() const
Old point map.
label nOldPoints() const
Number of old points.
void updateMesh()
Update for new mesh topology.
Mesh consisting of general polyhedral cells.
const fileName & facesInstance() const
Return the current instance directory for faces.
label nPoints() const noexcept
Number of mesh points.
label nCells() const noexcept
Number of mesh cells.
All refinement history. Used in unrefinement.
splitCell * master() const
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, false)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
List< label > labelList
A List of labels.
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
UniformDimensionedField< scalar > uniformDimensionedScalarField
messageStream Info
Information stream (stdout output on master, null elsewhere)
Ostream & endl(Ostream &os)
Add newline and flush stream.
IOList< label > labelIOList
Label container classes.
static constexpr const zero Zero
Global zero (0)
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
T returnReduce(const T &value, const BinaryOp &bop, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
Reduce (copy) and return value.
UIndirectList< label > labelUIndList
UIndirectList of labels.
#define forAll(list, i)
Loop across all elements in list.