diff --git a/etc/controlDict b/etc/controlDict
index ed0606904d3ee1ca97dc96f84f2590a2deff17dd..832e63b55b1a8170d2aae66cfcc44b9ead97047a 100644
--- a/etc/controlDict
+++ b/etc/controlDict
@@ -847,7 +847,6 @@ DebugSwitches
     triSurface          0;
     triSurfaceMesh      0;
     turbulenceModel     0;
-    turbulentHeatFluxTemperature 0;
     turbulentInlet      0;
     turbulentIntensityKineticEnergyInlet 0;
     turbulentMixingLengthDissipationRateInlet 0;
diff --git a/src/TurbulenceModels/compressible/Make/files b/src/TurbulenceModels/compressible/Make/files
index c4aab942510cd628afd489cab84fe998245e32d0..56de74799cbdef7ea8f6d15abbfc84b0ba39765c 100644
--- a/src/TurbulenceModels/compressible/Make/files
+++ b/src/TurbulenceModels/compressible/Make/files
@@ -2,7 +2,6 @@ compressibleTurbulenceModel.C
 turbulentFluidThermoModels/turbulentFluidThermoModels.C
 
 BCs = turbulentFluidThermoModels/derivedFvPatchFields
-$(BCs)/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
 $(BCs)/temperatureCoupledBase/temperatureCoupledBase.C
 $(BCs)/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C
 $(BCs)/thermalBaffle1D/thermalBaffle1DFvPatchScalarFields.C
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
index 4c74daaf89cf2055a9f85be6a50b49cfa973c327..186722c21e41ca8aa7cae9a51092c9dd56dd015e 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -40,12 +40,11 @@ namespace Foam
         3
     >::names[] =
     {
-        "fixed_heat_flux",
-        "fixed_heat_transfer_coefficient",
-        "unknown"
+        "power",
+        "flux",
+        "coefficient"
     };
-
-} // End namespace Foam
+}
 
 const Foam::NamedEnum
 <
@@ -65,45 +64,19 @@ externalWallHeatFluxTemperatureFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     temperatureCoupledBase(patch(), "undefined", "undefined", "undefined-K"),
-    mode_(unknown),
-    q_(p.size(), 0.0),
-    h_(p.size(), 0.0),
-    Ta_(p.size(), 0.0),
-    QrPrevious_(p.size(), 0.0),
-    QrRelaxation_(1),
-    QrName_("undefined-Qr"),
+    mode_(fixedHeatFlux),
+    Q_(0),
+    qrRelaxation_(1),
+    qrName_("undefined-qr"),
     thicknessLayers_(),
     kappaLayers_()
 {
-    refValue() = 0.0;
-    refGrad() = 0.0;
-    valueFraction() = 1.0;
+    refValue() = 0;
+    refGrad() = 0;
+    valueFraction() = 1;
 }
 
 
