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());
}
// Switch timeStamp checking to one which does not do any
// parallel sync for same reason
regIOobject::fileModificationChecking = regIOobject::timeStamp;
# include "createTime.H"

View File

@ -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

View File

@ -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

View File

@ -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());
}
}

View File

@ -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());
}
}