diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C index e9bc8153045af85ad40f565aed04d670821859f2..ed60ded9596a6b0545dd8968f5f7782fd2150694 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -510,6 +510,9 @@ void Foam::ReactingParcel<ParcelType>::calcPhaseChange const CompositionModel<reactingCloudType>& composition = td.cloud().composition(); + const scalar TMax = td.cloud().phaseChange().TMax(pc_, this->Tc_); + const scalar Tdash = min(T, TMax); + const scalar Tsdash = min(Ts, TMax); // Calculate mass transfer due to phase change td.cloud().phaseChange().calculate @@ -520,8 +523,8 @@ void Foam::ReactingParcel<ParcelType>::calcPhaseChange Pr, d, nus, - T, - Ts, + Tdash, + Tsdash, pc_, this->Tc_, YComponents, @@ -541,7 +544,7 @@ void Foam::ReactingParcel<ParcelType>::calcPhaseChange const label idc = composition.localToGlobalCarrierId(idPhase, i); const label idl = composition.globalIds(idPhase)[i]; - const scalar dh = td.cloud().phaseChange().dh(idc, idl, pc_, T); + const scalar dh = td.cloud().phaseChange().dh(idc, idl, pc_, Tdash); Sh -= dMassPC[i]*dh/dt; } @@ -558,12 +561,12 @@ void Foam::ReactingParcel<ParcelType>::calcPhaseChange const label idc = composition.localToGlobalCarrierId(idPhase, i); const label idl = composition.globalIds(idPhase)[i]; - const scalar Cp = composition.carrier().Cp(idc, pc_, Ts); + const scalar Cp = composition.carrier().Cp(idc, pc_, Tsdash); const scalar W = composition.carrier().W(idc); const scalar Ni = dMassPC[i]/(this->areaS(d)*dt*W); const scalar Dab = - composition.liquids().properties()[idl].D(pc_, Ts, Wc); + composition.liquids().properties()[idl].D(pc_, Tsdash, Wc); // Molar flux of species coming from the particle (kmol/m^2/s) N += Ni; diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.C index 97b84a6049f5a51924769e9b25162e41a45056b4..b46ea2b5bf18b14ab48c3eb4988c6c84ee723bc0 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.C +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -200,8 +200,8 @@ Foam::scalar Foam::LiquidEvaporation<CloudType>::dh ( const label idc, const label idl, - const label p, - const label T + const scalar p, + const scalar T ) const { scalar dh = 0; @@ -230,8 +230,8 @@ Foam::scalar Foam::LiquidEvaporation<CloudType>::dh "(" "const label, " "const label, " - "const label, " - "const label" + "const scalar, " + "const scalar" ") const" ) << "Unknown enthalpyTransfer type" << abort(FatalError); } @@ -241,4 +241,21 @@ Foam::scalar Foam::LiquidEvaporation<CloudType>::dh } +template<class CloudType> +Foam::scalar Foam::LiquidEvaporation<CloudType>::TMax +( + const scalar pIn, + const scalar TIn +) const +{ + scalar T = -GREAT; + forAll(liquids_, i) + { + T = max(T, liquids_.properties()[i].pv(pIn, TIn)); + } + + return T; +} + + // ************************************************************************* // diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.H index 60db6c63a5dda1a43e6ab7674a9b3c22df144195..5a97dc73944b1a815514fe12a3a10ea8922629a3 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.H +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -127,9 +127,12 @@ public: ( const label idc, const label idl, - const label p, - const label T + const scalar p, + const scalar T ) const; + + //- Return maximum/limiting temperature + virtual scalar TMax(const scalar pIn, const scalar TIn) const; }; diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C index 803b849fa43d9da8a5a766541eeb3ffade6e8855..8a88620992f306524ccb6e9782c2f24d1c6ff21c 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -293,8 +293,8 @@ Foam::scalar Foam::LiquidEvaporationBoil<CloudType>::dh ( const label idc, const label idl, - const label p, - const label T + const scalar p, + const scalar T ) const { scalar dh = 0; @@ -329,8 +329,8 @@ Foam::scalar Foam::LiquidEvaporationBoil<CloudType>::dh "(" "const label, " "const label, " - "const label, " - "const label" + "const scalar, " + "const scalar" ") const" ) << "Unknown enthalpyTransfer type" << abort(FatalError); } @@ -340,4 +340,21 @@ Foam::scalar Foam::LiquidEvaporationBoil<CloudType>::dh } +template<class CloudType> +Foam::scalar Foam::LiquidEvaporationBoil<CloudType>::TMax +( + const scalar pIn, + const scalar TIn +) const +{ + scalar T = -GREAT; + forAll(liquids_, i) + { + T = max(T, liquids_.properties()[i].pv(pIn, TIn)); + } + + return T; +} + + // ************************************************************************* // diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.H index 48d92292cdcd890a46699dc9f7847651512eaf1b..bf9ca867ce51205a14f641decd8cd12838e0adc1 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.H +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporationBoil/LiquidEvaporationBoil.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -137,9 +137,12 @@ public: ( const label idc, const label idl, - const label p, - const label T + const scalar p, + const scalar T ) const; + + //- Return maximum/limiting temperature + virtual scalar TMax(const scalar pIn, const scalar TIn) const; }; diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.C index c84c7b83f887843521dc1529cc243f5b44adb38c..7141ff98147cb1f6668900e1a59b69ddb5db698b 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.C +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -170,14 +170,25 @@ Foam::scalar Foam::PhaseChangeModel<CloudType>::dh ( const label idc, const label idl, - const label p, - const label T + const scalar p, + const scalar T ) const { return 0.0; } +template<class CloudType> +Foam::scalar Foam::PhaseChangeModel<CloudType>::TMax +( + const scalar, + const scalar +) const +{ + return GREAT; +} + + template<class CloudType> void Foam::PhaseChangeModel<CloudType>::addToPhaseChangeMass(const scalar dMass) { diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H index 3ee8d4dbd34f0009c869331436838c1384653c1f..ac6c5c06b344f297d37893c481fc25fe5ad162ab 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -180,10 +180,12 @@ public: ( const label idc, const label idl, - const label p, - const label T + const scalar p, + const scalar T ) const; + //- Return maximum/limiting temperature + virtual scalar TMax(const scalar pIn, const scalar TIn) const; //- Add to phase change mass void addToPhaseChangeMass(const scalar dMass);