-Foam::externalWallHeatFluxTemperatureFvPatchScalarField::
-externalWallHeatFluxTemperatureFvPatchScalarField
-(
-    const externalWallHeatFluxTemperatureFvPatchScalarField& ptf,
-    const fvPatch& p,
-    const DimensionedField<scalar, volMesh>& iF,
-    const fvPatchFieldMapper& mapper
-)
-:
-    mixedFvPatchScalarField(ptf, p, iF, mapper),
-    temperatureCoupledBase(patch(), ptf),
-    mode_(ptf.mode_),
-    q_(ptf.q_, mapper),
-    h_(ptf.h_, mapper),
-    Ta_(ptf.Ta_, mapper),
-    QrPrevious_(ptf.QrPrevious_, mapper),
-    QrRelaxation_(ptf.QrRelaxation_),
-    QrName_(ptf.QrName_),
-    thicknessLayers_(ptf.thicknessLayers_),
-    kappaLayers_(ptf.kappaLayers_)
-{}
-
-
 Foam::externalWallHeatFluxTemperatureFvPatchScalarField::
 externalWallHeatFluxTemperatureFvPatchScalarField
 (
@@ -114,48 +87,54 @@ externalWallHeatFluxTemperatureFvPatchScalarField
 :
     mixedFvPatchScalarField(p, iF),
     temperatureCoupledBase(patch(), dict),
-    mode_(unknown),
-    q_(p.size(), 0.0),
-    h_(p.size(), 0.0),
-    Ta_(p.size(), 0.0),
-    QrPrevious_(p.size(), 0.0),
-    QrRelaxation_(dict.lookupOrDefault<scalar>("relaxation", 1)),
-    QrName_(dict.lookupOrDefault<word>("Qr", "none")),
+    mode_(operationModeNames.read(dict.lookup("mode"))),
+    Q_(0),
+    qrRelaxation_(dict.lookupOrDefault<scalar>("qrRelaxation", 1)),
+    qrName_(dict.lookupOrDefault<word>("qr", "none")),
     thicknessLayers_(),
     kappaLayers_()
 {
-    if (dict.found("q") && !dict.found("h") && !dict.found("Ta"))
-    {
-        mode_ = fixedHeatFlux;
-        q_ = scalarField("q", dict, p.size());
-    }
-    else if (dict.found("h") && dict.found("Ta") && !dict.found("q"))
+    switch (mode_)
     {
-        mode_ = fixedHeatTransferCoeff;
-        h_ = scalarField("h", dict, p.size());
-        Ta_ = scalarField("Ta", dict, p.size());
-        if (dict.found("thicknessLayers"))
+        case fixedPower:
         {
-            dict.lookup("thicknessLayers") >> thicknessLayers_;
-            dict.lookup("kappaLayers") >> kappaLayers_;
+            dict.lookup("Q") >> Q_;
+
+            break;
+        }
+        case fixedHeatFlux:
+        {
+            q_ = scalarField("q", dict, p.size());
+
+            break;
+        }
+        case fixedHeatTransferCoeff:
+        {
+            h_ = scalarField("h", dict, p.size());
+            Ta_ = scalarField("Ta", dict, p.size());
+
+            if (dict.found("thicknessLayers"))
+            {
+                dict.lookup("thicknessLayers") >> thicknessLayers_;
+                dict.lookup("kappaLayers") >> kappaLayers_;
+            }
+
+            break;
         }
-    }
-    else
-    {
-        FatalErrorInFunction
-            << "\n patch type '" << p.type()
-            << "' either q or h and Ta were not found '"
-            << "\n for patch " << p.name()
-            << " of field " << internalField().name()
-            << " in file " << internalField().objectPath()
-            << exit(FatalError);
     }
 
     fvPatchScalarField::operator=(scalarField("value", dict, p.size()));
 
-    if (dict.found("QrPrevious"))
+    if (qrName_ != "none")
     {
-        QrPrevious_ = scalarField("QrPrevious", dict, p.size());
+        if (dict.found("qrPrevious"))
+        {
+            qrPrevious_ = scalarField("qrPrevious", dict, p.size());
+        }
+        else
+        {
+            qrPrevious_.setSize(p.size(), 0);
+        }
     }
 
     if (dict.found("refValue"))
@@ -169,8 +148,54 @@ externalWallHeatFluxTemperatureFvPatchScalarField
     {
         // Start from user entered data. Assume fixedValue.
         refValue() = *this;
-        refGrad() = 0.0;
-        valueFraction() = 1.0;
+        refGrad() = 0;
+        valueFraction() = 1;
+    }
+}
+
+
+Foam::externalWallHeatFluxTemperatureFvPatchScalarField::
+externalWallHeatFluxTemperatureFvPatchScalarField
+(
+    const externalWallHeatFluxTemperatureFvPatchScalarField& ptf,
+    const fvPatch& p,
+    const DimensionedField<scalar, volMesh>& iF,
+    const fvPatchFieldMapper& mapper
+)
+:
+    mixedFvPatchScalarField(ptf, p, iF, mapper),
+    temperatureCoupledBase(patch(), ptf),
+    mode_(ptf.mode_),
+    Q_(ptf.Q_),
+    qrRelaxation_(ptf.qrRelaxation_),
+    qrName_(ptf.qrName_),
+    thicknessLayers_(ptf.thicknessLayers_),
+    kappaLayers_(ptf.kappaLayers_)
+{
+    switch (mode_)
+    {
+        case fixedPower:
+        {
+            break;
+        }
+        case fixedHeatFlux:
+        {
+            q_.autoMap(mapper);
+
+            break;
+        }
+        case fixedHeatTransferCoeff:
+        {
+            h_.autoMap(mapper);
+            Ta_.autoMap(mapper);
+
+            break;
+        }
+    }
+
+    if (qrName_ != "none")
+    {
+        qrPrevious_.autoMap(mapper);
     }
 }
 
@@ -184,12 +209,13 @@ externalWallHeatFluxTemperatureFvPatchScalarField
     mixedFvPatchScalarField(tppsf),
     temperatureCoupledBase(tppsf),
     mode_(tppsf.mode_),
+    Q_(tppsf.Q_),
     q_(tppsf.q_),
     h_(tppsf.h_),
     Ta_(tppsf.Ta_),
-    QrPrevious_(tppsf.QrPrevious_),
-    QrRelaxation_(tppsf.QrRelaxation_),
-    QrName_(tppsf.QrName_),
+    qrPrevious_(tppsf.qrPrevious_),
+    qrRelaxation_(tppsf.qrRelaxation_),
+    qrName_(tppsf.qrName_),
     thicknessLayers_(tppsf.thicknessLayers_),
     kappaLayers_(tppsf.kappaLayers_)
 {}
@@ -205,12 +231,13 @@ externalWallHeatFluxTemperatureFvPatchScalarField
     mixedFvPatchScalarField(tppsf, iF),
     temperatureCoupledBase(patch(), tppsf),
     mode_(tppsf.mode_),
+    Q_(tppsf.Q_),
     q_(tppsf.q_),
     h_(tppsf.h_),
     Ta_(tppsf.Ta_),
-    QrPrevious_(tppsf.QrPrevious_),
-    QrRelaxation_(tppsf.QrRelaxation_),
-    QrName_(tppsf.QrName_),
+    qrPrevious_(tppsf.qrPrevious_),
+    qrRelaxation_(tppsf.qrRelaxation_),
+    qrName_(tppsf.qrName_),
     thicknessLayers_(tppsf.thicknessLayers_),
     kappaLayers_(tppsf.kappaLayers_)
 {}
@@ -224,10 +251,32 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::autoMap
 )
 {
     mixedFvPatchScalarField::autoMap(m);
-    q_.autoMap(m);
-    h_.autoMap(m);
-    Ta_.autoMap(m);
-    QrPrevious_.autoMap(m);
+
+    switch (mode_)
+    {
+        case fixedPower:
+        {
+            break;
+        }
+        case fixedHeatFlux:
+        {
+            q_.autoMap(m);
+
+            break;
+        }
+        case fixedHeatTransferCoeff:
+        {
+            h_.autoMap(m);
+            Ta_.autoMap(m);
+
+            break;
+        }
+    }
+
+    if (qrName_ != "none")
+    {
+        qrPrevious_.autoMap(m);
+    }
 }
 
 
