ENH: writeFile - add option to (not)use user time. Fixes #1078

This commit is contained in:
Andrew Heather
2018-12-03 16:58:40 +00:00
parent a8ff5b10e8
commit f3488c1220
2 changed files with 19 additions and 4 deletions

View File

@ -85,15 +85,18 @@ Foam::fileName Foam::functionObjects::writeFile::baseTimeDir() const
Foam::autoPtr<Foam::OFstream> Foam::functionObjects::writeFile::createFile Foam::autoPtr<Foam::OFstream> Foam::functionObjects::writeFile::createFile
( (
const word& name, const word& name,
const scalar time const scalar time0
) const ) const
{ {
autoPtr<OFstream> osPtr; autoPtr<OFstream> osPtr;
if (Pstream::master() && writeToFile_) if (Pstream::master() && writeToFile_)
{ {
const scalar userTime = fileObr_.time().timeToUserTime(time); const scalar time = useUserTime_ ?
const word timeName = Time::timeName(userTime); fileObr_.time().timeToUserTime(time0)
: time0;
const word timeName = Time::timeName(time);
fileName outputDir(baseFileDir()/prefix_/timeName); fileName outputDir(baseFileDir()/prefix_/timeName);
@ -164,6 +167,7 @@ Foam::functionObjects::writeFile::writeFile
writePrecision_(IOstream::defaultPrecision()), writePrecision_(IOstream::defaultPrecision()),
writeToFile_(true), writeToFile_(true),
writtenHeader_(false), writtenHeader_(false),
useUserTime_(true),
startTime_(obr.time().startTime().value()) startTime_(obr.time().startTime().value())
{} {}
@ -183,6 +187,7 @@ Foam::functionObjects::writeFile::writeFile
writePrecision_(IOstream::defaultPrecision()), writePrecision_(IOstream::defaultPrecision()),
writeToFile_(true), writeToFile_(true),
writtenHeader_(false), writtenHeader_(false),
useUserTime_(true),
startTime_(obr.time().startTime().value()) startTime_(obr.time().startTime().value())
{ {
read(dict); read(dict);
@ -205,6 +210,9 @@ bool Foam::functionObjects::writeFile::read(const dictionary& dict)
writeToFile_ = dict.lookupOrDefault("writeToFile", true); writeToFile_ = dict.lookupOrDefault("writeToFile", true);
writeToFile_ = writeToFile_ && Pstream::master(); writeToFile_ = writeToFile_ && Pstream::master();
// Use user time, e.g. CA deg in preference to seconds
useUserTime_ = dict.lookupOrDefault("useUserTime", true);
return true; return true;
} }
@ -277,7 +285,10 @@ void Foam::functionObjects::writeFile::writeHeader
void Foam::functionObjects::writeFile::writeTime(Ostream& os) const 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); os << setw(charWidth()) << Time::timeName(timeNow);
} }

View File

@ -82,6 +82,10 @@ protected:
//- Flag to identify whether the header has been written //- Flag to identify whether the header has been written
bool writtenHeader_; bool writtenHeader_;
//- Flag to use the specified user time, e.g. CA deg instead
//- of seconds. Default = true
bool useUserTime_;
//- Start time value //- Start time value
scalar startTime_; scalar startTime_;