From aaf8985467c8f12d1189f7d2413e0d03d59d1320 Mon Sep 17 00:00:00 2001 From: andy Date: Wed, 2 Nov 2011 15:17:25 +0000 Subject: [PATCH] ENH: Added read-if-present equivalent functionality to IObasicSourceList --- .../basicSource/IObasicSourceList.C | 45 ++++++++++++++----- .../basicSource/IObasicSourceList.H | 3 ++ 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/IObasicSourceList.C b/src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/IObasicSourceList.C index cac80c3d3e..d69bffa1ec 100644 --- a/src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/IObasicSourceList.C +++ b/src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/IObasicSourceList.C @@ -27,6 +27,39 @@ License #include "fvMesh.H" #include "Time.H" +// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // + +Foam::IOobject Foam::IObasicSourceList::createIOobject +( + const fvMesh& mesh +) const +{ + IOobject io + ( + "sourcesProperties", + mesh.time().constant(), + mesh, + IOobject::MUST_READ, + IOobject::NO_WRITE + ); + + if (io.headerOk()) + { + Info<< "Creating field source list from " << io.name() << nl << endl; + + io.readOpt() = IOobject::MUST_READ_IF_MODIFIED; + return io; + } + else + { + Info<< "No field sources present" << nl << endl; + + io.readOpt() = IOobject::NO_READ; + return io; + } +} + + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::IObasicSourceList::IObasicSourceList @@ -34,17 +67,7 @@ Foam::IObasicSourceList::IObasicSourceList const fvMesh& mesh ) : - IOdictionary - ( - IOobject - ( - "sourcesProperties", - mesh.time().constant(), - mesh, - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ), + IOdictionary(createIOobject(mesh)), basicSourceList(mesh, *this) {} diff --git a/src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/IObasicSourceList.H b/src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/IObasicSourceList.H index a3c407814b..9b915899fb 100644 --- a/src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/IObasicSourceList.H +++ b/src/finiteVolume/cfdTools/general/fieldSources/basicSource/basicSource/IObasicSourceList.H @@ -57,6 +57,9 @@ private: // Private Member Functions + //- Create IO object if dictionary is present + IOobject createIOobject(const fvMesh& mesh) const; + //- Disallow default bitwise copy construct IObasicSourceList(const IObasicSourceList&);