diff --git a/src/fvOptions/sources/derived/interRegionHeatTransferModel/tabulatedHeatTransfer/tabulatedHeatTransfer.C b/src/fvOptions/sources/derived/interRegionHeatTransferModel/tabulatedHeatTransfer/tabulatedHeatTransfer.C
index c8d97dd69329d45ce2ee593f081bd73561708ad9..6ccd16cad5cc586aa06b9962ba782ddf9b2eebb8 100644
--- a/src/fvOptions/sources/derived/interRegionHeatTransferModel/tabulatedHeatTransfer/tabulatedHeatTransfer.C
+++ b/src/fvOptions/sources/derived/interRegionHeatTransferModel/tabulatedHeatTransfer/tabulatedHeatTransfer.C
@@ -24,8 +24,6 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "tabulatedHeatTransfer.H"
-
-#include "turbulenceModel.H"
 #include "addToRunTimeSelectionTable.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@@ -45,37 +43,32 @@ namespace fv
 }
 
 
-// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
 
-Foam::fv::tabulatedHeatTransfer::tabulatedHeatTransfer
-(
-    const word& name,
-    const word& modelType,
-    const dictionary& dict,
-    const fvMesh& mesh
-)
-:
-    interRegionHeatTransferModel(name, modelType, dict, mesh),
-    hTable_(),
-    area_()
+const Foam::interpolation2DTable<Foam::scalar>&
+Foam::fv::tabulatedHeatTransfer::hTable()
 {
-    if (master_)
+    if (!hTable_.valid())
     {
-        hTable_.reset
-        (
-            new interpolation2DTable<scalar>
-            (
-                dict.subDict(typeName + "Coeffs")
-            )
-        );
-        area_.reset
+        hTable_.reset(new interpolation2DTable<scalar>(coeffs_));
+    }
+
+    return hTable_();
+}
+
+
+const Foam::volScalarField& Foam::fv::tabulatedHeatTransfer::AoV()
+{
+    if (!AoV_.valid())
+    {
+        AoV_.reset
         (
             new volScalarField
             (
                 IOobject
                 (
-                    "area",
-                    mesh_.time().timeName(),
+                    "AoV",
+                    startTimeName_,
                     mesh_,
                     IOobject::MUST_READ,
                     IOobject::AUTO_WRITE
@@ -84,9 +77,28 @@ Foam::fv::tabulatedHeatTransfer::tabulatedHeatTransfer
             )
         );
     }
+
+    return AoV_();
 }
 
 
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::fv::tabulatedHeatTransfer::tabulatedHeatTransfer
+(
+    const word& name,
+    const word& modelType,
+    const dictionary& dict,
+    const fvMesh& mesh
+)
+:
+    interRegionHeatTransferModel(name, modelType, dict, mesh),
+    hTable_(),
+    AoV_(),
+    startTimeName_(mesh.time().timeName())
+{}
+
+
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::fv::tabulatedHeatTransfer::~tabulatedHeatTransfer()
@@ -95,35 +107,33 @@ Foam::fv::tabulatedHeatTransfer::~tabulatedHeatTransfer()
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-
 const Foam::tmp<Foam::volScalarField>
 Foam::fv::tabulatedHeatTransfer::calculateHtc()
 {
-    const fvMesh& secondaryMesh =
-        mesh_.time().lookupObject<fvMesh>(mapRegionName());
+    const fvMesh& nbrMesh = mesh_.time().lookupObject<fvMesh>(mapRegionName());
 
-    const volVectorField& Usecondary =
-        secondaryMesh.lookupObject<volVectorField>("U");
+    const volVectorField& UNbr = nbrMesh.lookupObject<volVectorField>("U");
 
-    scalarField UMagMapped(htc_.internalField().size(), 0.0);
+    scalarField UMagNbrMapped(htc_.internalField().size(), 0.0);
 
     secondaryToPrimaryInterpPtr_->interpolateInternalField
     (
-        UMagMapped,
-        mag(Usecondary),
+        UMagNbrMapped,
+        mag(UNbr),
         meshToMesh::MAP,
         eqOp<scalar>()
     );
 
     const volVectorField& U = mesh_.lookupObject<volVectorField>("U");
 
-    forAll (htc_.internalField(), i)
+    scalarField& htcc = htc_.internalField();
+
+    forAll(htcc, i)
     {
-        htc_.internalField()[i] =
-            hTable_->operator()(mag(U[i]), UMagMapped[i]);
+        htcc[i] = hTable()(mag(U[i]), UMagNbrMapped[i]);
     }
 
-    htc_.internalField() = htc_*area_/mesh_.V();
+    htcc = htcc*AoV()*secondaryToPrimaryInterpPtr_->V()/mesh_.V();
 
     return htc_;
 }
@@ -134,9 +144,9 @@ void Foam::fv::tabulatedHeatTransfer::writeData(Ostream& os) const
     os  << indent << token::BEGIN_BLOCK << incrIndent << nl;
     interRegionHeatTransferModel::writeData(os);
 
-    os << indent << "tabulatedHeatTransfer";
+    os << indent << type() + "Coeffs" << nl;
 
-    dict_.write(os);
+    coeffs_.write(os);
 
     os << decrIndent << indent << token::END_BLOCK << endl;
 }
diff --git a/src/fvOptions/sources/derived/interRegionHeatTransferModel/tabulatedHeatTransfer/tabulatedHeatTransfer.H b/src/fvOptions/sources/derived/interRegionHeatTransferModel/tabulatedHeatTransfer/tabulatedHeatTransfer.H
index d1ece93d8bf0e1ade7d543e37e700590e296aecc..8bad2ea59a764cdf8fca205de8099454c3547efd 100644
--- a/src/fvOptions/sources/derived/interRegionHeatTransferModel/tabulatedHeatTransfer/tabulatedHeatTransfer.H
+++ b/src/fvOptions/sources/derived/interRegionHeatTransferModel/tabulatedHeatTransfer/tabulatedHeatTransfer.H
@@ -60,8 +60,17 @@ private:
         //- 2D look up table
         autoPtr<interpolation2DTable<scalar> > hTable_;
 
-        //- Area of heat exchange
-        autoPtr<volScalarField> area_;
+        //- Area per unit volume of heat exchanger
+        autoPtr<volScalarField> AoV_;
+
+        //- Heat transfer coefficient table
+        const interpolation2DTable<scalar>& hTable();
+
+        //- Field of area divided by volume
+        const volScalarField& AoV();
+
+        //- Start time name
+        const word startTimeName_;
 
 
 public:
@@ -99,7 +108,6 @@ public:
 
             //- Read dictionary
             virtual bool read(const dictionary& dict) ;
-
 };