From a5fb2fcafcc9caa5597696c15874a02eb1442ad7 Mon Sep 17 00:00:00 2001
From: andy <andy>
Date: Mon, 3 Dec 2012 13:44:15 +0000
Subject: [PATCH] ENH: Cache kappa for directionalSolidThermo instead of
 creating field on each pass of face loop

---
 .../temperatureCoupledBase.C                  | 63 +++++++++----------
 1 file changed, 31 insertions(+), 32 deletions(-)

diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
index 034cd50e3ed..14448ca71c8 100644
--- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
+++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C
@@ -99,66 +99,58 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa
                 );
 
             return model.kappaEff(patch_.index());
+            break;
         }
-        break;
 
         case SOLIDTHERMO:
         {
             const solidThermo& thermo =
-                mesh.lookupObject<solidThermo>
-                (
-                    "thermophysicalProperties"
-                );
+                mesh.lookupObject<solidThermo>("thermophysicalProperties");
+
             return thermo.kappa(patch_.index());
+            break;
         }
-        break;
 
         case DIRECTIONALSOLIDTHERMO:
         {
             const solidThermo& thermo =
-                mesh.lookupObject<solidThermo>
-                (
-                    "thermophysicalProperties"
-                );
+                mesh.lookupObject<solidThermo>("thermophysicalProperties");
+
+            const vectorField kappa(thermo.Kappa(patch_.index()));
 
             tmp<scalarField> tmeanKappa(Tp);
             scalarField& meanKappa = tmeanKappa();
             forAll(meanKappa, i)
             {
-                meanKappa[i] =
-                (
-                    thermo.Kappa(patch_.index())()[i].x()
-                  + thermo.Kappa(patch_.index())()[i].y()
-                  + thermo.Kappa(patch_.index())()[i].z()
-                )/3.0;
+                meanKappa[i] = (kappa[i].x() + kappa[i].y() + kappa[i].z())/3.0;
             }
 
             return meanKappa;
+            break;
         }
-        break;
 
         case LOOKUP:
         {
             if (mesh.objectRegistry::foundObject<volScalarField>(kappaName_))
             {
-                return patch_.lookupPatchField
-                <
-                    volScalarField, scalar
-                >(kappaName_);
+                return patch_.lookupPatchField<volScalarField, scalar>
+                (
+                    kappaName_
+                );
             }
             else if
             (
-                mesh.objectRegistry::foundObject
-                <
-                    volSymmTensorField
-                >(kappaName_)
+                mesh.objectRegistry::foundObject<volSymmTensorField>
+                (
+                    kappaName_
+                )
             )
             {
                 const symmTensorField& KWall =
-                    patch_.lookupPatchField
-                    <
-                        volSymmTensorField, scalar
-                    >(kappaName_);
+                    patch_.lookupPatchField<volSymmTensorField, scalar>
+                    (
+                        kappaName_
+                    );
 
                 const vectorField n(patch_.nf());
 
@@ -166,7 +158,10 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa
             }
             else
             {
-                FatalErrorIn("temperatureCoupledBase::K() const")
+                FatalErrorIn
+                (
+                    "temperatureCoupledBase::kappa(const scalarField&) const"
+                )
                     << "Did not find field " << kappaName_
                     << " on mesh " << mesh.name() << " patch " << patch_.name()
                     << endl
@@ -178,12 +173,16 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa
 
                 return scalarField(0);
             }
+            break;
         }
 
         default:
         {
-            FatalErrorIn("temperatureCoupledBase::kappa() const")
-                << "Unimplemented method " << method_ << endl
+            FatalErrorIn
+            (
+                "temperatureCoupledBase::kappa(const scalarField&) const"
+            )
+                << "Unimplemented method " << method_ << nl
                 << "Please set 'kappa' to one of " << KMethodTypeNames_.toc()
                 << " and 'kappaName' to the name of the volScalar"
                 << " or volSymmTensor field (if kappa=lookup)"
-- 
GitLab