diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C index 251b9d3f1f123a30e26d4be3601574786123aaeb..62407d83162db71c162c23dbeffae4e0e55468ea 100644 --- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C +++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -33,7 +33,7 @@ License namespace Foam { -defineTypeNameAndDebug(fieldAverage, 0); + defineTypeNameAndDebug(fieldAverage, 0); } @@ -50,6 +50,7 @@ void Foam::fieldAverage::resetFields() obr_.checkOut(*obr_[faItems_[i].meanFieldName()]); } } + if (faItems_[i].prime2Mean()) { if (obr_.found(faItems_[i].prime2MeanFieldName())) @@ -67,7 +68,6 @@ void Foam::fieldAverage::initialize() Info<< type() << " " << name_ << ":" << nl; - // Add mean fields to the field lists forAll(faItems_, fieldI) { @@ -195,7 +195,7 @@ void Foam::fieldAverage::readAveragingProperties() totalTime_.clear(); totalTime_.setSize(faItems_.size(), obr_.time().deltaTValue()); - if (resetOnRestart_) + if (resetOnRestart_ || resetOnOutput_) { Info<< " Starting averaging at time " << obr_.time().timeName() << nl; @@ -348,10 +348,13 @@ void Foam::fieldAverage::write() Info<< " Restarting averaging at time " << obr_.time().timeName() << nl << endl; - initialize(); + totalIter_.clear(); + totalIter_.setSize(faItems_.size(), 1); - // ensure first averaging works unconditionally - prevTimeIndex_ = -1; + totalTime_.clear(); + totalTime_.setSize(faItems_.size(), obr_.time().deltaTValue()); + + initialize(); } Info<< endl; diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverageTemplates.C b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverageTemplates.C index 00b4c9e9e2de6d2f4edfc51f7e7daff284622abd..62e733481d5334f6ffb6fbe2e2d238e85396b42c 100644 --- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverageTemplates.C +++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverageTemplates.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -66,7 +66,9 @@ void Foam::fieldAverage::addMeanFieldType(const label fieldI) meanFieldName, obr_.time().timeName(obr_.time().startTime().value()), obr_, - IOobject::READ_IF_PRESENT, + resetOnOutput_ + ? IOobject::NO_READ + : IOobject::READ_IF_PRESENT, IOobject::NO_WRITE ), 1*baseField @@ -124,6 +126,7 @@ void Foam::fieldAverage::addPrime2MeanFieldType(const label fieldI) const Type1& baseField = obr_.lookupObject<Type1>(fieldName); const Type1& meanField = obr_.lookupObject<Type1>(meanFieldName); + // Store on registry obr_.store ( new Type2 @@ -133,7 +136,9 @@ void Foam::fieldAverage::addPrime2MeanFieldType(const label fieldI) prime2MeanFieldName, obr_.time().timeName(obr_.time().startTime().value()), obr_, - IOobject::READ_IF_PRESENT, + resetOnOutput_ + ? IOobject::NO_READ + : IOobject::READ_IF_PRESENT, IOobject::NO_WRITE ), sqr(baseField) - sqr(meanField)