From c4e63c4c248da68f83001df6609ef7cf0754309d Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Thu, 9 Mar 2017 17:39:27 +0000 Subject: [PATCH] functionObjects::functionObjects: Corrected initial totalTime for cases with variable time-step Resolves bug-report https://bugs.openfoam.org/view.php?id=2459 --- .../field/fieldAverage/fieldAverage.C | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/functionObjects/field/fieldAverage/fieldAverage.C b/src/functionObjects/field/fieldAverage/fieldAverage.C index a2b46f4a33d..43ab2397529 100644 --- a/src/functionObjects/field/fieldAverage/fieldAverage.C +++ b/src/functionObjects/field/fieldAverage/fieldAverage.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -67,6 +67,16 @@ void Foam::functionObjects::fieldAverage::resetFields() void Foam::functionObjects::fieldAverage::initialize() { + if (!totalIter_.size()) + { + totalIter_.setSize(faItems_.size(), 1); + } + + if (!totalTime_.size()) + { + totalTime_.setSize(faItems_.size(), obr_.time().deltaTValue()); + } + resetFields(); // Add mean fields to the field lists @@ -95,15 +105,11 @@ void Foam::functionObjects::fieldAverage::initialize() void Foam::functionObjects::fieldAverage::restart() { - Log - << " Restarting averaging at time " << obr_.time().timeName() + Log << " Restarting averaging at time " << obr_.time().timeName() << nl << endl; totalIter_.clear(); - totalIter_.setSize(faItems_.size(), 1); - totalTime_.clear(); - totalTime_.setSize(faItems_.size(), obr_.time().deltaTValue()); initialize(); } @@ -134,8 +140,7 @@ void Foam::functionObjects::fieldAverage::calcAverages() periodIndex_++; } - Log - << type() << " " << name() << " write:" << nl + Log << type() << " " << name() << " write:" << nl << " Calculating averages" << nl; addMeanSqrToPrime2Mean<scalar, scalar>(); @@ -206,12 +211,6 @@ void Foam::functionObjects::fieldAverage::writeAveragingProperties() const void Foam::functionObjects::fieldAverage::readAveragingProperties() { - totalIter_.clear(); - totalIter_.setSize(faItems_.size(), 1); - - totalTime_.clear(); - totalTime_.setSize(faItems_.size(), obr_.time().deltaTValue()); - if ((restartOnRestart_ || restartOnOutput_) && log) { Info<< " Starting averaging at time " << obr_.time().timeName() @@ -232,8 +231,7 @@ void Foam::functionObjects::fieldAverage::readAveragingProperties() if (!propsDictHeader.headerOk()) { - Log - << " Starting averaging at time " + Log << " Starting averaging at time " << obr_.time().timeName() << nl; return; @@ -243,6 +241,9 @@ void Foam::functionObjects::fieldAverage::readAveragingProperties() Log << " Restarting averaging for fields:" << nl; + totalIter_.setSize(faItems_.size(), 1); + totalTime_.setSize(faItems_.size()); + forAll(faItems_, fieldi) { const word& fieldName = faItems_[fieldi].fieldName(); @@ -253,8 +254,7 @@ void Foam::functionObjects::fieldAverage::readAveragingProperties() totalIter_[fieldi] = readLabel(fieldDict.lookup("totalIter")); totalTime_[fieldi] = readScalar(fieldDict.lookup("totalTime")); - Log - << " " << fieldName + Log << " " << fieldName << " iters = " << totalIter_[fieldi] << " time = " << totalTime_[fieldi] << nl; } -- GitLab