mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: writeFile - enable file creation at a specified time. Fixes #1096
This commit is contained in:
@ -84,18 +84,18 @@ Foam::fileName Foam::functionObjects::writeFile::baseTimeDir() const
|
||||
|
||||
Foam::autoPtr<Foam::OFstream> Foam::functionObjects::writeFile::createFile
|
||||
(
|
||||
const word& name
|
||||
const word& name,
|
||||
const scalar time
|
||||
) const
|
||||
{
|
||||
autoPtr<OFstream> osPtr;
|
||||
|
||||
if (Pstream::master() && writeToFile_)
|
||||
{
|
||||
const scalar startTime = fileObr_.time().startTime().value();
|
||||
const scalar userStartTime = fileObr_.time().timeToUserTime(startTime);
|
||||
const word startTimeName = Time::timeName(userStartTime);
|
||||
const scalar userTime = fileObr_.time().timeToUserTime(time);
|
||||
const word timeName = Time::timeName(userTime);
|
||||
|
||||
fileName outputDir(baseFileDir()/prefix_/startTimeName);
|
||||
fileName outputDir(baseFileDir()/prefix_/timeName);
|
||||
|
||||
mkDir(outputDir);
|
||||
|
||||
@ -105,7 +105,7 @@ Foam::autoPtr<Foam::OFstream> Foam::functionObjects::writeFile::createFile
|
||||
IFstream is(outputDir/(fName + ".dat"));
|
||||
if (is.good())
|
||||
{
|
||||
fName = fName + "_" + startTimeName;
|
||||
fName = fName + "_" + timeName;
|
||||
}
|
||||
|
||||
osPtr.reset(new OFstream(outputDir/(fName + ".dat")));
|
||||
@ -123,6 +123,16 @@ Foam::autoPtr<Foam::OFstream> Foam::functionObjects::writeFile::createFile
|
||||
}
|
||||
|
||||
|
||||
Foam::autoPtr<Foam::OFstream> Foam::functionObjects::writeFile::createFile
|
||||
(
|
||||
const word& name
|
||||
) const
|
||||
{
|
||||
return createFile(name, startTime_);
|
||||
|
||||
}
|
||||
|
||||
|
||||
void Foam::functionObjects::writeFile::resetFile(const word& fileName)
|
||||
{
|
||||
fileName_ = fileName;
|
||||
@ -153,7 +163,8 @@ Foam::functionObjects::writeFile::writeFile
|
||||
filePtr_(),
|
||||
writePrecision_(IOstream::defaultPrecision()),
|
||||
writeToFile_(true),
|
||||
writtenHeader_(false)
|
||||
writtenHeader_(false),
|
||||
startTime_(obr.time().startTime().value())
|
||||
{}
|
||||
|
||||
|
||||
@ -171,7 +182,8 @@ Foam::functionObjects::writeFile::writeFile
|
||||
filePtr_(),
|
||||
writePrecision_(IOstream::defaultPrecision()),
|
||||
writeToFile_(true),
|
||||
writtenHeader_(false)
|
||||
writtenHeader_(false),
|
||||
startTime_(obr.time().startTime().value())
|
||||
{
|
||||
read(dict);
|
||||
|
||||
@ -182,12 +194,6 @@ Foam::functionObjects::writeFile::writeFile
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::functionObjects::writeFile::~writeFile()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
bool Foam::functionObjects::writeFile::read(const dictionary& dict)
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
|
||||
\\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
|
||||
\\/ M anipulation | Copyright (C) 2015-2018 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -82,6 +82,9 @@ protected:
|
||||
//- Flag to identify whether the header has been written
|
||||
bool writtenHeader_;
|
||||
|
||||
//- Start time value
|
||||
scalar startTime_;
|
||||
|
||||
|
||||
// Protected Member Functions
|
||||
|
||||
@ -94,8 +97,18 @@ protected:
|
||||
//- Return the base directory for the current time value
|
||||
fileName baseTimeDir() const;
|
||||
|
||||
//- Return an autoPtr to a new file for a given time
|
||||
virtual autoPtr<OFstream> createFile
|
||||
(
|
||||
const word& name,
|
||||
const scalar time
|
||||
) const;
|
||||
|
||||
//- Return an autoPtr to a new file
|
||||
virtual autoPtr<OFstream> createFile(const word& name) const;
|
||||
virtual autoPtr<OFstream> createFile
|
||||
(
|
||||
const word& name
|
||||
) const;
|
||||
|
||||
//- Reset internal file pointer to new file with new name
|
||||
virtual void resetFile(const word& name);
|
||||
@ -142,7 +155,7 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~writeFile();
|
||||
virtual ~writeFile() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
Reference in New Issue
Block a user