From 5579f7afe423f97d002002152bac3af0b122907e Mon Sep 17 00:00:00 2001
From: henry <Henry Weller h.weller@opencfd.co.uk>
Date: Thu, 28 Jan 2010 16:06:30 +0000
Subject: [PATCH] AverageIOField: Changed the average value to be member data.

---
 .../AverageIOField.C                          | 40 ++++++++++---------
 .../AverageIOField.H                          | 24 ++++++-----
 .../AverageIOFields.C                         |  2 +
 3 files changed, 36 insertions(+), 30 deletions(-)

diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOField.C
index 1450290f745..2f079100a59 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2010 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -26,42 +26,37 @@ License
 
 #include "AverageIOField.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
 template<class Type>
-AverageIOField<Type>::AverageIOField
+Foam::AverageIOField<Type>::AverageIOField
 (
     const IOobject& io
 )
 :
-    regIOobject(io),
-    pTraits<Type>(readStream(typeName)),
-    Field<Type>(readStream(typeName))
+    regIOobject(io)
 {
+    readStream(typeName) >> average_;
+    readStream(typeName) >> static_cast<Field<Type>&>(*this);
     close();
 }
 
 
 template<class Type>
-AverageIOField<Type>::AverageIOField
+Foam::AverageIOField<Type>::AverageIOField
 (
     const IOobject& io,
     const label size
 )
 :
     regIOobject(io),
-    pTraits<Type>(pTraits<Type>::zero),
-    Field<Type>(size)
+    Field<Type>(size),
+    average_(0)
 {}
 
 
 template<class Type>
-AverageIOField<Type>::AverageIOField
+Foam::AverageIOField<Type>::AverageIOField
 (
     const IOobject& io,
     const Type& average,
@@ -69,21 +64,28 @@ AverageIOField<Type>::AverageIOField
 )
 :
     regIOobject(io),
-    pTraits<Type>(average),
-    Field<Type>(f)
+    Field<Type>(f),
+    average_(average)
 {
     if (io.readOpt() == IOobject::READ_IF_PRESENT && headerOk())
     {
         readStream(typeName)
-            >> static_cast<Type&>(*this)
+            >> average_
             >> static_cast<Field<Type>&>(*this);
         close();
     }
 }
 
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+template<class Type>
+bool Foam::AverageIOField<Type>::writeData(Ostream& os) const
+{
+    os  << average_
+        << token::NL
+        << static_cast<const Field<Type>&>(*this);
+
+    return os.good();
+}
 
-} // End namespace Foam
 
 // ************************************************************************* //
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOField.H b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOField.H
index 4217dcbd1a3..25634ab109d 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOField.H
+++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 1991-2010 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -45,16 +45,20 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                           Class AverageIOField Declaration
+                        Class AverageIOField Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class Type>
 class AverageIOField
 :
     public regIOobject,
-    public pTraits<Type>,
     public Field<Type>
 {
+    // Private data
+
+        //- The average of the field
+        Type average_;
+
 
 public:
 
@@ -87,19 +91,17 @@ public:
 
     // Member functions
 
-        const pTraits<Type>& average() const
+        const Type& average() const
         {
-            return static_cast<const pTraits<Type>&>(*this);
+            return average_;
         }
 
-        bool writeData(Ostream& os) const
+        Type& average()
         {
-            os  << static_cast<const Type&>(*this)
-                << token::NL
-                << static_cast<const Field<Type>&>(*this);
-
-            return os.good();
+            return average_;
         }
+
+        bool writeData(Ostream& os) const;
 };
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOFields.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOFields.C
index e39cd28d904..066b741abe6 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOFields.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOFields.C
@@ -22,6 +22,8 @@ License
     along with OpenFOAM; if not, write to the Free Software Foundation,
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
+Description
+
 \*---------------------------------------------------------------------------*/
 
 #include "AverageIOField.H"
-- 
GitLab