@@ -242,10 +291,31 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::rmap
     const externalWallHeatFluxTemperatureFvPatchScalarField& tiptf =
         refCast<const externalWallHeatFluxTemperatureFvPatchScalarField>(ptf);
 
-    q_.rmap(tiptf.q_, addr);
-    h_.rmap(tiptf.h_, addr);
-    Ta_.rmap(tiptf.Ta_, addr);
-    QrPrevious_.rmap(tiptf.QrPrevious_, addr);
+    switch (mode_)
+    {
+        case fixedPower:
+        {
+            break;
+        }
+        case fixedHeatFlux:
+        {
+            q_.rmap(tiptf.q_, addr);
+
+            break;
+        }
+        case fixedHeatTransferCoeff:
+        {
+            h_.rmap(tiptf.h_, addr);
+            Ta_.rmap(tiptf.Ta_, addr);
+
+            break;
+        }
+    }
+
+    if (qrName_ != "none")
+    {
+        qrPrevious_.rmap(tiptf.qrPrevious_, addr);
+    }
 }
 
 
@@ -257,64 +327,68 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
     }
 
     const scalarField Tp(*this);
-    scalarField hp(patch().size(), 0.0);
+    scalarField hp(patch().size(), 0);
 
-    scalarField Qr(Tp.size(), 0.0);
-    if (QrName_ != "none")
+    scalarField qr(Tp.size(), 0);
+    if (qrName_ != "none")
     {
-        Qr = patch().lookupPatchField<volScalarField, scalar>(QrName_);
+        qr =
+            qrRelaxation_
+           *patch().lookupPatchField<volScalarField, scalar>(qrName_)
+          + (1 - qrRelaxation_)*qrPrevious_;
 
-        Qr = QrRelaxation_*Qr + (1.0 - QrRelaxation_)*QrPrevious_;
-        QrPrevious_ = Qr;
+        qrPrevious_ = qr;
     }
 
     switch (mode_)
     {
+        case fixedPower:
+        {
+            refGrad() = (Q_/gSum(patch().magSf()) + qr)/kappa(Tp);
+            refValue() = 0;
+            valueFraction() = 0;
+
+            break;
+        }
         case fixedHeatFlux:
         {
-            refGrad() = (q_ + Qr)/kappa(Tp);
-            refValue() = 0.0;
-            valueFraction() = 0.0;
+            refGrad() = (q_ + qr)/kappa(Tp);
+            refValue() = 0;
+            valueFraction() = 0;
 
             break;
         }
         case fixedHeatTransferCoeff:
         {
-            scalar totalSolidRes = 0.0;
-            if (thicknessLayers_.size() > 0)
+            scalar totalSolidRes = 0;
+            if (thicknessLayers_.size())
             {
                 forAll(thicknessLayers_, iLayer)
                 {
                     const scalar l = thicknessLayers_[iLayer];
-                    if (kappaLayers_[iLayer] > 0.0)
+                    if (kappaLayers_[iLayer] > 0)
                     {
                         totalSolidRes += l/kappaLayers_[iLayer];
                     }
                 }
             }
-            hp = 1.0/(1.0/h_ + totalSolidRes);
+            hp = 1/(1/h_ + totalSolidRes);
 
-            Qr /= Tp;
-            refGrad() = 0.0;
-            refValue() = hp*Ta_/(hp - Qr);
+            qr /= Tp;
+            refGrad() = 0;
+            refValue() = hp*Ta_/(hp - qr);
             valueFraction() =
-                (hp - Qr)/((hp - Qr) + kappa(Tp)*patch().deltaCoeffs());
+                (hp - qr)/((hp - qr) + kappa(Tp)*patch().deltaCoeffs());
 
             break;
         }
-        default:
-        {
-            FatalErrorInFunction
-                << "Illegal heat flux mode " << operationModeNames[mode_]
-                << exit(FatalError);
-        }
     }
 
     mixedFvPatchScalarField::updateCoeffs();
 
     if (debug)
     {
-        scalar Q = gSum(kappa(Tp)*patch().magSf()*snGrad());
+        const scalar Q = gSum(kappa(Tp)*patch().magSf()*snGrad());
 
         Info<< patch().boundaryMesh().mesh().name() << ':'
             << patch().name() << ':'
@@ -334,37 +408,55 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::write
     Ostream& os
 ) const
 {
-    mixedFvPatchScalarField::write(os);
-    temperatureCoupledBase::write(os);
+    fvPatchScalarField::write(os);
 
-    QrPrevious_.writeEntry("QrPrevious", os);
-    os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
-    os.writeKeyword("relaxation")<< QrRelaxation_
-        << token::END_STATEMENT << nl;
+    os.writeKeyword("mode")
+        << operationModeNames[mode_] << token::END_STATEMENT << nl;
+    temperatureCoupledBase::write(os);
 
     switch (mode_)
     {
+        case fixedPower:
+        {
+            os.writeKeyword("Q")
+                << Q_ << token::END_STATEMENT << nl;
 
+            break;
+        }
         case fixedHeatFlux:
         {
             q_.writeEntry("q", os);
+
             break;
         }
         case fixedHeatTransferCoeff:
         {
             h_.writeEntry("h", os);
             Ta_.writeEntry("Ta", os);
-            thicknessLayers_.writeEntry("thicknessLayers", os);
-            kappaLayers_.writeEntry("kappaLayers", os);
+
+            if (thicknessLayers_.size())
+            {
+                thicknessLayers_.writeEntry("thicknessLayers", os);
+                kappaLayers_.writeEntry("kappaLayers", os);
+            }
+
             break;
         }
-        default:
-        {
-            FatalErrorInFunction
-                << "Illegal heat flux mode " << operationModeNames[mode_]
-                << abort(FatalError);
-        }
     }
+
+    os.writeKeyword("qr")<< qrName_ << token::END_STATEMENT << nl;
+
+    if (qrName_ != "none")
+    {
+        qrPrevious_.writeEntry("qrPrevious", os);
+        os.writeKeyword("qrRelaxation")
+            << qrRelaxation_ << token::END_STATEMENT << nl;
+    }
+
+    refValue().writeEntry("refValue", os);
+    refGrad().writeEntry("refGradient", os);
+    valueFraction().writeEntry("valueFraction", os);
+    writeEntry("value", os);
 }
 
 
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
index 9b15197851ad17ace0aa036f69d4e5937762edd2..2389f60ec374307b6045fec8ef8f1b5894927951 100644
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
+++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2017 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -28,37 +28,41 @@ Group
     grpThermoBoundaryConditions grpWallBoundaryConditions
 
 Description
