mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
BUG: redistributePar: fix global object headerOk. See !605
- mesh/parallel/cavity not yet working since zero-sized mesh not written on new processors.
This commit is contained in:
@ -110,7 +110,8 @@ using namespace Foam;
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
const int debug(::Foam::debug::debugSwitch("redistributePar", 0));
|
// Use -verbose -verbose to switch on debug info. TBD.
|
||||||
|
int debug(::Foam::debug::debugSwitch("redistributePar", 0));
|
||||||
#define InfoOrPout (::debug ? Pout : Info())
|
#define InfoOrPout (::debug ? Pout : Info())
|
||||||
|
|
||||||
|
|
||||||
@ -1307,6 +1308,14 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (optVerbose)
|
if (optVerbose)
|
||||||
{
|
{
|
||||||
|
if (optVerbose == 2)
|
||||||
|
{
|
||||||
|
WarningInFunction
|
||||||
|
<< "-verbose -verbose switches on full debugging"
|
||||||
|
<< nl << endl;
|
||||||
|
::debug = 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Report on output
|
// Report on output
|
||||||
faMeshDistributor::verbose_ = 1;
|
faMeshDistributor::verbose_ = 1;
|
||||||
parPointFieldDistributor::verbose_ = 1;
|
parPointFieldDistributor::verbose_ = 1;
|
||||||
|
|||||||
@ -59,30 +59,58 @@ bool Foam::IOobject::typeHeaderOk
|
|||||||
|
|
||||||
// Determine local status
|
// Determine local status
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
fileName fName;
|
|
||||||
|
|
||||||
if (!masterOnly || UPstream::master())
|
|
||||||
{
|
|
||||||
fName = typeFilePath<Type>(*this, search);
|
|
||||||
ok = fp.readHeader(*this, fName, Type::typeName);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ok && checkType && headerClassName_ != Type::typeName)
|
|
||||||
{
|
|
||||||
ok = false;
|
|
||||||
if (verbose)
|
|
||||||
{
|
|
||||||
WarningInFunction
|
|
||||||
<< "Unexpected class name \"" << headerClassName_
|
|
||||||
<< "\" expected \"" << Type::typeName
|
|
||||||
<< "\" when reading " << fName << endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// If masterOnly make sure all processors know about it
|
|
||||||
if (masterOnly)
|
if (masterOnly)
|
||||||
{
|
{
|
||||||
Pstream::broadcast(ok);
|
if (UPstream::master())
|
||||||
|
{
|
||||||
|
// Force master-only header reading
|
||||||
|
const bool oldParRun = UPstream::parRun(false);
|
||||||
|
const fileName fName(typeFilePath<Type>(*this, search));
|
||||||
|
ok = fp.readHeader(*this, fName, Type::typeName);
|
||||||
|
UPstream::parRun(oldParRun);
|
||||||
|
|
||||||
|
if (ok && checkType && headerClassName_ != Type::typeName)
|
||||||
|
{
|
||||||
|
ok = false;
|
||||||
|
if (verbose)
|
||||||
|
{
|
||||||
|
WarningInFunction
|
||||||
|
<< "Unexpected class name \"" << headerClassName_
|
||||||
|
<< "\" expected \"" << Type::typeName
|
||||||
|
<< "\" when reading " << fName << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If masterOnly make sure all processors know about the read
|
||||||
|
// information. Note: should ideally be inside fileHandler...
|
||||||
|
Pstream::broadcasts
|
||||||
|
(
|
||||||
|
fp.comm(),
|
||||||
|
ok,
|
||||||
|
headerClassName_,
|
||||||
|
note_
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const fileName fName(typeFilePath<Type>(*this, search));
|
||||||
|
|
||||||
|
// All read header
|
||||||
|
ok = fp.readHeader(*this, fName, Type::typeName);
|
||||||
|
|
||||||
|
if (ok && checkType && headerClassName_ != Type::typeName)
|
||||||
|
{
|
||||||
|
ok = false;
|
||||||
|
if (verbose)
|
||||||
|
{
|
||||||
|
WarningInFunction
|
||||||
|
<< "Unexpected class name \"" << headerClassName_
|
||||||
|
<< "\" expected \"" << Type::typeName
|
||||||
|
<< "\" when reading " << fName << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ok;
|
return ok;
|
||||||
|
|||||||
Reference in New Issue
Block a user