diff --git a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H
index c790bb587196e0a22660779e001f39207f21f6ed..d08086234b856a55ebc4c941b3cf587b3ae18dd1 100644
--- a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H
+++ b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H
@@ -166,7 +166,7 @@ public:
             //- Const access to the coefficients dictionary,
             //  which provides info. about choice of models,
             //  and all related data (particularly model coefficients).
-            inline const dictionary& coeffDict() const
+            virtual const dictionary& coeffDict() const
             {
                 return coeffDict_;
             }
diff --git a/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.C b/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.C
index 2b54d0ef09223a0942b96f6345f4211e18ce13e8..acb34537c7fca816f3d6324a8d2ba4236b817e1e 100644
--- a/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.C
+++ b/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.C
@@ -353,7 +353,7 @@ void kOmegaSSTSAS::correct(const tmp<volTensorField>& gradU)
     volScalarField L(sqrt(k_)/(pow025(Cmu_)*omega_));
     volScalarField CDkOmega((2.0*alphaOmega2_)*(gradK & gradOmega)/omega_);
     volScalarField F1(this->F1(CDkOmega));
-    volScalarField G(nuSgs_*S2);
+    volScalarField G(type() + ".G", nuSgs_*S2);
 
     // Turbulent kinetic energy equation
     {
diff --git a/src/turbulenceModels/incompressible/RAS/LRR/LRR.C b/src/turbulenceModels/incompressible/RAS/LRR/LRR.C
index 68f0d2b2b0916f736169bbc7062bfccab7982113..49b0bd0a17b6192d4a8745b384b2c83d4b30c11f 100644
--- a/src/turbulenceModels/incompressible/RAS/LRR/LRR.C
+++ b/src/turbulenceModels/incompressible/RAS/LRR/LRR.C
@@ -339,7 +339,7 @@ void LRR::correct()
     }
 
     volSymmTensorField P(-twoSymm(R_ & fvc::grad(U_)));
-    volScalarField G("RASModel.G", 0.5*mag(tr(P)));
+    volScalarField G(type() + ".G", 0.5*mag(tr(P)));
 
     // Update epsilon and G at the wall
     epsilon_.boundaryField().updateCoeffs();
diff --git a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C
index 17d9157c905492c8806e93ef4cf7c7b71d4c7955..576d830421908a8e32e83065d09e5bc0787418c1 100644
--- a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C
+++ b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C
@@ -252,7 +252,7 @@ void LamBremhorstKE::correct()
         y_.correct();
     }
 
-    volScalarField G("RASModel.G", nut_*2*magSqr(symm(fvc::grad(U_))));
+    volScalarField G(type() + ".G", nut_*2*magSqr(symm(fvc::grad(U_))));
 
 
     // Calculate parameters and coefficients for low-Reynolds number model
diff --git a/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C b/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C
index c6ee7a7d448528bb363b420a923e85d9d1a37e97..2f8ff3b7ea0af39c5c2c35be8e160726be142dce 100644
--- a/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C
+++ b/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C
@@ -386,7 +386,7 @@ void LaunderGibsonRSTM::correct()
     }
 
     volSymmTensorField P(-twoSymm(R_ & fvc::grad(U_)));
-    volScalarField G("RASModel.G", 0.5*mag(tr(P)));
+    volScalarField G(type() + ".G", 0.5*mag(tr(P)));
 
     // Update epsilon and G at the wall
     epsilon_.boundaryField().updateCoeffs();
diff --git a/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C b/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C
index 53cc490f297f68a27758c1fdf311d8ba9172c616..c6854e7cba2f0c8a199ed0b7fea4a98b93390ed3 100644
--- a/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C
+++ b/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C
@@ -255,7 +255,7 @@ void LaunderSharmaKE::correct()
 
     tmp<volScalarField> S2 = 2*magSqr(symm(fvc::grad(U_)));
 
