From f3488c122030584f113784134326c030559e8f66 Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Mon, 3 Dec 2018 16:58:40 +0000 Subject: [PATCH] ENH: writeFile - add option to (not)use user time. Fixes #1078 --- .../db/functionObjects/writeFile/writeFile.C | 19 +++++++++++++++---- .../db/functionObjects/writeFile/writeFile.H | 4 ++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/OpenFOAM/db/functionObjects/writeFile/writeFile.C b/src/OpenFOAM/db/functionObjects/writeFile/writeFile.C index 23265362793..94e02f6b0a9 100644 --- a/src/OpenFOAM/db/functionObjects/writeFile/writeFile.C +++ b/src/OpenFOAM/db/functionObjects/writeFile/writeFile.C @@ -85,15 +85,18 @@ Foam::fileName Foam::functionObjects::writeFile::baseTimeDir() const Foam::autoPtr<Foam::OFstream> Foam::functionObjects::writeFile::createFile ( const word& name, - const scalar time + const scalar time0 ) const { autoPtr<OFstream> osPtr; if (Pstream::master() && writeToFile_) { - const scalar userTime = fileObr_.time().timeToUserTime(time); - const word timeName = Time::timeName(userTime); + const scalar time = useUserTime_ ? + fileObr_.time().timeToUserTime(time0) + : time0; + + const word timeName = Time::timeName(time); fileName outputDir(baseFileDir()/prefix_/timeName); @@ -164,6 +167,7 @@ Foam::functionObjects::writeFile::writeFile writePrecision_(IOstream::defaultPrecision()), writeToFile_(true), writtenHeader_(false), + useUserTime_(true), startTime_(obr.time().startTime().value()) {} @@ -183,6 +187,7 @@ Foam::functionObjects::writeFile::writeFile writePrecision_(IOstream::defaultPrecision()), writeToFile_(true), writtenHeader_(false), + useUserTime_(true), startTime_(obr.time().startTime().value()) { read(dict); @@ -205,6 +210,9 @@ bool Foam::functionObjects::writeFile::read(const dictionary& dict) writeToFile_ = dict.lookupOrDefault("writeToFile", true); writeToFile_ = writeToFile_ && Pstream::master(); + // Use user time, e.g. CA deg in preference to seconds + useUserTime_ = dict.lookupOrDefault("useUserTime", true); + return true; } @@ -277,7 +285,10 @@ void Foam::functionObjects::writeFile::writeHeader void Foam::functionObjects::writeFile::writeTime(Ostream& os) const { - const scalar timeNow = fileObr_.time().timeOutputValue(); + scalar timeNow = useUserTime_ ? + fileObr_.time().timeOutputValue() + : fileObr_.time().value(); + os << setw(charWidth()) << Time::timeName(timeNow); } diff --git a/src/OpenFOAM/db/functionObjects/writeFile/writeFile.H b/src/OpenFOAM/db/functionObjects/writeFile/writeFile.H index 3dcc397ff69..d430f0c3403 100644 --- a/src/OpenFOAM/db/functionObjects/writeFile/writeFile.H +++ b/src/OpenFOAM/db/functionObjects/writeFile/writeFile.H @@ -82,6 +82,10 @@ protected: //- Flag to identify whether the header has been written bool writtenHeader_; + //- Flag to use the specified user time, e.g. CA deg instead + //- of seconds. Default = true + bool useUserTime_; + //- Start time value scalar startTime_; -- GitLab