Foam::surfZone::surfZone(Istream& is, const label index) : surfZoneIdentifier(), size_(0), start_(0) { word name(is); dictionary dict(is); operator=(surfZone(name, dict, index)); }
Foam::surfZoneIOList::surfZoneIOList ( const IOobject& io ) : surfZoneList(), regIOobject(io) { Foam::string functionName = "surfZoneIOList::surfZoneIOList" "(const IOobject& io)"; if ( readOpt() == IOobject::MUST_READ || readOpt() == IOobject::MUST_READ_IF_MODIFIED ) { surfZoneList& zones = *this; Istream& is = readStream(typeName); PtrList<entry> dictEntries(is); zones.setSize(dictEntries.size()); label faceI = 0; forAll(zones, zoneI) { const dictionary& dict = dictEntries[zoneI].dict(); label zoneSize = readLabel(dict.lookup("nFaces")); label startFaceI = readLabel(dict.lookup("startFace")); zones[zoneI] = surfZone ( dictEntries[zoneI].keyword(), zoneSize, startFaceI, zoneI ); word geoType; if (dict.readIfPresent("geometricType", geoType)) { zones[zoneI].geometricType() = geoType; } if (startFaceI != faceI) { FatalErrorIn(functionName) << "surfZones are not ordered. Start of zone " << zoneI << " does not correspond to sum of preceding zones." << nl << "while reading " << io.objectPath() << endl << exit(FatalError); } faceI += zoneSize; } // Check state of IOstream is.check(functionName.c_str()); close(); }