diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C index 7851841a7486b3ea0f4ecdc775a86385dae995a5..a87342c6fe1e78e9b4ec9f02110c6977260cfd93 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C @@ -233,7 +233,7 @@ Foam::scalar Foam::ThermoParcel<ParcelType>::calcHeatTransfer if (mag(htc) < ROOTVSMALL && !td.cloud().radiation()) { - return T + dt*Sh/(this->volume(d)*rho*cp); + return max(T + dt*Sh/(this->volume(d)*rho*cp), td.constProps().TMin()); } const scalar As = this->areaS(d); @@ -256,9 +256,11 @@ Foam::scalar Foam::ThermoParcel<ParcelType>::calcHeatTransfer IntegrationScheme<scalar>::integrationResult Tres = td.cloud().TIntegrator().integrate(T, dt, ap, bp); - dhsTrans += dt*htc*As*(Tres.average() - Tc_); + scalar Tnew = max(Tres.value(), td.constProps().TMin()); - return Tres.value(); + dhsTrans += dt*htc*As*(0.5*(T + Tnew) - Tc_); + + return Tnew; }