diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/AverageIOField.C index 1450290f7453fa980e5548393b4af479daef4d6b..2f079100a59f6873a0efbb063e23c65f78faea9f 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 4217dcbd1a36ee418ef489c9ff4342bf46efb6ea..25634ab109dc503220d9ce4ee8cc71d9d73f92f8 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 e39cd28d904d3d8d5bd6d568b5b3b7260417d52e..066b741abe653ba88767e079acb7fffc3b9d144b 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"