diff --git a/src/thermophysicalModels/radiationModels/radiationModel/noRadiation/noRadiation.C b/src/thermophysicalModels/radiationModels/radiationModel/noRadiation/noRadiation.C index 604a5dbbe3843ca1348caf90b708a8663d5b5799..69666b7c63a0a591021ed049dc00e439bbc4bb4c 100644 --- a/src/thermophysicalModels/radiationModels/radiationModel/noRadiation/noRadiation.C +++ b/src/thermophysicalModels/radiationModels/radiationModel/noRadiation/noRadiation.C @@ -52,7 +52,7 @@ Foam::radiation::noRadiation::noRadiation const volScalarField& T ) : - radiationModel(dict, T) + radiationModel(T) {} diff --git a/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.C b/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.C index 55e2e1fb53668ee06a9154ec9c506c27822a016d..5948101185c074bc1aa90c44b10bca28be2c7759 100644 --- a/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.C +++ b/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.C @@ -43,6 +43,33 @@ namespace Foam // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // +Foam::IOobject Foam::radiation::radiationModel::createIOobject +( + const fvMesh& mesh +) const +{ + IOobject io + ( + "radiationProperties", + mesh.time().constant(), + mesh, + IOobject::MUST_READ, + IOobject::NO_WRITE + ); + + if (io.headerOk()) + { + io.readOpt() = IOobject::MUST_READ_IF_MODIFIED; + return io; + } + else + { + io.readOpt() = IOobject::NO_READ; + return io; + } +} + + void Foam::radiation::radiationModel::initialise() { if (radiation_) @@ -62,35 +89,6 @@ void Foam::radiation::radiationModel::initialise() // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::radiation::radiationModel::radiationModel(const volScalarField& T) -: - IOdictionary - ( - IOobject - ( - "radiationProperties", - T.time().constant(), - T.mesh(), - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ), - mesh_(T.mesh()), - time_(T.time()), - T_(T), - radiation_(false), - coeffs_(dictionary::null), - solverFreq_(0), - firstIter_(true), - absorptionEmission_(NULL), - scatter_(NULL) -{} - - -Foam::radiation::radiationModel::radiationModel -( - const dictionary& dict, - const volScalarField& T -) : IOdictionary ( @@ -101,8 +99,7 @@ Foam::radiation::radiationModel::radiationModel T.mesh(), IOobject::NO_READ, IOobject::NO_WRITE - ), - dict + ) ), mesh_(T.mesh()), time_(T.time()), @@ -122,17 +119,7 @@ Foam::radiation::radiationModel::radiationModel const volScalarField& T ) : - IOdictionary - ( - IOobject - ( - "radiationProperties", - T.time().constant(), - T.mesh(), - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ), + IOdictionary(createIOobject(T.mesh())), mesh_(T.mesh()), time_(T.time()), T_(T), @@ -143,6 +130,11 @@ Foam::radiation::radiationModel::radiationModel absorptionEmission_(NULL), scatter_(NULL) { + if (readOpt() == IOobject::NO_READ) + { + radiation_ = false; + } + initialise(); } diff --git a/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.H b/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.H index 5f5a92887baea8fa00ccb07c4e0df30472636e08..1218dac9e9b72612be3a91984f2d08d52215ec88 100644 --- a/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.H +++ b/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModel.H @@ -109,6 +109,9 @@ private: // Private Member Functions + //- Create IO object if dictionary is present + IOobject createIOobject(const fvMesh& mesh) const; + //- Initialise void initialise(); @@ -156,9 +159,6 @@ public: //- Null constructor radiationModel(const volScalarField& T); - //- Construct with dictionary - radiationModel(const dictionary& dict, const volScalarField& T); - //- Construct from components radiationModel(const word& type, const volScalarField& T); diff --git a/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModelNew.C b/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModelNew.C index ae13f11d1a503f2d1838c78c4540dbd66c222ec7..9a95b0c88f8bf9a0c145264af21c302971179067 100644 --- a/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModelNew.C +++ b/src/thermophysicalModels/radiationModels/radiationModel/radiationModel/radiationModelNew.C @@ -33,23 +33,27 @@ Foam::radiation::radiationModel::New const volScalarField& T ) { - // get model name, but do not register the dictionary - const word modelType + IOobject radIO ( - IOdictionary - ( - IOobject - ( - "radiationProperties", - T.time().constant(), - T.mesh(), - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE, - false - ) - ).lookup("radiationModel") + "radiationProperties", + T.time().constant(), + T.mesh(), + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE, + false ); + word modelType("none"); + if (radIO.headerOk()) + { + IOdictionary(radIO).lookup("radiationModel") >> modelType; + } + else + { + Info<< "Radiation model not active: radiationProperties not found" + << endl; + } + Info<< "Selecting radiationModel " << modelType << endl; TConstructorTable::iterator cstrIter =