-    This boundary condition supplies a heat flux condition for temperature
-    on an external wall. Optional thin thermal layer resistances can be
-    specified through thicknessLayers and kappaLayers entries for the
-    fixed heat transfer coefficient mode.
+    This boundary condition applies a heat flux condition to temperature
+    on an external wall in one of three modes:
 
-    The condition can operate in two modes:
-      - fixed heat transfer coefficient: supply h and Ta
+      - fixed power: supply Q
       - fixed heat flux: supply q
+      - fixed heat transfer coefficient: supply h and Ta
 
     where:
     \vartable
-        h  | heat transfer coefficient [W/m^2/K]
-        Ta | ambient temperature [K]
-        q  | heat flux [W/m^2]
+        Q  | Power [W]
+        q  | Heat flux [W/m^2]
+        h  | Heat transfer coefficient [W/m^2/K]
+        Ta | Ambient temperature [K]
     \endvartable
 
+    For heat transfer coefficient mode optional thin thermal layer resistances
+    can be specified through thicknessLayers and kappaLayers entries.
+
     The thermal conductivity \c kappa can either be retrieved from various
     possible sources, as detailed in the class temperatureCoupledBase.
 
 Usage
     \table
-        Property     | Description                 | Required | Default value
-        q            | heat flux [W/m^2]           | yes*     |
-        Ta           | ambient temperature [K]     | yes*     |
-        h            | heat transfer coefficient [W/m^2/K] | yes*|
-        thicknessLayers | list of thicknesses per layer [m] | yes |
-        kappaLayers  | list of thermal conductivities per layer [W/m/K] | yes |
-        Qr           | name of the radiative field | no | no
-        relaxation   | relaxation factor for radiative field | no | 1
-        kappaMethod  | inherited from temperatureCoupledBase | inherited |
-        kappa        | inherited from temperatureCoupledBase | inherited |
+    Property     | Description                 | Required | Default value
+    mode         | 'power', 'flux' or 'coefficient' | yes |
+    Q            | Power [W]                   | for mode 'power'     |
+    q            | Heat flux [W/m^2]           | for mode 'flux'     |
+    h            | Heat transfer coefficient [W/m^2/K] | for mode 'coefficent' |
+    Ta           | Ambient temperature [K]     | for mode 'coefficient' |
+    thicknessLayers | Layer thicknesses [m] | no |
+    kappaLayers  | Layer thermal conductivities [W/m/K] | no |
+    qr           | Name of the radiative field | no | none
+    qrRelaxation | Relaxation factor for radiative field | no | 1
+    kappaMethod  | Inherited from temperatureCoupledBase | inherited |
+    kappa        | Inherited from temperatureCoupledBase | inherited |
     \endtable
 
     Example of the boundary condition specification:
