From 85e246b8f277e944cac57da4b34ad88c6b8befe7 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@Germany> Date: Wed, 22 Jun 2016 17:20:15 +0200 Subject: [PATCH] BUG: profiling dictionary could be binary/compressed (fixed #157) BUG: memInfo not activated by -profiling option (fixed #157) --- src/OpenFOAM/db/Time/Time.C | 30 ++++++++++++++++------- src/OpenFOAM/global/profiling/profiling.C | 16 ++++++++++++ src/OpenFOAM/global/profiling/profiling.H | 8 ++++++ 3 files changed, 45 insertions(+), 9 deletions(-) diff --git a/src/OpenFOAM/db/Time/Time.C b/src/OpenFOAM/db/Time/Time.C index e2cc8e28b5f..7792e9dca20 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 f64504f75a6..f1aec918209 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 409cbff461e..4986a92168b 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; + }; -- GitLab