longstanding bug?? - changed odd read option in GeometricField::readOldTimeIfPresent

This commit is contained in:
Mark Olesen
2008-10-14 16:13:40 +02:00
parent 7e9846a524
commit 58c6aa7b77

View File

@ -105,35 +105,31 @@ bool Foam::GeometricField<Type, PatchField, GeoMesh>::readIfPresent()
( (
"GeometricField<Type, PatchField, GeoMesh>::readIfPresent()" "GeometricField<Type, PatchField, GeoMesh>::readIfPresent()"
) << "read option IOobject::MUST_READ " ) << "read option IOobject::MUST_READ "
<< "suggests that a read constuctor for field " << this->name() << "suggests that a read constructor for field " << this->name()
<< " would be more appropriate." << endl; << " would be more appropriate." << endl;
} }
else if (this->readOpt() == IOobject::READ_IF_PRESENT) else if (this->readOpt() == IOobject::READ_IF_PRESENT && this->headerOk())
{ {
if (this->headerOk()) boundaryField_.transfer(readField(this->readStream(typeName))());
this->close();
// Check compatibility between field and mesh
if (this->size() != GeoMesh::size(this->mesh()))
{ {
boundaryField_.transfer(readField(this->readStream(typeName))()); FatalIOErrorIn
this->close(); (
"GeometricField<Type, PatchField, GeoMesh>::"
// Check compatibility between field and mesh "readIfPresent()",
this->readStream(typeName)
if (this->size() != GeoMesh::size(this->mesh())) ) << " number of field elements = " << this->size()
{ << " number of mesh elements = "
FatalIOErrorIn << GeoMesh::size(this->mesh())
( << exit(FatalIOError);
"GeometricField<Type, PatchField, GeoMesh>::"
"readIfPresent()",
this->readStream(typeName)
) << " number of field elements = " << this->size()
<< " number of mesh elements = "
<< GeoMesh::size(this->mesh())
<< exit(FatalIOError);
}
readOldTimeIfPresent();
return true;
} }
readOldTimeIfPresent();
return true;
} }
return false; return false;
@ -149,7 +145,7 @@ bool Foam::GeometricField<Type, PatchField, GeoMesh>::readOldTimeIfPresent()
this->name() + "_0", this->name() + "_0",
this->time().timeName(), this->time().timeName(),
this->db(), this->db(),
IOobject::MUST_READ, IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE IOobject::AUTO_WRITE
); );