diff --git a/src/fvOptions/sources/derived/interRegionHeatTransferModel/tabulatedHeatTransfer/tabulatedHeatTransfer.C b/src/fvOptions/sources/derived/interRegionHeatTransferModel/tabulatedHeatTransfer/tabulatedHeatTransfer.C index c8d97dd693..6ccd16cad5 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,6 +43,45 @@ namespace fv } +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +const Foam::interpolation2DTable& +Foam::fv::tabulatedHeatTransfer::hTable() +{ + if (!hTable_.valid()) + { + hTable_.reset(new interpolation2DTable(coeffs_)); + } + + return hTable_(); +} + + +const Foam::volScalarField& Foam::fv::tabulatedHeatTransfer::AoV() +{ + if (!AoV_.valid()) + { + AoV_.reset + ( + new volScalarField + ( + IOobject + ( + "AoV", + startTimeName_, + mesh_, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh_ + ) + ); + } + + return AoV_(); +} + + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::fv::tabulatedHeatTransfer::tabulatedHeatTransfer @@ -57,34 +94,9 @@ Foam::fv::tabulatedHeatTransfer::tabulatedHeatTransfer : interRegionHeatTransferModel(name, modelType, dict, mesh), hTable_(), - area_() -{ - if (master_) - { - hTable_.reset - ( - new interpolation2DTable - ( - dict.subDict(typeName + "Coeffs") - ) - ); - area_.reset - ( - new volScalarField - ( - IOobject - ( - "area", - mesh_.time().timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ) - ); - } -} + AoV_(), + startTimeName_(mesh.time().timeName()) +{} // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // @@ -95,35 +107,33 @@ Foam::fv::tabulatedHeatTransfer::~tabulatedHeatTransfer() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - const Foam::tmp Foam::fv::tabulatedHeatTransfer::calculateHtc() { - const fvMesh& secondaryMesh = - mesh_.time().lookupObject(mapRegionName()); + const fvMesh& nbrMesh = mesh_.time().lookupObject(mapRegionName()); - const volVectorField& Usecondary = - secondaryMesh.lookupObject("U"); + const volVectorField& UNbr = nbrMesh.lookupObject("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() ); const volVectorField& U = mesh_.lookupObject("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 d1ece93d8b..8bad2ea59a 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 > hTable_; - //- Area of heat exchange - autoPtr area_; + //- Area per unit volume of heat exchanger + autoPtr AoV_; + + //- Heat transfer coefficient table + const interpolation2DTable& 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) ; - };