From 9986ef70da49f0ca23ceaf763321e1a53030fc28 Mon Sep 17 00:00:00 2001
From: Armin Wehrfritz <armin.wehrfritz@aalto.fi>
Date: Thu, 9 Apr 2015 15:40:50 +0300
Subject: [PATCH 2/2] fieldAverageTemplates.C - NO_READ for mean & prime2Mean
 if resetOnOutput_

---
 .../fieldAverage/fieldAverageTemplates.C           | 99 ++++++++++++++++------
 1 file changed, 72 insertions(+), 27 deletions(-)

diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverageTemplates.C b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverageTemplates.C
index 00b4c9e..788f3fb 100644
--- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverageTemplates.C
+++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverageTemplates.C
@@ -56,22 +56,44 @@ void Foam::fieldAverage::addMeanFieldType(const label fieldI)
     {
         const Type& baseField = obr_.lookupObject<Type>(fieldName);
 
-        // Store on registry
-        obr_.store
-        (
-            new Type
+        if (resetOnOutput_)
+        {
+            // Store on registry
+            obr_.store
             (
-                IOobject
+                new Type
                 (
-                    meanFieldName,
-                    obr_.time().timeName(obr_.time().startTime().value()),
-                    obr_,
-                    IOobject::READ_IF_PRESENT,
-                    IOobject::NO_WRITE
-                ),
-                1*baseField
-            )
-        );
+                    IOobject
+                    (
+                        meanFieldName,
+                        obr_.time().timeName(),
+                        obr_,
+                        IOobject::NO_READ,
+                        IOobject::NO_WRITE
+                    ),
+                    1*baseField
+                )
+            );
+        }
+        else
+        {
+            // Store on registry
+            obr_.store
+            (
+                new Type
+                (
+                    IOobject
+                    (
+                        meanFieldName,
+                        obr_.time().timeName(obr_.time().startTime().value()),
+                        obr_,
+                        IOobject::READ_IF_PRESENT,
+                        IOobject::NO_WRITE
+                    ),
+                    1*baseField
+                )
+            );
+        }
     }
 }
 
@@ -124,21 +146,44 @@ void Foam::fieldAverage::addPrime2MeanFieldType(const label fieldI)
         const Type1& baseField = obr_.lookupObject<Type1>(fieldName);
         const Type1& meanField = obr_.lookupObject<Type1>(meanFieldName);
 
-        obr_.store
-        (
-            new Type2
+        if (resetOnOutput_)
+        {
+            // Store on registry
+            obr_.store
             (
-                IOobject
+                new Type2
                 (
-                    prime2MeanFieldName,
-                    obr_.time().timeName(obr_.time().startTime().value()),
-                    obr_,
-                    IOobject::READ_IF_PRESENT,
-                    IOobject::NO_WRITE
-                ),
-                sqr(baseField) - sqr(meanField)
-            )
-        );
+                    IOobject
+                    (
+                        prime2MeanFieldName,
+                        obr_.time().timeName(),
+                        obr_,
+                        IOobject::NO_READ,
+                        IOobject::NO_WRITE
+                    ),
+                    sqr(baseField) - sqr(meanField)
+                )
+            );
+        }
+        else
+        {
+            // Store on registry
+            obr_.store
+            (
+                new Type2
+                (
+                    IOobject
+                    (
+                        prime2MeanFieldName,
+                        obr_.time().timeName(obr_.time().startTime().value()),
+                        obr_,
+                        IOobject::READ_IF_PRESENT,
+                        IOobject::NO_WRITE
+                    ),
+                    sqr(baseField) - sqr(meanField)
+                )
+            );
+        }
     }
 }
 
-- 
2.1.4

