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