ENH: Added mesh name to path of not using default region

This commit is contained in:
andy
2012-10-16 10:38:21 +01:00
parent f4ee6e1418
commit 967e389e94

View File

@ -25,6 +25,7 @@ License
#include "functionObjectFile.H"
#include "Time.H"
#include "polyMesh.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -47,6 +48,16 @@ Foam::fileName Foam::functionObjectFile::baseFileDir() const
baseDir = baseDir/outputPrefix;
}
// append mesh name if not default region
if (isA<polyMesh>(obr_))
{
const polyMesh& mesh = refCast<const polyMesh>(obr_);
if (mesh.name() != polyMesh::defaultRegion)
{
baseDir = baseDir/mesh.name();
}
}
return baseDir;
}
@ -58,6 +69,8 @@ Foam::fileName Foam::functionObjectFile::baseTimeDir() const
void Foam::functionObjectFile::createFiles()
{
if (Pstream::master())
{
const word startTimeName =
obr_.time().timeName(obr_.time().startTime().value());
@ -65,7 +78,7 @@ void Foam::functionObjectFile::createFiles()
label i = 0;
forAllConstIter(wordHashSet, names_, iter)
{
if (Pstream::master() && !filePtrs_.set(i))
if (!filePtrs_.set(i))
{
fileName outputDir(baseFileDir()/prefix_/startTimeName);
@ -77,6 +90,7 @@ void Foam::functionObjectFile::createFiles()
}
}
}
}
void Foam::functionObjectFile::writeFileHeader(const label i)
@ -86,15 +100,14 @@ void Foam::functionObjectFile::writeFileHeader(const label i)
void Foam::functionObjectFile::write()
{
if (Pstream::master())
{
createFiles();
}
}
void Foam::functionObjectFile::resetNames(const wordList& names)
{
if (Pstream::master())
{
names_.clear();
names_.insert(names);
@ -104,9 +117,12 @@ void Foam::functionObjectFile::resetNames(const wordList& names)
createFiles();
}
}
void Foam::functionObjectFile::resetName(const word& name)
{
if (Pstream::master())
{
names_.clear();
names_.insert(name);
@ -116,6 +132,7 @@ void Foam::functionObjectFile::resetName(const word& name)
createFiles();
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
@ -144,12 +161,17 @@ Foam::functionObjectFile::functionObjectFile
prefix_(prefix),
names_(),
filePtrs_()
{
if (Pstream::master())
{
names_.clear();
names_.insert(name);
filePtrs_.clear();
filePtrs_.setSize(names_.toc().size());
// cannot create files - need to access virtual function
}
}
@ -164,12 +186,17 @@ Foam::functionObjectFile::functionObjectFile
prefix_(prefix),
names_(names),
filePtrs_()
{
if (Pstream::master())
{
names_.clear();
names_.insert(names);
filePtrs_.clear();
filePtrs_.setSize(names_.toc().size());
// cannot create files - need to access virtual function
}
}
@ -183,6 +210,13 @@ Foam::functionObjectFile::~functionObjectFile()
Foam::OFstream& Foam::functionObjectFile::file()
{
if (!Pstream::master())
{
FatalErrorIn("Foam::OFstream& Foam::functionObjectFile::file()")
<< "Request for file() can only be done by the master process"
<< abort(FatalError);
}
if (filePtrs_.size() != 1)
{
WarningIn("Foam::Ostream& Foam::functionObjectFile::file()")
@ -196,12 +230,29 @@ Foam::OFstream& Foam::functionObjectFile::file()
Foam::PtrList<Foam::OFstream>& Foam::functionObjectFile::files()
{
if (!Pstream::master())
{
FatalErrorIn("Foam::OFstream& Foam::functionObjectFile::files()")
<< "Request for files() can only be done by the master process"
<< abort(FatalError);
}
return filePtrs_;
}
Foam::OFstream& Foam::functionObjectFile::file(const label i)
{
if (!Pstream::master())
{
FatalErrorIn
(
"Foam::OFstream& Foam::functionObjectFile::file(const label)"
)
<< "Request for file(i) can only be done by the master process"
<< abort(FatalError);
}
return filePtrs_[i];
}