-    volScalarField G("RASModel.G", nut_*S2);
+    volScalarField G(type() + ".G", nut_*S2);
 
     const volScalarField E(2.0*nu()*nut_*fvc::magSqrGradGrad(U_));
     const volScalarField D(2.0*nu()*magSqr(fvc::grad(sqrt(k_))));
diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C
index 8eb972dcfbdc7083e243486748a25d2b3162e287..dbecdb2dc83602b917d5588005c6dc327b985844 100644
--- a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C
+++ b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C
@@ -356,7 +356,7 @@ void LienCubicKE::correct()
 
     volScalarField G
     (
-        "RASModel.G",
+        type() + ".G",
         Cmu_*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU)
     );
 
diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C
index 5162fa78bdafe469329f5ce28037b19ec34b7282..9c5d561998dc45c2256f5f92e0aeebcb694cc13c 100644
--- a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C
+++ b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C
@@ -446,7 +446,7 @@ void LienCubicKELowRe::correct()
 
     volScalarField G
     (
-        "RASModel.G",
+        type() + ".G",
         Cmu_*fMu*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU)
     );
 
diff --git a/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.C b/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.C
index 6daecaae6badc12bb3b88b7f5c46e348ae478f78..faf5c125e4f4a84e44e65124fc6753aa1c7b6580 100644
--- a/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.C
+++ b/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.C
@@ -319,7 +319,7 @@ void LienLeschzinerLowRe::correct()
 
     const volScalarField f2(scalar(1) - 0.3*exp(-sqr(Rt)));
 
-    volScalarField G("RASModel.G", Cmu_*fMu*sqr(k_)/epsilon_*S2);
+    volScalarField G(type() + ".G", Cmu_*fMu*sqr(k_)/epsilon_*S2);
 
 
     // Dissipation equation
diff --git a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C
index 750a4dc15b58d6a937ac4ffc633a8cd40b1b28cc..b33c0cd3a863b39f70876d86664e17b077ff94af 100644
--- a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C
+++ b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C
@@ -348,9 +348,8 @@ void NonlinearKEShih::correct()
 
     volScalarField G
     (
-        "RASModel.G",
-        Cmu_*sqr(k_)/epsilon_*S2
-      - (nonlinearStress_ && gradU)
+        type() + ".G",
+        Cmu_*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU)
     );
 
     #include "nonLinearWallFunctionsI.H"
diff --git a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H
index b1a97681c28c41f042f0235e7e5abe4e9ac0f498..4e890bb20514b6517bec7e280ca41a3902470f27 100644
--- a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H
+++ b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H
@@ -208,7 +208,7 @@ public:
             }
 
             //- Const access to the coefficients dictionary
-            const dictionary& coeffDict() const
+            virtual const dictionary& coeffDict() const
             {
                 return coeffDict_;
             }
diff --git a/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.C b/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.C
index 20ed988ca7eb507ecd9cc79fc111d6dcdd84056b..b82719f22189c2add52274d42141aea85ee45cf0 100644
--- a/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.C
+++ b/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.C
@@ -267,7 +267,7 @@ void RNGkEpsilon::correct()
     }
 
     const volScalarField S2(2*magSqr(symm(fvc::grad(U_))));
-    volScalarField G("RASModel.G", nut_*S2);
+    volScalarField G(type() + ".G", nut_*S2);
 
     const volScalarField eta(sqrt(S2)*k_/epsilon_);
     volScalarField R
