BUG: master-only-reading : did not transfer headerClassName

This commit is contained in:
mattijs
2010-12-10 13:14:45 +00:00
parent ad5305aebd
commit 4da55e853f
5 changed files with 38 additions and 8 deletions

View File

@ -561,10 +561,6 @@ int main(int argc, char *argv[])
mkDir(args.path()); 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" # include "createTime.H"

View File

@ -66,6 +66,11 @@ void Foam::IOdictionary::readFile(const bool masterOnly)
: Pstream::treeCommunication() : 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 // Get my communication order
const Pstream::commsStruct& myComm = comms[Pstream::myProcNo()]; const Pstream::commsStruct& myComm = comms[Pstream::myProcNo()];
@ -89,6 +94,7 @@ void Foam::IOdictionary::readFile(const bool masterOnly)
IOstream::ASCII IOstream::ASCII
); );
IOdictionary::readData(fromAbove); IOdictionary::readData(fromAbove);
const_cast<word&>(headerClassName()) = masterClassName;
} }
// Send to my downstairs neighbours // Send to my downstairs neighbours

View File

@ -201,6 +201,11 @@ bool Foam::regIOobject::read()
: Pstream::treeCommunication() : 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 // Get my communication order
const Pstream::commsStruct& myComm = comms[Pstream::myProcNo()]; const Pstream::commsStruct& myComm = comms[Pstream::myProcNo()];
@ -226,6 +231,7 @@ bool Foam::regIOobject::read()
IOstream::ASCII IOstream::ASCII
); );
ok = readData(fromAbove); ok = readData(fromAbove);
const_cast<word&>(headerClassName()) = masterClassName;
} }
// Send to my downstairs neighbours // Send to my downstairs neighbours

View File

@ -84,7 +84,11 @@ Foam::solution::solution
dictName, dictName,
obr.time().system(), obr.time().system(),
obr, obr,
IOobject::MUST_READ_IF_MODIFIED, (
obr.readOpt() == IOobject::MUST_READ
? IOobject::MUST_READ_IF_MODIFIED
: obr.readOpt()
),
IOobject::NO_WRITE IOobject::NO_WRITE
) )
), ),
@ -94,7 +98,14 @@ Foam::solution::solution
defaultRelaxationFactor_(0), defaultRelaxationFactor_(0),
solvers_(ITstream("solvers", tokenList())()) solvers_(ITstream("solvers", tokenList())())
{ {
read(solutionDict()); if
(
readOpt() == IOobject::MUST_READ
|| readOpt() == IOobject::MUST_READ_IF_MODIFIED
)
{
read(solutionDict());
}
} }

View File

@ -256,7 +256,11 @@ Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
"fvSchemes", "fvSchemes",
obr.time().system(), obr.time().system(),
obr, obr,
IOobject::MUST_READ_IF_MODIFIED, (
obr.readOpt() == IOobject::MUST_READ
? IOobject::MUST_READ_IF_MODIFIED
: obr.readOpt()
),
IOobject::NO_WRITE IOobject::NO_WRITE
) )
), ),
@ -364,7 +368,14 @@ Foam::fvSchemes::fvSchemes(const objectRegistry& obr)
// persistent settings across reads is incorrect // persistent settings across reads is incorrect
clear(); clear();
read(schemesDict()); if
(
readOpt() == IOobject::MUST_READ
|| readOpt() == IOobject::MUST_READ_IF_MODIFIED
)
{
read(schemesDict());
}
} }