diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C index 96f364176e..eaaf8538cd 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C @@ -69,6 +69,7 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(p.size(), 0.0), h_(p.size(), 0.0), Ta_(p.size(), 0.0), + QrName_("undefined-Qr"), thicknessLayers_(), kappaLayers_() { @@ -93,6 +94,7 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(ptf.q_, mapper), h_(ptf.h_, mapper), Ta_(ptf.Ta_, mapper), + QrName_(ptf.QrName_), thicknessLayers_(ptf.thicknessLayers_), kappaLayers_(ptf.kappaLayers_) {} @@ -112,6 +114,7 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(p.size(), 0.0), h_(p.size(), 0.0), Ta_(p.size(), 0.0), + QrName_(dict.lookupOrDefault("Qr", "none")), thicknessLayers_(), kappaLayers_() { @@ -181,6 +184,7 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(tppsf.q_), h_(tppsf.h_), Ta_(tppsf.Ta_), + QrName_(tppsf.QrName_), thicknessLayers_(tppsf.thicknessLayers_), kappaLayers_(tppsf.kappaLayers_) {} @@ -199,6 +203,7 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(tppsf.q_), h_(tppsf.h_), Ta_(tppsf.Ta_), + QrName_(tppsf.QrName_), thicknessLayers_(tppsf.thicknessLayers_), kappaLayers_(tppsf.kappaLayers_) {} @@ -245,6 +250,12 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs() const scalarField Tp(*this); scalarField hp(patch().size(), 0.0); + scalarField Qr(Tp.size(), 0.0); + if (QrName_ != "none") + { + Qr = patch().lookupPatchField(QrName_); + } + switch (mode_) { case fixedHeatFlux: @@ -281,15 +292,17 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs() if (mode_ == fixedHeatFlux) { - refGrad() = q_/kappa(Tp); + refGrad() = (q_ + Qr)/kappa(Tp); refValue() = 0.0; valueFraction() = 0.0; } else if (mode_ == fixedHeatTransferCoeff) { + Qr /= Tp; refGrad() = 0.0; - refValue() = Ta_; - valueFraction() = hp/(hp + kappa(Tp)*patch().deltaCoeffs()); + refValue() = hp*Ta_/(hp - Qr); + valueFraction() = + (hp - Qr)/((hp - Qr) + kappa(Tp)*patch().deltaCoeffs()); } mixedFvPatchScalarField::updateCoeffs(); @@ -318,9 +331,11 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::write { mixedFvPatchScalarField::write(os); temperatureCoupledBase::write(os); + os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl; switch (mode_) { + case fixedHeatFlux: { q_.writeEntry("q", os); diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H index b4ca13a461..911a5549d3 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H @@ -60,6 +60,7 @@ Description thicknessLayers | list of thicknesses per layer [m] | yes | kappaLayers | list of thermal conductivites per layer [W/m/K] | yes | kappaName | name of thermal conductivity field | yes | + QrName | name of the radiative field | no | no \endtable Example of the boundary condition specification: @@ -75,6 +76,7 @@ Description kappaLayers (1 2 3 4) value uniform 300.0; kappaName none; + QrName none; } \endverbatim @@ -137,6 +139,9 @@ private: //- Ambient temperature / [K] scalarField Ta_; + //- Name of the radiative heat flux + const word QrName_; + //- Thickness of layers scalarList thicknessLayers_;