From 43e4571143edc6ce3365b0e8cfad5967e7cffd01 Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Wed, 14 Dec 2016 15:25:39 +0000
Subject: [PATCH] ENH: subModelBase - added function to get a dictionary

---
 .../primitives/subModelBase/subModelBase.C    | 28 +++++++++++++++++++
 .../primitives/subModelBase/subModelBase.H    |  7 +++++
 2 files changed, 35 insertions(+)

diff --git a/src/OpenFOAM/primitives/subModelBase/subModelBase.C b/src/OpenFOAM/primitives/subModelBase/subModelBase.C
index dae11236965..9a220797dee 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 da29dcbca2a..a2c194ac2b0 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;
-- 
GitLab