From 04208389d12a834a90efd6c509cb71023a7b29ef Mon Sep 17 00:00:00 2001
From: andy <andy>
Date: Thu, 4 Apr 2013 10:12:21 +0100
Subject: [PATCH] ENH: Updated temperatureCoupledBase - added support for case
 when tub model not available

---
 .../temperatureCoupledBase.C                  | 61 +++++++++++--------
 .../temperatureCoupledBase.H                  | 16 +++--
 2 files changed, 47 insertions(+), 30 deletions(-)

diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
index d3cab304ab5..81528a07ded 100644
--- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
+++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
@@ -1,4 +1,4 @@
-/*---------------------------------------------------------------------------*\
+ /*---------------------------------------------------------------------------*\
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
@@ -25,9 +25,9 @@ License
 
 #include "temperatureCoupledBase.H"
 #include "volFields.H"
+#include "fluidThermo.H"
 #include "solidThermo.H"
 #include "turbulenceModel.H"
-#include "fluidThermo.H"
 
 // * * * * * * * * * * * * * Static Member Data  * * * * * * * * * * * * * * //
 
@@ -90,19 +90,39 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa
 
     switch (method_)
     {
-        case BASICTHERMO:
+        case mtFluidThermo:
         {
-            const compressible::turbulenceModel& turbModel =
-                mesh.lookupObject<compressible::turbulenceModel>
+            typedef compressible::turbulenceModel turbulenceModel;
+
+            if (mesh.foundObject<turbulenceModel>("turbulenceModel"))
+            {
+                const turbulenceModel& turbModel =
+                    mesh.lookupObject<turbulenceModel>("turbulenceModel");
+
+                return turbModel.kappaEff(patch_.index());
+            }
+            else if (mesh.foundObject<fluidThermo>("thermophysicalProperties"))
+            {
+                const fluidThermo& thermo =
+                    mesh.lookupObject<fluidThermo>("thermophysicalProperties");
+
+                return thermo.kappa(patch_.index());
+            }
+            else
+            {
+                FatalErrorIn
                 (
-                    "turbulenceModel"
-                );
+                    "temperatureCoupledBase::kappa(const scalarField&) const"
+                )
+                    << "Kappa defined to employ " << KMethodTypeNames_[method_]
+                    << " method, but thermo package not available"
+                    << exit(FatalError);
+            }
 
-            return turbModel.kappaEff(patch_.index());
             break;
         }
 
-        case SOLIDTHERMO:
+        case mtSolidThermo:
         {
             const solidThermo& thermo =
                 mesh.lookupObject<solidThermo>("thermophysicalProperties");
@@ -111,7 +131,7 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa
             break;
         }
 
-        case DIRECTIONALSOLIDTHERMO:
+        case mtDirectionalSolidThermo:
         {
             const solidThermo& thermo =
                 mesh.lookupObject<solidThermo>("thermophysicalProperties");
@@ -129,22 +149,16 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa
             break;
         }
 
-        case LOOKUP:
+        case mtLookup:
         {
-            if (mesh.objectRegistry::foundObject<volScalarField>(kappaName_))
+            if (mesh.foundObject<volScalarField>(kappaName_))
             {
                 return patch_.lookupPatchField<volScalarField, scalar>
                 (
                     kappaName_
                 );
             }
-            else if
-            (
-                mesh.objectRegistry::foundObject<volSymmTensorField>
-                (
-                    kappaName_
-                )
-            )
+            else if (mesh.foundObject<volSymmTensorField>(kappaName_))
             {
                 const symmTensorField& KWall =
                     patch_.lookupPatchField<volSymmTensorField, scalar>
@@ -164,15 +178,14 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa
                 )
                     << "Did not find field " << kappaName_
                     << " on mesh " << mesh.name() << " patch " << patch_.name()
-                    << endl
+                    << nl
                     << "Please set 'kappa' to one of "
                     << KMethodTypeNames_.toc()
                     << " and 'kappaName' to the name of the volScalar"
                     << " or volSymmTensor field (if kappa=lookup)"
                     << exit(FatalError);
-
-                return scalarField(0);
             }
+
             break;
         }
 
@@ -182,14 +195,14 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa
             (
                 "temperatureCoupledBase::kappa(const scalarField&) const"
             )
-                << "Unimplemented method " << method_ << nl
+                << "Unimplemented method " << KMethodTypeNames_[method_] << nl
                 << "Please set 'kappa' to one of " << KMethodTypeNames_.toc()
                 << " and 'kappaName' to the name of the volScalar"
                 << " or volSymmTensor field (if kappa=lookup)"
                 << exit(FatalError);
         }
-        break;
     }
+
     return scalarField(0);
 }
 
diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H
index c0abdb8ef9b..575d6bc1ed2 100644
--- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H
+++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -54,21 +54,25 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-        Class temperatureCoupledBase Declaration
+                   Class temperatureCoupledBase Declaration
 \*---------------------------------------------------------------------------*/
 
 class temperatureCoupledBase
 {
 public:
+
+    // Public enumerations
+
         //- Type of supplied Kappa
         enum KMethodType
         {
-            BASICTHERMO,
-            SOLIDTHERMO,
-            DIRECTIONALSOLIDTHERMO,
-            LOOKUP
+            mtFluidThermo,
+            mtSolidThermo,
+            mtDirectionalSolidThermo,
+            mtLookup
         };
 
+
 private:
 
     // Private data
-- 
GitLab