diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C index e2cc8e28b5f8b2a2a11d39ca933d5db71a74e3b1..7792e9dca20db295c868979c05c4f39bda2ed6a5 100644 --- a/src/OpenFOAM/db/Time/Time.C +++ b/src/OpenFOAM/db/Time/Time.C @@ -336,16 +336,28 @@ void Foam::Time::setControls() void Foam::Time::setMonitoring(bool forceProfiling) { - // initialize profiling on request - // skip if 'active' keyword is explicitly set to false - const dictionary* profilingDict = - ( - forceProfiling - ? &dictionary::null - : controlDict_.subDictPtr("profiling") - ); + const dictionary* profilingDict = controlDict_.subDictPtr("profiling"); - if + // initialize profiling on request + // otherwise rely on profiling entry within controlDict + // and skip if 'active' keyword is explicitly set to false + if (forceProfiling) + { + profiling::initialize + ( + IOobject + ( + "profiling", + timeName(), + "uniform", + *this, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + *this + ); + } + else if ( profilingDict && profilingDict->lookupOrDefault<Switch>("active", true) diff --git a/src/OpenFOAM/global/profiling/profiling.C b/src/OpenFOAM/global/profiling/profiling.C index f64504f75a6cf7cb1b6f8fe7fb81df7da5762867..f1aec918209f4ee3a6a263d9d1ab4dcf8abf2ae7 100644 --- a/src/OpenFOAM/global/profiling/profiling.C +++ b/src/OpenFOAM/global/profiling/profiling.C @@ -438,6 +438,22 @@ bool Foam::profiling::writeData(Ostream& os) const } +bool Foam::profiling::writeObject +( + IOstream::streamFormat, + IOstream::versionNumber ver, + IOstream::compressionType +) const +{ + return regIOobject::writeObject + ( + IOstream::ASCII, + ver, + IOstream::UNCOMPRESSED + ); +} + + // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // Foam::profiling::Information* Foam::profiling::store(Information *info) diff --git a/src/OpenFOAM/global/profiling/profiling.H b/src/OpenFOAM/global/profiling/profiling.H index 409cbff461eae74dc972c692a82371c114980d5b..4986a92168bce4fe4ab53ec845405114e490f3cd 100644 --- a/src/OpenFOAM/global/profiling/profiling.H +++ b/src/OpenFOAM/global/profiling/profiling.H @@ -207,6 +207,14 @@ public: //- writeData member function required by regIOobject virtual bool writeData(Ostream&) const; + //- Write as uncompressed ASCII, using given format + virtual bool writeObject + ( + IOstream::streamFormat ignoreAlwaysASCII, + IOstream::versionNumber ver, + IOstream::compressionType ignoreAlwaysUncompressed + ) const; + };