diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C index 9ecc2a0ff4..612785cdfc 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldIO.C @@ -37,7 +37,15 @@ void Foam::DimensionedField::readField ) { dimensions_.reset(dimensionSet(fieldDict.lookup("dimensions"))); - oriented_.read(fieldDict); + + // Note: oriented state may have already been set on construction + // - if so - do not reset by re-reading + // - required for backwards compatibility in case of restarting from + // an old run where the oriented state may not have been set + if (oriented_.oriented() != orientedType::ORIENTED) + { + oriented_.read(fieldDict); + } Field f(fieldDictEntry, fieldDict, GeoMesh::size(mesh_)); this->transfer(f); diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C index ee0677ecbb..61b8aa4c95 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C +++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C @@ -169,6 +169,11 @@ bool Foam::GeometricField::readOldTimeIfPresent() this->mesh() ); + // Ensure the old time field oriented flag is set to the parent's state + // Note: required for backwards compatibility in case of restarting from + // an old run where the oriented state may not have been set + field0Ptr_->oriented() = this->oriented(); + field0Ptr_->timeIndex_ = timeIndex_ - 1; if (!field0Ptr_->readOldTimeIfPresent())