@@ -66,24 +70,23 @@ Usage
     <patchName>
     {
         type            externalWallHeatFluxTemperature;
-        q               uniform 1000;
+
+        mode            coefficient;
+
         Ta              uniform 300.0;
         h               uniform 10.0;
         thicknessLayers (0.1 0.2 0.3 0.4);
         kappaLayers     (1 2 3 4);
-        value           uniform 300.0;
-        Qr              none;
-        relaxation      1;
-        kappaMethod           fluidThermo;
-        kappa       none;
+
+        kappaMethod     fluidThermo;
+
+        value           $internalField;
     }
     \endverbatim
 
-    Note:
-      - Only supply \c h and \c Ta, or \c q in the dictionary (see above)
-
 See also
     Foam::temperatureCoupledBase
+    Foam::mixedFvPatchScalarField
 
 SourceFiles
     externalWallHeatFluxTemperatureFvPatchScalarField.C
@@ -117,9 +120,9 @@ public:
         //- Operation mode enumeration
         enum operationMode
         {
+            fixedPower,
             fixedHeatFlux,
-            fixedHeatTransferCoeff,
-            unknown
+            fixedHeatTransferCoeff
         };
 
         static const NamedEnum<operationMode, 3> operationModeNames;
@@ -132,23 +135,26 @@ private:
         //- Operation mode
         operationMode mode_;
 
-        //- Heat flux / [W/m2]
+        //- Heat power [W]
+        scalar Q_;
+
+        //- Heat flux [W/m2]
         scalarField q_;
 
-        //- Heat transfer coefficient / [W/m2K]
+        //- Heat transfer coefficient [W/m2K]
         scalarField h_;
 
