15 const IOobject& obj = *fieldIter();
16 const word& fieldName = obj.name();
17 const word& fieldType = obj.headerClassName();
19 if (fieldName.size() > 2 && fieldName(fieldName.size()-2, 2) ==
"_0")
23 else if (volFieldTypes.found(fieldType))
26 volumeFields.insert(fieldName, fieldType);
45 const word&
cloudName = cloudDirs[cloudI];
48 cloudFields.insert(cloudName, HashTable<word>());
51 HashTable<HashTable<word>>::iterator cloudIter =
52 cloudFields.find(cloudName);
61 bool hasPositions =
false;
64 const IOobject obj = *fieldIter();
65 const word& fieldName = obj.name();
66 const word& fieldType = obj.headerClassName();
68 if (fieldName ==
"positions")
72 else if (cloudFieldTypes.found(fieldType))
75 cloudIter().insert(fieldName, fieldType);
80 if (!hasPositions || cloudIter().empty())
82 Info<<
"removing cloud " << cloudName <<
endl;
83 cloudFields.erase(cloudIter);
90 for (
label i=0; volumeFields.size() && i <
timeDirs.size(); ++i)
94 forAllIter(HashTable<word>, volumeFields, fieldIter)
96 const word& fieldName = fieldIter.key();
98 if (!objs.found(fieldName))
100 volumeFields.erase(fieldIter);
#define forAll(list, i)
Loop across all elements in list.
FvWallInfoData< WallInfo, label > label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
#define forAllIter(Container, container, iter)
Iterate across all elements in the container object of type.
Ostream & endl(Ostream &os)
Add newline and flush stream.
HashTable< word > volumeFields
HashTable< HashTable< word > > cloudFields
static instantList timeDirs
fileNameList readDir(const fileName &, const fileType=fileType::file, const bool filterVariants=true, const bool followLink=true)
Read a directory and return the entries as a string list.
word name(const complex &)
Return a string representation of a complex.
const word cloudName(propsDict.lookup("cloudName"))
List< fileName > fileNameList
A List of fileNames.