Go to the documentation of this file.
42 const std::string& elsetName,
46 const label
n =
f.size();
52 os <<
"*ELEMENT, TYPE=S4";
54 if (!elsetName.empty())
56 os <<
", ELSET=" << elsetName;
72 os <<
"*ELEMENT, TYPE=S3";
74 if (!elsetName.empty())
76 os <<
", ELSET=" << elsetName;
94 for (label fp1 = 1; fp1 <
f.size() - 1; ++fp1)
96 const label fp2 =
f.fcIndex(fp1);
101 << (
f[fp1] + 1) <<
','
102 << (
f[fp2] + 1) <<
nl;
138 <<
"Cannot read file " << filename <<
nl
166 dynFaces.
append(Face(std::move(conn)));
175 labelList newToOldZone(elsetUsed.sortedToc());
178 if (newToOldZone.empty())
183 Map<label> oldToNewZone(2*newToOldZone.size());
185 forAll(newToOldZone, zonei)
187 oldToNewZone.set(newToOldZone[zonei], zonei);
190 wordList zoneNames(newToOldZone.size());
195 const label zonei = oldToNewZone.lookup(iter.val(), -1);
206 if (zoneNames[zonei].empty())
208 zoneNames[zonei] = surfZoneIdentifier::defaultName(zonei);
216 for (label& zonei : dynZones)
218 zonei = oldToNewZone.lookup(zonei, 0);
225 this->storedPoints().transfer(reader.
points_);
227 this->sortFacesAndStore
236 this->addZones(zoneSizes, zoneNames);
237 this->addZonesToFaces();
253 streamOpt.
format(IOstream::ASCII);
264 ? surfaceFormatsCore::oneZone(faceLst,
"")
268 const bool useFaceMap = (surf.
useFaceMap() && zones.size() > 1);
272 bool useOrigFaceIds =
282 for (
const auto&
f : faceLst)
286 useOrigFaceIds =
false;
297 <<
"Cannot write file " << filename <<
nl
302 os <<
"*HEADING" <<
nl;
309 writePoints(
os, pointLst);
326 for (label nLocal =
zone.size(); nLocal--; ++faceIndex)
329 (useFaceMap ?
faceMap[faceIndex] : faceIndex);
331 const Face&
f = faceLst[facei];
335 elemId = elemIds[facei];
338 const label
n =
f.size();
341 (prevOutput.first() !=
n || prevOutput.
second() != zoneIndex);
346 prevOutput.first() =
n;
347 prevOutput.
second() = zoneIndex;
350 elemId = writeShell(
os,
f, elemId,
zone.
name(), header);
const T & second() const noexcept
Return second element, which is also the last element.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
A class for handling file names.
void resize(const label len)
Adjust allocated size of list.
bool useFaceMap() const
Can/should use faceMap?
static constexpr const zero Zero
Global zero (0)
Input from file stream, using an ISstream.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
Base class for mesh zones.
streamFormat format() const noexcept
Get the current stream format.
const pointField & points() const
Return const access to the points.
A proxy for writing MeshedSurface, UnsortedMeshedSurface and surfMesh to various file formats.
const labelUList & faceMap() const
Const access to the faceMap, zero-sized when unused.
#define forAll(list, i)
Loop across all elements in list.
bool good() const noexcept
True if next operation might succeed.
DynamicList< T, SizeMin > & append(const T &val)
Append an element to the end of this list.
The IOstreamOption is a simple container for options an IOstream can normally have.
Istream and Ostream manipulators taking arguments.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
OBJstream os(runTime.globalPath()/outputName)
errorManipArg< error, int > exit(error &err, const int errNo=1)
Output to file stream, using an OSstream.
const labelUList & faceIds() const
Const access to the faceIds, zero-sized when unused.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
forAllConstIters(mixture.phases(), phase)
const word & name() const noexcept
The zone name.
A surface zone on a MeshedSurface.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Various functions to operate on Lists.
const UList< Face > & surfFaces() const
Return const access to the faces.
void size(const label n)
Older name for setAddressableSize.
StringType validate(const std::string &str, const UnaryPredicate &accept, const bool invert=false)
Return a copy of the input string with validated characters.
const UList< surfZone > & surfZones() const
Const access to the surface zones.