diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C index 27306f29c..b4346d59c 100644 --- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.C @@ -70,6 +70,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(p.size(), 0.0), h_(p.size(), 0.0), Ta_(p.size(), 0.0), + QrPrevious_(p.size()), + QrRelaxation_(1), QrName_("undefined-Qr"), thicknessLayers_(), kappaLayers_() @@ -95,6 +97,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField 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_) @@ -115,6 +119,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(p.size(), 0.0), h_(p.size(), 0.0), Ta_(p.size(), 0.0), + QrPrevious_(p.size(), 0.0), + QrRelaxation_(dict.lookupOrDefault("relaxation", 1)), QrName_(dict.lookupOrDefault("Qr", "none")), thicknessLayers_(), kappaLayers_() @@ -156,6 +162,11 @@ externalWallHeatFluxTemperatureFvPatchScalarField fvPatchScalarField::operator=(scalarField("value", dict, p.size())); + if (dict.found("QrPrevious")) + { + QrPrevious_ = scalarField("QrPrevious", dict, p.size()); + } + if (dict.found("refValue")) { // Full restart @@ -185,6 +196,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(tppsf.q_), h_(tppsf.h_), Ta_(tppsf.Ta_), + QrPrevious_(tppsf.QrPrevious_), + QrRelaxation_(tppsf.QrRelaxation_), QrName_(tppsf.QrName_), thicknessLayers_(tppsf.thicknessLayers_), kappaLayers_(tppsf.kappaLayers_) @@ -204,6 +217,8 @@ externalWallHeatFluxTemperatureFvPatchScalarField q_(tppsf.q_), h_(tppsf.h_), Ta_(tppsf.Ta_), + QrPrevious_(tppsf.QrPrevious_), + QrRelaxation_(tppsf.QrRelaxation_), QrName_(tppsf.QrName_), thicknessLayers_(tppsf.thicknessLayers_), kappaLayers_(tppsf.kappaLayers_) @@ -255,6 +270,9 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::updateCoeffs() if (QrName_ != "none") { Qr = patch().lookupPatchField(QrName_); + + Qr = QrRelaxation_*Qr + (1.0 - QrRelaxation_)*QrPrevious_; + QrPrevious_ = Qr; } switch (mode_) @@ -328,7 +346,11 @@ void Foam::externalWallHeatFluxTemperatureFvPatchScalarField::write { mixedFvPatchScalarField::write(os); temperatureCoupledBase::write(os); + + QrPrevious_.writeEntry("QrPrevious", os); os.writeKeyword("Qr")<< QrName_ << token::END_STATEMENT << nl; + os.writeKeyword("relaxation")<< QrRelaxation_ + << token::END_STATEMENT << nl; switch (mode_) { diff --git a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H index 2ee5f4c75..c0bc00c1a 100644 --- a/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H +++ b/src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/externalWallHeatFluxTemperature/externalWallHeatFluxTemperatureFvPatchScalarField.H @@ -61,6 +61,7 @@ Description 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 + relaxation | relaxation factor for radiative field | no | 1 \endtable Example of the boundary condition specification: @@ -77,6 +78,7 @@ Description value uniform 300.0; kappaName none; QrName none; + relaxation 1; } \endverbatim @@ -140,6 +142,12 @@ private: //- Ambient temperature / [K] scalarField Ta_; + //- Chache Qr for relaxation + scalarField QrPrevious_; + + //- Relaxation for Qr + scalar QrRelaxation_; + //- Name of the radiative heat flux const word QrName_;