|
[Sponsors] |
September 5, 2022, 06:40 |
Lee Model, evaporation and heat transfer
|
#1 |
Senior Member
Join Date: Dec 2021
Posts: 251
Rep Power: 5 |
Hi all!
I am trying to setup evaporation with icoReactingMultiphaseInterFoam using the Lee model. I have been reading about it, and I am not sure I totally understand how this model takes into account the heat transfer due to the phase change. Indeed, in the documentation of Openfoam, only the mass transfer is discussed. Does someone know more about this? I saw in a lot of papers that the Lee model was used to model heat transfer systems with good accuracy. Thanks for your help! |
|
September 5, 2022, 12:10 |
|
#2 | |
Member
Al
Join Date: May 2019
Posts: 37
Rep Power: 7 |
Quote:
It is my understanding that the Lee model accounts for mass transfer between phases during a phase change induced by heat, and as you mentioned this mass transfer is discussed in OpenFOAM documentation. The heat transfer is addressed in TEqn file. Best, |
||
September 6, 2022, 04:50 |
|
#3 |
Senior Member
Join Date: Dec 2021
Posts: 251
Rep Power: 5 |
Hi, thanks for the pointer!
From what I could understand, the heat transfer is accounted for by multiplying the latent heat by the mass transfer occuring through phase change, so we should be good I am now trying to set up my simulation, and another question appears: Is it possible to have condensation happening from a multiComponentMixture to a pureMixture, from gas to liquid? Specifically, to have a mass transfer between one of the species of the multiComponent gas to its pure liquid phase. What I have been trying, without much success: Code:
(liquid to gas) { type Lee; species species.gas; C -0.1; //Negative for condensation Tactivate 95.4; } Since having a negative C supposedly activates condensation, I figure it is the only thing to change (no change in the order of the names etc). Maybe someone has had more experience with this kind of setup? Thanks for any tip! |
|
September 6, 2022, 06:39 |
|
#4 |
Member
Al
Join Date: May 2019
Posts: 37
Rep Power: 7 |
I tried to reproduce the approach you mentioned, but it was unsuccessful. Was it successful for you?
Last edited by aliyah.; September 6, 2022 at 08:30. |
|
September 6, 2022, 12:32 |
|
#5 |
Senior Member
Join Date: Dec 2021
Posts: 251
Rep Power: 5 |
Hey,
I kept my modifications but with a lower C (C = -100) to force the condensation. I will keep this thread updated |
|
September 8, 2022, 09:56 |
|
#6 |
Senior Member
Join Date: Dec 2021
Posts: 251
Rep Power: 5 |
After several tries, I still can't figure out how to make condensation happen, no matter how I change phaseProperties or the thermophysical files, the enthalpies involved and the temperatures.
Until someone can provide a working example of condensation from one species of a gas mixture to a pure mixture, I guess I am stuck |
|
September 9, 2022, 03:16 |
|
#7 | |
Member
Join Date: Jan 2022
Location: Germany
Posts: 72
Rep Power: 4 |
Quote:
AFAIK Lee is only implemented for >>from pureMixture to pureMixture<<. The errror message that I receive using different combinations results in >>Unknown interface composition Type, valid types are: (ESI-OFv2106) Code:
Lee<heRhoThermo<pureMixture<const<hConst<Boussinesq<specie>>,sensibleEnthalpy>>>,heSolidThermo<pureMixture<constIso<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> Lee<heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<multiComponentMixture<const<hConst<incompressiblePerfectGas<specie>>,sensibleEnthalpy>>>> Lee<heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<Boussinesq<specie>>,sensibleEnthalpy>>>> Lee<heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> Lee<heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heSolidThermo<pureMixture<constIso<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> Lee<heRhoThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>,heSolidThermo<pureMixture<constIso<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> Lee<heRhoThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>,heSolidThermo<pureMixture<exponential<hPower<rhoConst<specie>>,sensibleEnthalpy>>>> Lee<heRhoThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>,heSolidThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>> Lee<heRhoThermo<pureMixture<tabulated<hTabulated<icoTabulated<specie>>,sensibleEnthalpy>>>,heSolidThermo<pureMixture<constIso<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> Lee<heRhoThermo<pureMixture<tabulated<hTabulated<icoTabulated<specie>>,sensibleEnthalpy>>>,heSolidThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>> Lee<heSolidThermo<pureMixture<constIso<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<Boussinesq<specie>>,sensibleEnthalpy>>>> Lee<heSolidThermo<pureMixture<constIso<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> Lee<heSolidThermo<pureMixture<constIso<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>> Lee<heSolidThermo<pureMixture<constIso<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<tabulated<hTabulated<icoTabulated<specie>>,sensibleEnthalpy>>>> Lee<heSolidThermo<pureMixture<exponential<hPower<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>> Lee<heSolidThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>> Lee<heSolidThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<tabulated<hTabulated<icoTabulated<specie>>,sensibleEnthalpy>>>> interfaceHeatResistance<heRhoThermo<pureMixture<const<hConst<Boussinesq<specie>>,sensibleEnthalpy>>>,heSolidThermo<pureMixture<constIso<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> interfaceHeatResistance<heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<multiComponentMixture<const<hConst<incompressiblePerfectGas<specie>>,sensibleEnthalpy>>>> interfaceHeatResistance<heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<Boussinesq<specie>>,sensibleEnthalpy>>>> interfaceHeatResistance<heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> interfaceHeatResistance<heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heSolidThermo<pureMixture<constIso<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> interfaceHeatResistance<heRhoThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>,heSolidThermo<pureMixture<exponential<hPower<rhoConst<specie>>,sensibleEnthalpy>>>> interfaceHeatResistance<heSolidThermo<pureMixture<constIso<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<Boussinesq<specie>>,sensibleEnthalpy>>>> interfaceHeatResistance<heSolidThermo<pureMixture<constIso<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> interfaceHeatResistance<heSolidThermo<pureMixture<exponential<hPower<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>> interfaceHeatResistance<heSolidThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<polynomial<hPolynomial<icoPolynomial<specie>>,sensibleEnthalpy>>>> kineticGasEvaporation<heRhoThermo<pureMixture<const<hConst<Boussinesq<specie>>,sensibleEnthalpy>>>,heRhoThermo<multiComponentMixture<const<hConst<incompressiblePerfectGas<specie>>,sensibleEnthalpy>>>> kineticGasEvaporation<heRhoThermo<pureMixture<const<hConst<Boussinesq<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<incompressiblePerfectGas<specie>>,sensibleEnthalpy>>>> kineticGasEvaporation<heRhoThermo<pureMixture<const<hConst<Boussinesq<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> kineticGasEvaporation<heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<multiComponentMixture<const<hConst<incompressiblePerfectGas<specie>>,sensibleEnthalpy>>>> kineticGasEvaporation<heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<incompressiblePerfectGas<specie>>,sensibleEnthalpy>>>> kineticGasEvaporation<heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> |
||
September 9, 2022, 04:47 |
|
#8 |
Senior Member
Join Date: Dec 2021
Posts: 251
Rep Power: 5 |
Hi!
Okay that's strange, because evaporation happens from the liquid pure mixture to one of the species in my gax mixture. The setup looks like this: Code:
(liq to gas) { type Lee; species species1.gas; C 0.1; Tactivate 95.4; } I am using openfoam v2206. |
|
September 9, 2022, 05:44 |
|
#9 | |
Member
Join Date: Jan 2022
Location: Germany
Posts: 72
Rep Power: 4 |
Quote:
Ah I havent seen the second entry. Then you have probably wrong settings. Please share your configuration files. From what I see, I would recommend to you changing the entry (liq to gas) to (gas to liq). I dont know for sure, since im not working with ESI OF, but they are working with structured/ordered Phase Pairs! I would try out both of the following snippets: Code:
massTransferModel ( (liq to gas) { type Lee; species species1.gas; C 0.1; Tactivate 95.4; } (gas to liq) { type Lee; species species1.liq; C -0.1; Tactivate 95.4; } ) Code:
massTransferModel ( (gas to liq) { type Lee; species species1.liq; C -0.1; Tactivate 95.4; } ) |
||
September 9, 2022, 07:18 |
|
#10 |
Senior Member
Join Date: Dec 2021
Posts: 251
Rep Power: 5 |
Hey
Thanks for your reply! I already had tried to swap the order from "liquid to gas" to "gas to liquid" as you suggest but OpenFoam throws an error: Code:
[127] --> FOAM FATAL IO ERROR: (openfoam-2112 patch=220610) [127] Unknown interfaceCompositionModel type Lee<heRhoThermo<multiComponentMixture<const<hConst<incompressiblePerfectGas<specie>>,sensibleEnthalpy>>>,heRhoThermo<pureMixture<const<hConst<rhoConst<specie>>,sensibleEnthalpy>>>> But I think my original configuration is true from a mathematical point of view: in the OF doc, about the Lee model, when C < 0, the mass flux is negative which means that the liquid receives mass (as opposed to C > 0, and the mass flux is positive). In the meantime, I tried to initialize my liquid phase to a really small amount in my domain (1e-6) to see if it could 'trigger' the condensation and it looks like it does! More fluid is generated in the cold zone where it should, but I can't yet say if it is due to numerical errors or something else... But the Lee model should not need this, the condensation should be happening spontaneously right? Anyway, there is still a lot to figure out |
|
September 11, 2022, 09:14 |
|
#11 |
Member
Al
Join Date: May 2019
Posts: 37
Rep Power: 7 |
Just a suggestion about Unknown the error
Code:
Unknown interfaceCompositionModel type ...... In the file InterfaceCompositionModels.C, the various combinations that are permitted to be used while working with various mass transfer models are defined. I've modified this file previously for a different project, and added some new combinations, compiled it as a new user library, and used it in my thermal phase change solver. So,*I am aware that new combinations can be added, however I am unsure whether or not this will be effective in your particular case. I think it's worth a shot. |
|
September 19, 2022, 04:54 |
|
#12 |
Senior Member
Join Date: Dec 2021
Posts: 251
Rep Power: 5 |
Hey, thanks for the reply!
I will have to check this out, I am not comfortable enough yet to tinker with these files but that might be a good starting point! I will keep this thread updated as I figure it out |
|
September 20, 2022, 11:30 |
|
#13 |
Senior Member
Join Date: Dec 2021
Posts: 251
Rep Power: 5 |
Hey all!
Quick update about the condensation setup: When only the condensation is enabled, it seems to work, but when evaporation is too, the first of the two subdictionaries in phaseProperties takes over and forcefully "disable" the other (considering that the two subdictionaries are identical except for the sign of C). I have not yet found a way to overcome this issue, I will keep trying things |
|
September 21, 2022, 07:14 |
|
#14 | |
Senior Member
Join Date: Dec 2021
Posts: 251
Rep Power: 5 |
Quote:
Hey Aliyah, I took some time to look more into what you suggest, but I am not sure how to proceed. I modified a solver once (just to test things out) but I am not sure how to tackle this thing. So far I tried to copy the whole folder phasesSystem containing the massTransferModels folder, and in InterfaceCompositionModels.C I added a block for the Lee model from a multicomponent mixture to pure phase. After modifiying files and options I tried to compile without much success (could have bet on it ). Is this the way to proceed? Thanks for any tip! |
||
September 21, 2022, 09:02 |
|
#15 | |
Member
Al
Join Date: May 2019
Posts: 37
Rep Power: 7 |
Quote:
|
||
September 21, 2022, 09:55 |
|
#16 | |
Senior Member
Join Date: Dec 2021
Posts: 251
Rep Power: 5 |
Quote:
Hey! Sure, thanks for looking into it So my modified block in InterfaceCompositionModels.C looks like this: Code:
// Custom - From multi phase (incomp ideal gas) to pure phase (rhoConst) makeInterfacePureType ( Lee, heRhoThermo, rhoReactionThermo, multiComponentMixture, constIncompressibleGasHThermoPhysics, heRhoThermo, rhoThermo, pureMixture, constRhoHThermoPhysics, ); I have to add that I read other posts about implementing mass transfer from a multicomponent mixture to a pure phase, and it seems rather difficult (modifiying the MULES algorithm etc to account for the volume change, quantities...) |
||
September 21, 2022, 10:19 |
|
#17 | |
Member
Al
Join Date: May 2019
Posts: 37
Rep Power: 7 |
Quote:
There is a comma at the end of constRhoHThermoPhysics which should be removed. *I'm not sure that's the only problem, but let's try fixing it and then see what happens. |
||
September 21, 2022, 12:30 |
|
#18 | |
Senior Member
Join Date: Dec 2021
Posts: 251
Rep Power: 5 |
Quote:
Nice catch! It does compile now, but once I run icoReactingMultiphaseInterFoam I get a new error (see picture). Here are my files and options, thanks again for your help: Code:
phaseModel/phaseModel/phaseModel.C phaseModel/phaseModel/phaseModels.C phasePair/phasePair.C phasePair/phasePairKey.C phasePair/orderedPhasePair.C multiphaseInterSystem/multiphaseInterSystem.C multiphaseSystem/multiphaseSystem.C multiphaseSystem/multiphaseSystemNew.C multiphaseSystem/multiphaseSystems.C interfaceCompositionModel/interfaceCompositionModel.C InterfaceCompositionModel/InterfaceCompositionModels.C porous = interfaceModels/porousModels $(porous)/porousModel/porousModel.C $(porous)/VollerPrakash/VollerPrakash.C surfaceTension = interfaceModels/surfaceTensionModels $(surfaceTension)/surfaceTensionModel/surfaceTensionModel.C $(surfaceTension)/constantSurfaceTensionCoefficient/constantSurfaceTensionCoefficient.C derivedFvPatchFields/timeVaryingMassSorption/timeVaryingMassSorptionFvPatchScalarField.C LIB = $(FOAM_USER_LIBBIN)/libincompressibleMultiphaseSystems Code:
EXE_INC = \ -I$(LIB_SRC)/phaseSystemModels/reactingEuler/saturationModels/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/solidThermo/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/solidSpecie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \ -I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/transportModels/geometricVoF/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \ -I$(LIB_SRC)/combustionModels/lnInclude LIB_LIBS = \ -lfiniteVolume \ -lmeshTools \ -lfluidThermophysicalModels \ -lreactionThermophysicalModels \ -lsolidThermo \ -lcompressibleTransportModels \ -lincompressibleTransportModels \ -lgeometricVoF \ -ltwoPhaseMixture \ -ltwoPhaseProperties \ -lturbulenceModels \ -lcompressibleTurbulenceModels \ -lthermophysicalProperties \ -lcombustionModels \ -lsaturationModel |
||
September 21, 2022, 12:55 |
|
#19 | |
Member
Al
Join Date: May 2019
Posts: 37
Rep Power: 7 |
Quote:
Code:
LIB_LIBS = \ -L$(FOAM_USER_LIBBIN) \ -lnewLibrary -lfiniteVolume \ -lmeshTools \ -lfluidThermophysicalModelsPhi \ -lreactionThermophysicalModelsPhi \ -lsolidThermo \ -lsolidSpecie \ -lgeometricVoF |
||
September 22, 2022, 04:12 |
|
#20 | |
Senior Member
Join Date: Dec 2021
Posts: 251
Rep Power: 5 |
Quote:
Hey Thanks for the helpful answer, I tried to compile a new solver myIcoReactingMultiphaseInterFoam but during wmake I get a new error (see attached picture). I fear there is much more to do to get it working I changed the files for the lib according to your indications (it compiles properly) Here is my options for the new solver : Code:
phaseSystem = $(LIB_SRC)/phaseSystemModels/multiphaseInter EXE_INC = \ -I${phaseSystem}/phasesSystem/lnInclude \ -I${phaseSystem}/compressibleMultiPhaseTurbulenceModels/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/fvOptions/lnInclude\ -I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/dynamicFvMesh/lnInclude \ -I$(LIB_SRC)/transportModels/compressible/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \ -I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \ -I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \ -I$(FOAM_SOLVERS)/multiphase/interFoam EXE_LIBS = \ -L$(FOAM_USER_LIBBIN) \ -lmyIncompressibleMultiphaseSystems \ -lfiniteVolume \ -lfvOptions \ -lmeshTools \ -lsampling \ -ldynamicFvMesh \ -lturbulenceModels \ -lcompressibleTurbulenceModels \ -lthermoTools \ -lcompressibleTransportModels \ -lradiationModels \ -lfluidThermophysicalModels \ -lsolidThermo \ -lsolidSpecie \ -ltwoPhaseProperties \ -llaserDTRM \ -lincompressibleMultiphaseSystems \ -lcompressibleMultiPhaseTurbulenceModels As always thanks for your time! |
||
Tags |
evaporation, lee model |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Setting the height of the stream in the free channel | kevinmccartin | CFX | 12 | October 13, 2022 22:43 |
Evaporation-Condensation in a porous zone (Heat transfer problem) | maximilian-1 | Fluent Multiphase | 1 | August 22, 2018 10:42 |
mass flow in is not equal to mass flow out | saii | CFX | 12 | March 19, 2018 06:21 |
Multiphase flow - incorrect velocity on inlet | Mike_Tom | CFX | 6 | September 29, 2016 02:27 |
Two-Phase Buoyant Flow Issue | Miguel Baritto | CFX | 4 | August 31, 2006 13:02 |