diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C index d714747310f6a2fdbdd4fd4ae998fbdf8e3d4b14..f19b7f69d1c37e0c70af33594953a0693d123062 100644 --- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C +++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.C @@ -311,6 +311,7 @@ Foam::fieldAverage::fieldAverage prevTimeIndex_(-1), resetOnRestart_(false), resetOnOutput_(false), + initialised_(false), faItems_(), meanScalarFields_(), meanVectorFields_(), @@ -361,11 +362,7 @@ void Foam::fieldAverage::read(const dictionary& dict) dict.readIfPresent("resetOnOutput", resetOnOutput_); dict.lookup("fields") >> faItems_; - initialize(); readAveragingProperties(); - - // ensure first averaging works unconditionally - prevTimeIndex_ = -1; } } @@ -374,6 +371,16 @@ void Foam::fieldAverage::execute() { if (active_) { + if (!initialised_) + { + initialize(); + + // ensure first averaging works unconditionally + prevTimeIndex_ = -1; + + initialised_ = true; + } + calcAverages(); } } diff --git a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H index f8b689757dce8d3804491e558962289682a7e950..4a6d75e06b8b380d59af35b0b48a0ec814a6574a 100644 --- a/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H +++ b/src/postProcessing/functionObjects/field/fieldAverage/fieldAverage/fieldAverage.H @@ -171,6 +171,9 @@ protected: //- Reset the averaging process on output flag Switch resetOnOutput_; + //- Initialised flag + bool initialised_; + //- List of field average items, describing what averages to be // calculated and output List<fieldAverageItem> faItems_;