From 6e59e9a75fecead0b4cfc309e0ea84067ef9b9d5 Mon Sep 17 00:00:00 2001 From: Sergio Ferraris <sergio@alex.opencfd.co.uk> Date: Thu, 12 Sep 2013 10:01:52 +0100 Subject: [PATCH] ENH: Adding thermal multi layers to externalWallHeatFluxTemperatureFvPatchScalarField --- ...allHeatFluxTemperatureFvPatchScalarField.C | 46 +++++++++++++------ ...allHeatFluxTemperatureFvPatchScalarField.H | 17 +++---- 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C index a9aef8f49fe..0327dd1da75 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C @@ -69,8 +69,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(p.size(), 0.0), h_(p.size(), 0.0), Ta_(p.size(), 0.0), - thicknessLayer_(0), - kappaLayer_(0) + thicknessLayers_(), + kappaLayers_() { this->refValue() = 0.0; this->refGrad() = 0.0; @@ -93,8 +93,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(ptf.q_, mapper), h_(ptf.h_, mapper), Ta_(ptf.Ta_, mapper), - thicknessLayer_(ptf.thicknessLayer_), - kappaLayer_(ptf.kappaLayer_) + thicknessLayers_(ptf.thicknessLayers_), + kappaLayers_(ptf.kappaLayers_) {} @@ -112,8 +112,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(p.size(), 0.0), h_(p.size(), 0.0), Ta_(p.size(), 0.0), - thicknessLayer_(dict.lookupOrDefault<scalar>("thicknessLayer", 0.0)), - kappaLayer_(dict.lookupOrDefault<scalar>("kappaLayer", 0.0)) + thicknessLayers_(), + kappaLayers_() { if (dict.found("q") && !dict.found("h") && !dict.found("Ta")) { @@ -125,6 +125,11 @@ externalWallHeatFluxTemperatureFvPatchScalarField mode_ = 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_; + } } else { @@ -176,8 +181,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(tppsf.q_), h_(tppsf.h_), Ta_(tppsf.Ta_), - thicknessLayer_(tppsf.thicknessLayer_), - kappaLayer_(tppsf.kappaLayer_) + thicknessLayers_(tppsf.thicknessLayers_), + kappaLayers_(tppsf.kappaLayers_) {} @@ -194,8 +199,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(tppsf.q_), h_(tppsf.h_), Ta_(tppsf.Ta_), - thicknessLayer_(tppsf.thicknessLayer_), - kappaLayer_(tppsf.kappaLayer_) + thicknessLayers_(tppsf.thicknessLayers_), + kappaLayers_(tppsf.kappaLayers_) {} @@ -252,7 +257,19 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs() } case fixedHeatTransferCoeff: { - q = (Ta_ - Tp)*(1.0/h_ + thicknessLayer_/(kappaLayer_ + VSMALL)); + scalar totalSolidRes = 0.0; + if (thicknessLayers_.size() > 0) + { + forAll (thicknessLayers_, iLayer) + { + const scalar l = thicknessLayers_[iLayer]; + if (l > 0.0) + { + totalSolidRes += kappaLayers_[iLayer]/l; + } + } + } + q = (Ta_ - Tp)*(1.0/h_ + totalSolidRes); break; } default: @@ -308,9 +325,6 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::write { mixedFvPatchScalarField::write(os); temperatureCoupledBase::write(os); - os.writeKeyword("thicknessLayer")<< thicknessLayer_ - << token::END_STATEMENT << nl; - os.writeKeyword("kappaLayer")<< kappaLayer_ << token::END_STATEMENT << nl; switch (mode_) { @@ -323,6 +337,10 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::write { h_.writeEntry("h", os); Ta_.writeEntry("Ta", os); + os.writeKeyword("thicknessLayers")<< thicknessLayers_ + << token::END_STATEMENT << nl; + os.writeKeyword("kappaLayers")<< kappaLayers_ + << token::END_STATEMENT << nl; break; } default: diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H index d8c4bc9a12a..000bc8473ca 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H @@ -26,8 +26,9 @@ Class Description This boundary condition supplies a heat flux condition for temperature - on an external wall.Optional thin thermal layer resistance can be - specified through thicknessLayer and kappaLayer entries. + on an external wall. Optional thin thermal layer resistances can be + specified through thicknessLayers and kappaLayers entries for the + fixed heat transfer coefficient mode. The condition can operate in two modes: \li fixed heat transfer coefficient: supply h and Ta @@ -52,8 +53,8 @@ Description q uniform 1000; // heat flux / [W/m2] Ta uniform 300.0; // ambient temperature /[K] h uniform 10.0; // heat transfer coeff /[W/Km2] - thicknessLayer 0.001 // thickness of layer [m] - kappaLayer 0.0 // thermal conductivity of + thicknessLayers (0.1 0.2 0.3 0.4); // thickness of layer [m] + kappaLayers (1 2 3 4) // thermal conductivity of // layer [W/m/K] value uniform 300.0; // initial temperature / [K] kappaName none; @@ -118,11 +119,11 @@ private: //- Ambient temperature / [K] scalarField Ta_; - //- Thickness of the thin wall - scalar thicknessLayer_; + //- Thickness of layers + scalarList thicknessLayers_; - //- Thermal conductivity of the thin wall - scalar kappaLayer_; + //- Conductivity of layers + scalarList kappaLayers_; public: -- GitLab