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