From 36ca836f287d6e4c5ba921814e6af10c0095181c Mon Sep 17 00:00:00 2001 From: Henry Date: Wed, 20 May 2015 12:43:54 +0100 Subject: [PATCH] Time: Correct precision adjustment for user-time --- src/OpenFOAM/db/Time/Time.C | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C index f7b3f18c7d..77ca3ca783 100644 --- a/src/OpenFOAM/db/Time/Time.C +++ b/src/OpenFOAM/db/Time/Time.C @@ -1086,7 +1086,7 @@ Foam::Time& Foam::Time::operator++() deltaTSave_ = deltaT_; // Save old time value and name - const scalar oldTimeValue = value(); + const scalar oldTimeValue = timeToUserTime(value()); const word oldTimeName = dimensionedScalar::name(); // Increment time @@ -1276,19 +1276,22 @@ Foam::Time& Foam::Time::operator++() // Adjust the precision of the time directory name if necessary if (outputTime_) { + // Tolerance used when testing time equivalence + const scalar timeTol = + max(min(pow(10.0, -precision_), 0.1*deltaT_), SMALL); + + // User-time equivalent of deltaT + const scalar userDeltaT = timeToUserTime(deltaT_); + // Time value obtained by reading timeName scalar timeNameValue = -VGREAT; - // Tolerance used when testing time equivalence - scalar timeTol = - max(min(pow(10.0, -precision_), 0.1*deltaT_), SMALL); - // Check that new time representation differs from old one // reinterpretation of the word if ( readScalar(dimensionedScalar::name().c_str(), timeNameValue) - && (mag(timeNameValue - oldTimeValue - deltaT_) > timeTol) + && (mag(timeNameValue - oldTimeValue - userDeltaT) > timeTol) ) { int oldPrecision = precision_; @@ -1296,7 +1299,7 @@ Foam::Time& Foam::Time::operator++() ( precision_ < maxPrecision_ && readScalar(dimensionedScalar::name().c_str(), timeNameValue) - && (mag(timeNameValue - oldTimeValue - deltaT_) > timeTol) + && (mag(timeNameValue - oldTimeValue - userDeltaT) > timeTol) ) { precision_++;