diff --git a/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C b/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C index b870e9efab..f51ebafb87 100644 --- a/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C +++ b/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C @@ -561,10 +561,6 @@ int main(int argc, char *argv[]) mkDir(args.path()); } - // Switch timeStamp checking to one which does not do any - // parallel sync for same reason - regIOobject::fileModificationChecking = regIOobject::timeStamp; - # include "createTime.H" diff --git a/src/OpenFOAM/db/IOobjects/IOdictionary/IOdictionary.C b/src/OpenFOAM/db/IOobjects/IOdictionary/IOdictionary.C index 65276015fe..7192eb7f61 100644 --- a/src/OpenFOAM/db/IOobjects/IOdictionary/IOdictionary.C +++ b/src/OpenFOAM/db/IOobjects/IOdictionary/IOdictionary.C @@ -66,6 +66,11 @@ void Foam::IOdictionary::readFile(const bool masterOnly) : Pstream::treeCommunication() ); + // Master reads headerclassname from file. Make sure this gets + // transfered as well as contents. + word masterClassName = headerClassName(); + Pstream::scatter(comms, masterClassName); + // Get my communication order const Pstream::commsStruct& myComm = comms[Pstream::myProcNo()]; @@ -89,6 +94,7 @@ void Foam::IOdictionary::readFile(const bool masterOnly) IOstream::ASCII ); IOdictionary::readData(fromAbove); + const_cast(headerClassName()) = masterClassName; } // Send to my downstairs neighbours diff --git a/src/OpenFOAM/db/regIOobject/regIOobjectRead.C b/src/OpenFOAM/db/regIOobject/regIOobjectRead.C index fcf53b985f..5802fec85f 100644 --- a/src/OpenFOAM/db/regIOobject/regIOobjectRead.C +++ b/src/OpenFOAM/db/regIOobject/regIOobjectRead.C @@ -201,6 +201,11 @@ bool Foam::regIOobject::read() : Pstream::treeCommunication() ); + // Master reads headerclassname from file. Make sure this gets + // transfered as well as contents. + word masterClassName = headerClassName(); + Pstream::scatter(comms, masterClassName); + // Get my communication order const Pstream::commsStruct& myComm = comms[Pstream::myProcNo()]; @@ -226,6 +231,7 @@ bool Foam::regIOobject::read() IOstream::ASCII ); ok = readData(fromAbove); + const_cast(headerClassName()) = masterClassName; } // Send to my downstairs neighbours diff --git a/src/OpenFOAM/matrices/solution/solution.C b/src/OpenFOAM/matrices/solution/solution.C index 610df5b8dd..c24ed33a60 100644 --- a/src/OpenFOAM/matrices/solution/solution.C +++ b/src/OpenFOAM/matrices/solution/solution.C @@ -84,7 +84,11 @@ Foam::solution::solution dictName, obr.time().system(), obr, - IOobject::MUST_READ_IF_MODIFIED, + ( + obr.readOpt() == IOobject::MUST_READ + ? IOobject::MUST_READ_IF_MODIFIED + : obr.readOpt() + ), IOobject::NO_WRITE ) ), @@ -94,7 +98,14 @@ Foam::solution::solution defaultRelaxationFactor_(0), solvers_(ITstream("solvers", tokenList())()) { - read(solutionDict()); + if + ( + readOpt() == IOobject::MUST_READ + || readOpt() == IOobject::MUST_READ_IF_MODIFIED + ) + { + read(solutionDict()); + } } diff --git a/src/finiteVolume/finiteVolume/fvSchemes/fvSchemes.C b/src/finiteVolume/finiteVolume/fvSchemes/fvSchemes.C index cd786d09fa..a489b8c935 100644 --- a/src/finiteVolume/finiteVolume/fvSchemes/fvSchemes.C +++ b/src/finiteVolume/finiteVolume/fvSchemes/fvSchemes.C @@ -256,7 +256,11 @@ Foam::fvSchemes::fvSchemes(const objectRegistry& obr) "fvSchemes", obr.time().system(), obr, - IOobject::MUST_READ_IF_MODIFIED, + ( + obr.readOpt() == IOobject::MUST_READ + ? IOobject::MUST_READ_IF_MODIFIED + : obr.readOpt() + ), IOobject::NO_WRITE ) ), @@ -364,7 +368,14 @@ Foam::fvSchemes::fvSchemes(const objectRegistry& obr) // persistent settings across reads is incorrect clear(); - read(schemesDict()); + if + ( + readOpt() == IOobject::MUST_READ + || readOpt() == IOobject::MUST_READ_IF_MODIFIED + ) + { + read(schemesDict()); + } }