69 tetBasePtIsPtr_->writeOpt(wOpt);
70 tetBasePtIsPtr_->instance() = inst;
80 fileName pointsInst(time().findInstance(meshDir(),
"points"));
81 fileName facesInst(time().findInstance(meshDir(),
"faces"));
86 Info<<
"Faces instance: old = " << facesInstance()
87 <<
" new = " << facesInst <<
nl
88 <<
"Points instance: old = " << pointsInstance()
89 <<
" new = " << pointsInst <<
endl;
92 if (facesInst != facesInstance())
104 setInstance(facesInst);
105 points_.instance() = pointsInst;
180 bool boundaryChanged =
false;
182 if (newBoundary.
size() != boundary_.size())
184 boundaryChanged =
true;
191 wordList oldTypes = boundary_.types();
192 wordList oldNames = boundary_.names();
198 oldTypes[patchi] != newTypes[patchi]
199 || oldNames[patchi] != newNames[patchi]
202 boundaryChanged =
true;
211 <<
"Number of patches has changed. This may have "
212 <<
"unexpected consequences. Proceed with care." <<
endl;
215 boundary_.setSize(newBoundary.
size());
217 forAll(newBoundary, patchi)
219 boundary_.set(patchi, newBoundary[patchi].clone(boundary_));
228 newBoundary[patchi].
name(),
229 newBoundary[patchi].size(),
230 newBoundary[patchi].start(),
233 newBoundary[patchi].physicalType(),
234 newBoundary[patchi].inGroups()
243 if (owner_.hasHeaderClass())
273 boundary_.updateMesh();
276 boundary_.calcGeometry();
299 label oldSize = pointZones_.size();
301 if (newPointZones.
size() <= pointZones_.size())
303 pointZones_.setSize(newPointZones.
size());
309 pointZones_[czI] = newPointZones[czI];
315 for (label czI = oldSize; czI < newPointZones.
size(); czI++)
317 pointZones_.set(czI, newPointZones[czI].clone(pointZones_));
336 oldSize = faceZones_.size();
338 if (newFaceZones.
size() <= faceZones_.size())
340 faceZones_.setSize(newFaceZones.
size());
346 faceZones_[fzI].resetAddressing
349 newFaceZones[fzI].flipMap()
354 faceZones_.setSize(newFaceZones.
size());
356 for (label fzI = oldSize; fzI < newFaceZones.
size(); fzI++)
358 faceZones_.set(fzI, newFaceZones[fzI].clone(faceZones_));
377 oldSize = cellZones_.size();
379 if (newCellZones.
size() <= cellZones_.size())
381 cellZones_.setSize(newCellZones.
size());
387 cellZones_[czI] = newCellZones[czI];
393 for (label czI = oldSize; czI < newCellZones.
size(); czI++)
395 cellZones_.set(czI, newCellZones[czI].clone(cellZones_));
399 tetBasePtIsPtr_ = readTetBasePtIs();
411 else if (pointsInst != pointsInstance())
437 updateGeomPoints(std::move(newPoints), newTetBasePtIsPtr);
A List of objects of type <T> with automated input and output using a compact storage....
A primitive field of type <T> with automated input and output.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const fileName & instance() const noexcept
Read access to instance path component.
writeOption
Enumeration defining the write options.
writeOption writeOpt() const noexcept
The write option.
void setSize(const label newLen)
Same as resize()
label size() const noexcept
The number of elements in the list.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A bounding box defined in terms of min/max extrema points.
A class for handling file names.
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
wordList types() const
Return a list of patch types.
wordList names() const
Return a list of patch names.
void setInstance(const fileName &instance, const IOobject::writeOption wOpt=IOobject::AUTO_WRITE)
Set the instance for mesh files.
readUpdateState
Enumeration defining the state of the mesh after a read update.
virtual readUpdateState readUpdate()
Update the mesh based on the mesh files saved in.
A patch is a list of labels that address the faces in the global face list.
#define WarningInFunction
Report a warning using Foam::Warning.
#define DebugInFunction
Report an information message using Foam::Info.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Ostream & endl(Ostream &os)
Add newline and flush stream.
vectorIOField pointIOField
pointIOField is a vectorIOField.
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.
CompactIOList< face, label > faceCompactIOList
constexpr char nl
The newline '\n' character (0x0a)
#define forAll(list, i)
Loop across all elements in list.