ThermalPhaseChangeSystem: Evaluate latent heat at Tsat

Latent heat is now evaluated at Tsat instead of Tf for the thermal phase
change method. This provides a smooth transition of the interface
temperature field as the phase fraction tends to zero.

Patch contributed by Juho Peltola, VTT.
This commit is contained in:
Will Bainbridge
2019-01-24 14:53:19 +00:00
parent 765ae50d32
commit 653b88d411

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Copyright (C) 2015-2018 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2015-2019 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -369,17 +369,19 @@ Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::correctInterfaceThermo()
volScalarField& iDmdt(*this->iDmdt_[pair]);
volScalarField& Tf(*this->Tf_[pair]);
const volScalarField Tsat = saturationModel_->Tsat(phase1.thermo().p());
volScalarField hf1
(
he1.member() == "e"
? phase1.thermo().he(p, Tf) + p/phase1.rho()
: phase1.thermo().he(p, Tf)
? phase1.thermo().he(p, Tsat) + p/phase1.rho()
: phase1.thermo().he(p, Tsat)
);
volScalarField hf2
(
he2.member() == "e"
? phase2.thermo().he(p, Tf) + p/phase2.rho()
: phase2.thermo().he(p, Tf)
? phase2.thermo().he(p, Tsat) + p/phase2.rho()
: phase2.thermo().he(p, Tsat)
);
volScalarField h1
@ -409,9 +411,7 @@ Foam::ThermalPhaseChangePhaseSystem<BasePhaseSystem>::correctInterfaceThermo()
volScalarField H1(heatTransferModelIter().first()->K(0));
volScalarField H2(heatTransferModelIter().second()->K(0));
Tf = saturationModel_->Tsat(phase1.thermo().p());
iDmdtNew = (H1*(Tf - T1) + H2*(Tf - T2))/L;
iDmdtNew = (H1*(Tsat - T1) + H2*(Tsat - T2))/L;
}
else
{