diff --git a/src/turbulenceModels/incompressible/RAS/backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C b/src/turbulenceModels/incompressible/RAS/backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C
index 3940b067a45ce75724acd68de67b48778b15c891..e76ab693998796634aa91e138220b31c671ce77d 100644
--- a/src/turbulenceModels/incompressible/RAS/backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C
+++ b/src/turbulenceModels/incompressible/RAS/backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C
@@ -75,7 +75,7 @@ tmp<volScalarField> autoCreateNut
             if (isA<wallFvPatch>(bm[patchI]))
             {
                 nutBoundaryTypes[patchI] =
-                    RASModels::nutkWallFunctionFvPatchScalarField::typeName;
+                    nutkWallFunctionFvPatchScalarField::typeName;
             }
             else
             {
@@ -145,7 +145,7 @@ tmp<volScalarField> autoCreateLowReNut
             if (isA<wallFvPatch>(bm[patchI]))
             {
                 nutBoundaryTypes[patchI] =
-                    RASModels::nutLowReWallFunctionFvPatchScalarField::typeName;
+                    nutLowReWallFunctionFvPatchScalarField::typeName;
             }
             else
             {
@@ -191,7 +191,7 @@ tmp<volScalarField> autoCreateEpsilon
         autoCreateWallFunctionField
         <
             scalar,
-            RASModels::epsilonWallFunctionFvPatchScalarField
+            epsilonWallFunctionFvPatchScalarField
         >
         (
             fieldName,
@@ -210,7 +210,7 @@ tmp<volScalarField> autoCreateOmega
         autoCreateWallFunctionField
         <
             scalar,
-            RASModels::omegaWallFunctionFvPatchScalarField
+            omegaWallFunctionFvPatchScalarField
         >
         (
             fieldName,
@@ -229,7 +229,7 @@ tmp<volScalarField> autoCreateK
         autoCreateWallFunctionField
         <
             scalar,
-            RASModels::kqRWallFunctionFvPatchField<scalar>
+            kqRWallFunctionFvPatchField<scalar>
         >
         (
             fieldName,
@@ -248,7 +248,7 @@ tmp<volScalarField> autoCreateQ
         autoCreateWallFunctionField
         <
             scalar,
-            RASModels::kqRWallFunctionFvPatchField<scalar>
+            kqRWallFunctionFvPatchField<scalar>
         >
         (
             fieldName,
@@ -267,7 +267,7 @@ tmp<volSymmTensorField> autoCreateR
         autoCreateWallFunctionField
         <
             symmTensor,
-            RASModels::kqRWallFunctionFvPatchField<symmTensor>
+            kqRWallFunctionFvPatchField<symmTensor>
         >
         (
             fieldName,
diff --git a/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.C b/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.C
index c12783bcdbb2c69e329bf73c3f9443885430b7cd..48ccd699c74bd230a63f70af181411996ad1ec50 100644
--- a/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.C
+++ b/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.C
@@ -235,7 +235,7 @@ void kEpsilon::correct()
         return;
     }
 
-    volScalarField G("RASModel.G", nut_*2*magSqr(symm(fvc::grad(U_))));
+    volScalarField G(type() + ".G", nut_*2*magSqr(symm(fvc::grad(U_))));
 
     // Update epsilon and G at the wall
     epsilon_.boundaryField().updateCoeffs();
diff --git a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C
index f2faf19966b4e11f493d28849078bedecd3e7615..497fbed7c6914eb53572a52af6c02ed8b09483b3 100644
--- a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C
+++ b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C
@@ -244,7 +244,7 @@ void kOmega::correct()
         return;
     }
 
-    volScalarField G("RASModel.G", nut_*2*magSqr(symm(fvc::grad(U_))));
+    volScalarField G(type() + ".G", nut_*2*magSqr(symm(fvc::grad(U_))));
 
     // Update omega and G at the wall
     omega_.boundaryField().updateCoeffs();
diff --git a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C
index 02899ec4c9b197b0b30169ddac07251c288e492b..3758a1e9078fb6c8e4d3e12fe1fbf13aa9843875 100644
--- a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C
+++ b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C
@@ -364,7 +364,7 @@ void kOmegaSST::correct()
     }
 
     const volScalarField S2(2*magSqr(symm(fvc::grad(U_))));
-    volScalarField G("RASModel.G", nut_*S2);
+    volScalarField G(type() + ".G", nut_*S2);
 
     // Update omega and G at the wall
     omega_.boundaryField().updateCoeffs();
diff --git a/src/turbulenceModels/incompressible/RAS/qZeta/qZeta.C b/src/turbulenceModels/incompressible/RAS/qZeta/qZeta.C
index 03a3b8a5a6eaa9981d91986000fc33e9985bc716..8803807bbee7c4d89f5c5ace959c0b0aaa7cf882 100644
--- a/src/turbulenceModels/incompressible/RAS/qZeta/qZeta.C
+++ b/src/turbulenceModels/incompressible/RAS/qZeta/qZeta.C
@@ -311,7 +311,7 @@ void qZeta::correct()
 
     tmp<volScalarField> S2 = 2*magSqr(symm(fvc::grad(U_)));
 
-    volScalarField G("RASModel.G", nut_/(2.0*q_)*S2);
+    volScalarField G(type() + ".G", nut_/(2.0*q_)*S2);
     const volScalarField E(nu()*nut_/q_*fvc::magSqrGradGrad(U_));
 
 
diff --git a/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.C b/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.C
index 3161d16371a95bf46db40c7dc4808acca7284a7d..d106180142072934341fe6040083f7e33a4fb444 100644
--- a/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.C
+++ b/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.C
@@ -297,7 +297,7 @@ void realizableKE::correct()
     const volScalarField eta(magS*k_/epsilon_);
     tmp<volScalarField> C1 = max(eta/(scalar(5) + eta), scalar(0.43));
 
-    volScalarField G("RASModel.G", nut_*S2);
+    volScalarField G(type() + ".G", nut_*S2);
 
     // Update epsilon and G at the wall
     epsilon_.boundaryField().updateCoeffs();
diff --git a/src/turbulenceModels/incompressible/RAS/v2f/v2f.C b/src/turbulenceModels/incompressible/RAS/v2f/v2f.C
index d7304617ac2b35239454a6eda24371379fd6ceb3..b8d20d262433c0c213e9d84e0e03fa2162f688c8 100644
--- a/src/turbulenceModels/incompressible/RAS/v2f/v2f.C
+++ b/src/turbulenceModels/incompressible/RAS/v2f/v2f.C
@@ -364,9 +364,9 @@ void v2f::correct()
     const volTensorField gradU(fvc::grad(U_));
     const volScalarField S2(2*magSqr(dev(symm(gradU))));
 
-    const volScalarField G("RASModel.G", nut_*S2);
+    const volScalarField G(type() + ".G", nut_*S2);
     const volScalarField T(Ts());
-    const volScalarField L2("v2f.L2", sqr(Ls()));
+    const volScalarField L2(type() + ".L2", sqr(Ls()));
     const volScalarField alpha
     (
         "v2f::alpha",
diff --git a/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.C b/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.C
index a633c7a70e30df29bdc8c7feb1b33e4fa86d3ffc..65a6e2e6850bb00222cdd8103482490e41d27b78 100644
--- a/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.C
+++ b/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.C
@@ -77,6 +77,12 @@ autoPtr<laminar> laminar::New
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
+const dictionary& laminar::coeffDict() const
+{
+    return dictionary::null;
+}
+
+
 tmp<volScalarField> laminar::nut() const
 {
     return tmp<volScalarField>
diff --git a/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.H b/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.H
index 5b79ecd48538d6226854350183a0746e7ab9b5ca..9c8588015f02025d604238d121367902b2a0e95a 100644
--- a/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.H
+++ b/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.H
@@ -89,6 +89,9 @@ public:
 
     // Member Functions
 
+        //- Const access to the coefficients dictionary
+        virtual const dictionary& coeffDict() const;
+
         //- Return the turbulence viscosity, i.e. 0 for laminar flow
         virtual tmp<volScalarField> nut() const;
 
diff --git a/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModel.H b/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModel.H
index c2eacdaf39201458b69422646d363383a7fde7f3..91eef14ad78ce3f5cb62e9c556b28586e3325ee1 100644
--- a/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModel.H
+++ b/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModel.H
@@ -153,6 +153,9 @@ public:
 
     // Member Functions
 
+        //- Const access to the coefficients dictionary
+        virtual const dictionary& coeffDict() const = 0;
+
         //- Access function to velocity field
         inline const volVectorField& U() const
         {