diff --git a/src/OpenFOAM/primitives/subModelBase/subModelBase.C b/src/OpenFOAM/primitives/subModelBase/subModelBase.C index dae11236965e35afbacfafcd80c982a2961a94d5..9a220797deed1344acc63d4544cf6c68a7eb499c 100644 --- a/src/OpenFOAM/primitives/subModelBase/subModelBase.C +++ b/src/OpenFOAM/primitives/subModelBase/subModelBase.C @@ -167,6 +167,34 @@ bool Foam::subModelBase::writeTime() const } +bool Foam::subModelBase::getModelDict +( + const word& entryName, + dictionary& dict +) const +{ + if (properties_.found(baseName_)) + { + const dictionary& baseDict = properties_.subDict(baseName_); + + if (inLine() && baseDict.found(modelName_)) + { + const dictionary& modelDict = baseDict.subDict(modelName_); + dict = modelDict.subOrEmptyDict(entryName); + return true; + } + else if (baseDict.found(modelType_)) + { + const dictionary& modelDict = baseDict.subDict(modelType_); + dict = modelDict.subOrEmptyDict(entryName); + return true; + } + } + + return false; +} + + void Foam::subModelBase::write(Ostream& os) const { os << coeffDict_; diff --git a/src/OpenFOAM/primitives/subModelBase/subModelBase.H b/src/OpenFOAM/primitives/subModelBase/subModelBase.H index da29dcbca2abfc44cc125384c09769aa3a7c685f..a2c194ac2b0c441540a004dd35f19016fd5f2be2 100644 --- a/src/OpenFOAM/primitives/subModelBase/subModelBase.H +++ b/src/OpenFOAM/primitives/subModelBase/subModelBase.H @@ -179,6 +179,13 @@ public: // Model properties + //- Retrieve dictionary, return true if set + bool getModelDict + ( + const word& entryName, + dictionary& dict + ) const; + //- Retrieve generic property from the sub-model template<class Type> void getModelProperty(const word& entryName, Type& value) const;