-        //- Ambient temperature / [K]
+        //- Ambient temperature [K]
         scalarField Ta_;
 
-        //- Chache Qr for relaxation
-        scalarField QrPrevious_;
+        //- Chache qr for relaxation
+        scalarField qrPrevious_;
 
-        //- Relaxation for Qr
-        scalar QrRelaxation_;
+        //- Relaxation for qr
+        scalar qrRelaxation_;
 
         //- Name of the radiative heat flux
-        const word QrName_;
+        const word qrName_;
 
         //- Thickness of layers
         scalarList thicknessLayers_;
@@ -181,8 +187,8 @@ public:
         );
 
         //- Construct by mapping given
-        // externalWallHeatFluxTemperatureFvPatchScalarField
-        // onto a new patch
+        //  externalWallHeatFluxTemperatureFvPatchScalarField
+        //  onto a new patch
         externalWallHeatFluxTemperatureFvPatchScalarField
         (
             const externalWallHeatFluxTemperatureFvPatchScalarField&,
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
deleted file mode 100644
index 786ceae3e9d924008aa0aa3e56103a862b1ad1ff..0000000000000000000000000000000000000000
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C
+++ /dev/null
@@ -1,262 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2015 OpenFOAM Foundation
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-\*---------------------------------------------------------------------------*/
-
-#include "turbulentHeatFluxTemperatureFvPatchScalarField.H"
-#include "addToRunTimeSelectionTable.H"
-#include "fvPatchFieldMapper.H"
-#include "volFields.H"
-
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    // declare specialization within 'Foam' namespace
-    template<>
-    const char* NamedEnum
-    <
-        Foam::compressible::
-        turbulentHeatFluxTemperatureFvPatchScalarField::heatSourceType,
-        2
-    >::names[] =
-    {
-        "power",
-        "flux"
-    };
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-
-namespace Foam
-{
-
-namespace compressible
-{
-
-// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
-
-const NamedEnum
-<
-    turbulentHeatFluxTemperatureFvPatchScalarField::heatSourceType,
-    2
-> turbulentHeatFluxTemperatureFvPatchScalarField::heatSourceTypeNames_;
-
-
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const fvPatch& p,
-    const DimensionedField<scalar, volMesh>& iF
-)
-:
-    fixedGradientFvPatchScalarField(p, iF),
-    temperatureCoupledBase(patch(), "undefined", "undefined", "undefined-K"),
-    heatSource_(hsPower),
-    q_(p.size(), 0.0),
-    QrName_("undefinedQr")
-{}
-
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const turbulentHeatFluxTemperatureFvPatchScalarField& ptf,
-    const fvPatch& p,
-    const DimensionedField<scalar, volMesh>& iF,
-    const fvPatchFieldMapper& mapper
-)
-:
-    fixedGradientFvPatchScalarField(ptf, p, iF, mapper),
-    temperatureCoupledBase(patch(), ptf),
-    heatSource_(ptf.heatSource_),
-    q_(ptf.q_, mapper),
-    QrName_(ptf.QrName_)
-{}
-
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const fvPatch& p,
-    const DimensionedField<scalar, volMesh>& iF,
-    const dictionary& dict
-)
-:
-    fixedGradientFvPatchScalarField(p, iF),
-    temperatureCoupledBase(patch(), dict),
-    heatSource_(heatSourceTypeNames_.read(dict.lookup("heatSource"))),
-    q_("q", dict, p.size()),
-    QrName_(dict.lookupOrDefault<word>("Qr", "none"))
-{
-    if (dict.found("value") && dict.found("gradient"))
-    {
-        fvPatchField<scalar>::operator=(Field<scalar>("value", dict, p.size()));
-        gradient() = Field<scalar>("gradient", dict, p.size());
-    }
-    else
-    {
-        // Still reading so cannot yet evaluate. Make up a value.
-        fvPatchField<scalar>::operator=(patchInternalField());
-        gradient() = 0.0;
-    }
-}
-
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const turbulentHeatFluxTemperatureFvPatchScalarField& thftpsf
-)
-:
-    fixedGradientFvPatchScalarField(thftpsf),
-    temperatureCoupledBase(patch(), thftpsf),
-    heatSource_(thftpsf.heatSource_),
-    q_(thftpsf.q_),
-    QrName_(thftpsf.QrName_)
-{}
-
-
-turbulentHeatFluxTemperatureFvPatchScalarField::
-turbulentHeatFluxTemperatureFvPatchScalarField
-(
-    const turbulentHeatFluxTemperatureFvPatchScalarField& thftpsf,
-    const DimensionedField<scalar, volMesh>& iF
-)
-:
-    fixedGradientFvPatchScalarField(thftpsf, iF),
-    temperatureCoupledBase(patch(), thftpsf),
-    heatSource_(thftpsf.heatSource_),
-    q_(thftpsf.q_),
-    QrName_(thftpsf.QrName_)
-{}
-
-
-// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
-
-void turbulentHeatFluxTemperatureFvPatchScalarField::autoMap
-(
-    const fvPatchFieldMapper& m
-)
-{
-    fixedGradientFvPatchScalarField::autoMap(m);
-    q_.autoMap(m);
-}
-
-
-void turbulentHeatFluxTemperatureFvPatchScalarField::rmap
-(
-    const fvPatchScalarField& ptf,
-    const labelList& addr
-)
-{
-    fixedGradientFvPatchScalarField::rmap(ptf, addr);
-
-    const turbulentHeatFluxTemperatureFvPatchScalarField& thftptf =
-        refCast<const turbulentHeatFluxTemperatureFvPatchScalarField>
-        (
-            ptf
-        );
-
-    q_.rmap(thftptf.q_, addr);
-}
-
-
-void turbulentHeatFluxTemperatureFvPatchScalarField::updateCoeffs()
-{
-    if (updated())
-    {
-        return;
-    }
-
-    const scalarField& Tp = *this;
-
-    scalarField qr(this->size(), 0.0);
-
-    //- Qr is negative going into the domain
-    if (QrName_ != "none")
-    {
-        qr = patch().lookupPatchField<volScalarField, scalar>(QrName_);
-    }
-
-    switch (heatSource_)
-    {
-        case hsPower:
-        {
-            const scalar Ap = gSum(patch().magSf());
-            gradient() = (q_/Ap + qr)/kappa(Tp);
-            break;
-        }
-        case hsFlux:
-        {
-            gradient() = (q_ + qr)/kappa(Tp);
-            break;
-        }
-        default:
-        {
-            FatalErrorInFunction
-                << "Unknown heat source type. Valid types are: "
-                << heatSourceTypeNames_ << nl << exit(FatalError);
-        }
-    }
-
-    fixedGradientFvPatchScalarField::updateCoeffs();
-}
-
-
-void turbulentHeatFluxTemperatureFvPatchScalarField::write
-(
-    Ostream& os
-) const
-{
-    fixedGradientFvPatchScalarField::write(os);
-    os.writeKeyword("heatSource") << heatSourceTypeNames_[heatSource_]
-        << token::END_STATEMENT << nl;
-    temperatureCoupledBase::write(os);
-    q_.writeEntry("q", os);
-    os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl;
-    writeEntry("value", os);
-}
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-makePatchTypeField
-(
-    fvPatchScalarField,
-    turbulentHeatFluxTemperatureFvPatchScalarField
-);
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace compressible
-} // End namespace Foam
-
-
-// ************************************************************************* //
diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H
deleted file mode 100644
index a19de4fff8a8fc63988411b2ba45cf3d721bac28..0000000000000000000000000000000000000000
--- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H
+++ /dev/null
@@ -1,231 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-Class
-    Foam::compressible::turbulentHeatFluxTemperatureFvPatchScalarField
-
-Description
-    Fixed heat boundary condition to specify temperature gradient. Input
-    heat source either specified in terms of an absolute power [W], or as a
-    flux [W/m^2].
-
-    The thermal conductivity \c kappa can either be retrieved from various
-    possible sources, as detailed in the class temperatureCoupledBase.
-
-Usage
-    \table
-        Property     | Description             | Required    | Default value
-        heatSource   | 'power' [W] or 'flux' [W/m^2] | yes |
-        q            | heat power or flux field      | yes |
-        Qr           | name of the radiative flux field | yes |
-        value        | initial temperature value | no | calculated
-        gradient     | initial gradient value | no | 0.0
-        kappaMethod  | inherited from temperatureCoupledBase | inherited |
-        kappa        | inherited from temperatureCoupledBase | inherited |
-    \endtable
-
-    Note: If needed, both 'value' and 'gradient' must be defined to be used.
-
-    Example usage:
-    \verbatim
-    hotWall
-    {
-        type            compressible::turbulentHeatFluxTemperature;
-        heatSource      flux;
-        q               uniform 10;
-        kappaMethod     fluidThermo;
-        kappa           none;
-        Qr              none;
-    }
-    \endverbatim
-
-See also
-    Foam::temperatureCoupledBase
-
-SourceFiles
-    turbulentHeatFluxTemperatureFvPatchScalarField.C
-
-\*---------------------------------------------------------------------------*/
-
-#ifndef turbulentHeatFluxTemperatureFvPatchScalarFields_H
-#define turbulentHeatFluxTemperatureFvPatchScalarFields_H
-
-#include "fixedGradientFvPatchFields.H"
-#include "temperatureCoupledBase.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-namespace compressible
-{
-
-/*---------------------------------------------------------------------------*\
-      Class turbulentHeatFluxTemperatureFvPatchScalarField Declaration
-\*---------------------------------------------------------------------------*/
-
-class turbulentHeatFluxTemperatureFvPatchScalarField
-:
-    public fixedGradientFvPatchScalarField,
-    public temperatureCoupledBase
-{
-public:
-
-    // Data types
-
-        //- Enumeration listing the possible hest source input modes
-        enum heatSourceType
-        {
-            hsPower,
-            hsFlux
-        };
-
-
-private:
-
-    // Private data
-
-        //- Heat source type names
-        static const NamedEnum<heatSourceType, 2> heatSourceTypeNames_;
-
-        //- Heat source type
-        heatSourceType heatSource_;
-
-        //- Heat power [W] or flux [W/m2]
-        scalarField q_;
-
-        //- Name of radiative in flux field
-        word QrName_;
-
-
-public:
-
-    //- Runtime type information
-    TypeName("compressible::turbulentHeatFluxTemperature");
-
-
-    // Constructors
-
-        //- Construct from patch and internal field
-        turbulentHeatFluxTemperatureFvPatchScalarField
-        (
-            const fvPatch&,
-            const DimensionedField<scalar, volMesh>&
-        );
-
-        //- Construct from patch, internal field and dictionary
-        turbulentHeatFluxTemperatureFvPatchScalarField
-        (
-            const fvPatch&,
-            const DimensionedField<scalar, volMesh>&,
-            const dictionary&
-        );
-
-        //- Construct by mapping given
-        //  turbulentHeatFluxTemperatureFvPatchScalarField onto
-        //  a new patch
-        turbulentHeatFluxTemperatureFvPatchScalarField
-        (
-            const turbulentHeatFluxTemperatureFvPatchScalarField&,
-            const fvPatch&,
-            const DimensionedField<scalar, volMesh>&,
-            const fvPatchFieldMapper&
-        );
-
-        //- Construct as copy
-        turbulentHeatFluxTemperatureFvPatchScalarField
-        (
-            const turbulentHeatFluxTemperatureFvPatchScalarField&
-        );
-
-        //- Construct and return a clone
-        virtual tmp<fvPatchScalarField> clone() const
-        {
-            return tmp<fvPatchScalarField>
-            (
-                new turbulentHeatFluxTemperatureFvPatchScalarField(*this)
-            );
-        }
-
-        //- Construct as copy setting internal field reference
-        turbulentHeatFluxTemperatureFvPatchScalarField
-        (
-            const turbulentHeatFluxTemperatureFvPatchScalarField&,
-            const DimensionedField<scalar, volMesh>&
-        );
-
-        //- Construct and return a clone setting internal field reference
-        virtual tmp<fvPatchScalarField> clone
-        (
-            const DimensionedField<scalar, volMesh>& iF
-        ) const
-        {
-            return tmp<fvPatchScalarField>
-            (
-                new turbulentHeatFluxTemperatureFvPatchScalarField
-                (
-                    *this,
-                    iF
-                )
-            );
-        }
-
-
-    // Member functions
-
-        // Mapping functions
-
-            //- Map (and resize as needed) from self given a mapping object
-            virtual void autoMap(const fvPatchFieldMapper&);
-
-            //- Reverse map the given fvPatchField onto this fvPatchField
-            virtual void rmap
-            (
-                const fvPatchScalarField&,
-                const labelList&
-            );
-
-
-        // Evaluation functions
-
-            //- Update the coefficients associated with the patch field
-            virtual void updateCoeffs();
-
-
-        // I-O
-
-            //- Write
-            virtual void write(Ostream&) const;
-};
-
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-} // End namespace compressible
-} // End namespace Foam
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-#endif
-
-// ************************************************************************* //