diff --git a/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.C b/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.C index d5a93363386f08d71b4b46d651ba290019deddaa..21ad121dfb995e65b0a2515ccf71db812419042a 100644 --- a/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.C +++ b/src/OpenFOAM/db/IOobjects/decomposedBlockData/decomposedBlockData.C @@ -30,8 +30,9 @@ License #include "Fstream.H" #include "StringStream.H" #include "dictionary.H" -#include <sys/time.h> #include "objectRegistry.H" +#include "foamVersion.H" +#include <sys/time.h> // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -204,6 +205,20 @@ void Foam::decomposedBlockData::writeHeader << " version " << version << ";\n" << " format " << format << ";\n" << " class " << type << ";\n"; + + // This may be useful to have as well + /* + if (os.format() == IOstream::BINARY) + { + os << " arch " << Foam::FOAMbuildArch << ";\n"; + } + */ + + if (Pstream::parRun()) + { + os << " blocks " << Pstream::nProcs() << ";\n"; + } + if (note.size()) { os << " note " << note << ";\n"; @@ -938,7 +953,7 @@ Foam::label Foam::decomposedBlockData::numBlocks(const fileName& fName) return nBlocks; } - // Skip header + // FoamFile header token firstToken(is); if @@ -951,8 +966,15 @@ Foam::label Foam::decomposedBlockData::numBlocks(const fileName& fName) dictionary headerDict(is); is.version(headerDict.lookup("version")); is.format(headerDict.lookup("format")); + + // Obtain number of blocks directly + if (headerDict.readIfPresent("blocks", nBlocks)) + { + return nBlocks; + } } + // Fallback to brute force read of each data block List<char> data; while (is.good()) { diff --git a/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.C b/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.C index b5dbb13517b9d583e279cf65abf343d026194206..dd105496a4ee5460e21cf49271dc59800d3ed415 100644 --- a/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.C +++ b/src/OpenFOAM/global/fileOperations/collatedFileOperation/collatedFileOperation.C @@ -200,7 +200,7 @@ Foam::fileOperations::collatedFileOperation::collatedFileOperation << " may \"hang\". If thread support cannot be " "enabled, deactivate threading" << nl << " by setting maxThreadFileBufferSize to 0 in " - "$FOAM_ETC/controlDict" + "the OpenFOAM etc/controlDict" << endl; }