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