diff --git a/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C b/applications/utilities/parallelProcessing/redistributeMeshPar/redistributeMeshPar.C index b870e9efab81f41db80cb6143067648d9d36395b..f51ebafb87b45ab1164024f776987d7985189ee2 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 65276015fed8e9149d6c8a3bac1dd7146523ab1d..7192eb7f61a3ea7a0d7ccb0f6078ba6ce2561868 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<word&>(headerClassName()) = masterClassName; } // Send to my downstairs neighbours diff --git a/src/OpenFOAM/db/regIOobject/regIOobjectRead.C b/src/OpenFOAM/db/regIOobject/regIOobjectRead.C index fcf53b985f274f1c7edcaa75f5ea61610b8b400e..5802fec85fdee7e08d3f40c1d8ccabf0fffd4086 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<word&>(headerClassName()) = masterClassName; } // Send to my downstairs neighbours diff --git a/src/OpenFOAM/matrices/solution/solution.C b/src/OpenFOAM/matrices/solution/solution.C index 610df5b8dd56c9885b30f8aa3d61a5064df6fafa..c24ed33a60fcf38d68a287c942b0e5a93efa0042 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 cd786d09fac4d1228abf08f617fb3711d471d75b..a489b8c935fb62c6063b94240879ff927e23ab4a 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()); + } }