postProcess: Added call to functionObject::end() at end of time-loop

Resolves bug-report http://bugs.openfoam.org/view.php?id=2148
This commit is contained in:
Henry Weller
2016-07-19 11:57:37 +01:00
parent 4aa5e9299b
commit edca9a4a1a
2 changed files with 20 additions and 6 deletions

View File

@ -59,7 +59,8 @@ void executeFunctionObjects
const Time& runTime,
fvMesh& mesh,
const HashSet<word>& selectedFields,
functionObjectList& functions
functionObjectList& functions,
bool lastTime
)
{
Info<< nl << "Reading fields:" << endl;
@ -115,6 +116,12 @@ void executeFunctionObjects
// Execute the functionObjects in post-processing mode
functions.execute();
// Execute the functionObject 'end()' function for the last time
if (lastTime)
{
functions.end();
}
while (!storedObjects.empty())
{
storedObjects.pop()->checkOut();
@ -164,9 +171,9 @@ int main(int argc, char *argv[])
functionObjectList::New(args, runTime, functionsDict, selectedFields)
);
forAll(timeDirs, timeI)
forAll(timeDirs, timei)
{
runTime.setTime(timeDirs[timeI], timeI);
runTime.setTime(timeDirs[timei], timei);
Info<< "Time = " << runTime.timeName() << endl;
@ -192,7 +199,8 @@ int main(int argc, char *argv[])
runTime,
mesh,
selectedFields,
functionsPtr()
functionsPtr(),
timei == timeDirs.size()-1
);
}
catch (IOerror& err)

View File

@ -104,9 +104,9 @@ if (argList::postProcess(argc, argv))
functionObjectList::New(args, runTime, functionsDict, selectedFields)
);
forAll(timeDirs, timeI)
forAll(timeDirs, timei)
{
runTime.setTime(timeDirs[timeI], timeI);
runTime.setTime(timeDirs[timei], timei);
Info<< "Time = " << runTime.timeName() << endl;
@ -137,6 +137,12 @@ if (argList::postProcess(argc, argv))
#endif
functionsPtr->execute();
// Execute the functionObject 'end()' function for the last time
if (timei == timeDirs.size()-1)
{
functionsPtr->end();
}
}
catch (IOerror& err)
{