CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   Evaporation due to Heat Transport using InterFoam (Correct Implementation?) (https://www.cfd-online.com/Forums/openfoam/80672-evaporation-due-heat-transport-using-interfoam-correct-implementation.html)

ovie October 3, 2010 04:10

Evaporation due to Heat Transport using InterFoam (Correct Implementation?)
 
Hi,

I have tried to implement phase change due to evaporation for an incompressible liquid flowing down a vertical heated wall using interFOAM with an energy transport equation. I have employed the methods suggested by Bitan Shu (Phase Change Model for Two-Phase Fluid Flow Based on VOF Method) and Wondra et al. (Evaporation Model for Interfacial Flows Based on a Continuum Field Representation of the Source Terms). However in both cases, I am unable to accurately reproduce the results presented in their papers. I am particularly interested in Bitan Shu's implementation because it allows for large grid sizes. Has anyone successfully done this?

If anyone has, please take a look at my code and tell me where I am wrong. Help is needed PLEASE!


STEP 1: Solve the energy transport equation for the entire domain i.e. (both liquid and gas):


STEP 2: Compute source terms using gradient of temperature:

Code:

             
volVectorField gradAlpha = fvc::grad(alpha1);
       
// to compute interface normal unit vector
volVectorField nHat = gradAlpha/(mag(gradAlpha) + interface.deltaN());
       
// compute interfacial area = magnitude of grad(alpha1)*volume of cell
volScalarField alpha1Prime = mag(gradAlpha);       
       
// set liquid and interfacial temperature to Tsat
forAll(mesh.cells(), celli)
{
        if (alpha1[celli] >= scalar(0.5))
        {
                T[celli] = Tsat.value();
        }               
               

// set this values to zero so that only liquid evaporation is accounted for
        if (alpha1[celli] < scalar(0.50))
        {
                alpha1Prime[celli] = scalar(0);
        }
               
}
               
// Compute mass source field
mDot = -(kappa/evapEnthalpy)*(fvc::grad(T) & nHat)*alpha1Prime;

// Compute energy source field using enthalpy of evaporation
hDot = -evapEnthalpy*mDot;

kappa = thermal conductivity
evapEnthalpy = heat of vaporization
rho1 = liquid density

STEP 3: Solve alpha1 equation using MULES with source terms prescribed as
Code:

Su = -mDot/rho2;
Sp = 0.0;

STEP 4: Call Velocity and PISO loop

STEP 5: Repeat STEP 1

Please kindly review and tell me where this is wrong. Suggestions on more correct implementation of the source terms for evaporation would be well appreciated.

Thanks for the help.

sabin.ceuca October 4, 2010 02:21

Hi Ovie,
I am also struggling to implement temperature driven phase change. I tried the same as you did but my Su=mDot/rhoLiquid=HTC_liquid/rhoLiquid*(Tsat-T)/(latentHeat)*InterfacialAreaDensity. My Source term looks different because my phase change is due to condensation. My problems are that it crashes and I don’t get any reasonable results:).
What do you mean by ?
Quote:

Originally Posted by ovie (Post 277539)
However in both cases, I am unable to accurately reproduce the results presented in their papers.

Ciao,
Sabin

ovie October 4, 2010 02:44

Hi Sabin,


Quote:

However in both cases, I am unable to accurately reproduce the results presented in their papers.
What I meant was that I successfully implemented the model proposed by Wondra et al. in the paper I referenced in the earlier post. I can send you the paper and my implementation if you want. I ran the code and it was well behaved and I had nice results. The only problem was that it under predicted the phase change compared to the results they reported in their paper. But the under-prediction was not by much though (really small but then the simulation was for micro scale and I fear this underprediction could be significant at macro scale). In any case, I SUSPECT the problem was with my boundary conditions because in their case they simulated 1-D stefan problems while I was unable to do that using interFoam so I used a 2-D mesh with zero gradient and no-slip conditions at planes normal to the transverse directions.

In the case of Bitan Shu's model, the simulation reports completely strange results. I really dont know where to start from at the moment. I am reading up another paper by P. Keller et al. (Numerical Simulation of Evaporating Droplets with Chemical Reactions using a Volume of FLuid Method) where they used interFoam and reported nice results. I think I might get some practical details on the implementation from there.

Thanks..

sega October 4, 2010 03:29

As far as I know Shu used OpenFOAM in his Ph.D. thesis.
I'm sure you can get more informations out of if that of the paper.
Try to get it!

ovie October 4, 2010 16:21

Hi Sega

Quote:

As far as I know Shu used OpenFOAM in his Ph.D. thesis.
I'm sure you can get more informations out of if that of the paper.
Try to get it!
I already have the conference paper where Shu developed his model. I think my problem is with the implementation right now. If you have any additional materials please be kind to make it available.

Thanks

sega October 4, 2010 17:35

Quote:

Originally Posted by ovie (Post 277755)
Hi Sega

I already have the conference paper where Shu developed his model. I think my problem is with the implementation right now. If you have any additional materials please be kind to make it available.

Thanks

I have the Ph.D. thesis at hand, but I'm not sure Bitan Shu will be happy if I publish it here.
Please contact him directly: http://www.tecies.com/

ovie October 4, 2010 17:40

Quote:

I have the Ph.D. thesis at hand, but I'm not sure Bitan Shu will be happy if I publish it here.
Actually, I have been in direct communication with Bitan Shu. But he/she told me his/her Thesis was in German and offered to send me a copy but I passed since I dont have a clue about German language. Maybe I got it wrong. I can send him a mail and ask again if he/she has an English version or something. But do you have an English version of the thesis?

Thanks...

sega October 4, 2010 17:46

Quote:

Originally Posted by ovie (Post 277765)
Actually, I have been in direct communication with Bitan Shu. But he/she told me his/her Thesis was in German and offered to send me a copy but I passed since I dont have a clue about German language. Maybe I got it wrong. I can send him a mail and ask again if he/she has an English version or something. But do you have an English version of the thesis?

Thanks...

No, I just have the german version ...

ovie October 4, 2010 17:48

Very well then.

Thanks for the help.

nimasam October 6, 2010 04:54

hi ovie
could you implement shu paper properly ?
i tried it, i have used interPhaseChangeFoam , but my results can't follow interface exactly,please inform me about ur last effort!!!!!
and i suggest you look at interPhaseChangeFoam and MULE code in it !!!!

LarsPT December 16, 2011 07:02

Ovie, by the way, I found that my results depend on the timestep. The larger the timestep, the more liquid is evaporating.

ovie December 16, 2011 07:10

Quote:

Originally Posted by LarsPT (Post 336074)
Ovie, by the way, I found that my results depend on the timestep. The larger the timestep, the more liquid is evaporating.

Well that comes down to your grid sizes and the size of your CFL number. In my case I used a well resolved grid (try the grid sizes specified in Wondra's paper) and specified variable time step in controlDict. The results were very comparable to those reported in Wondra's paper.

nimasam December 16, 2011 09:44

Quote:

Originally Posted by LarsPT (Post 336074)
Ovie, by the way, I found that my results depend on the timestep. The larger the timestep, the more liquid is evaporating.

look at here
http://www.cfd-online.com/Forums/blogs/nimasam/906-boiling-openfoam.html

and here
http://www.cfd-online.com/Forums/ope...hangefoam.html

tom_flint2012 August 31, 2018 06:36

multiphase vapourisation
 
Hi,


I know I'm a little late to this thread but I'm hoping you are all still active in this field.


I'm trying to implement a multiphase evaporation and diffusion model.



Basically I have selected metallic phases and an atmospheric phase. e.g. Fe, Fevapour, Ni, Nivapour, Pb, Pbvapour, air. I would like to implement phase change between the selected phases as -m_dot/rho.

I have been modifying the multiphaseeulerfoam solver for this application. I have already implemented the diffusion between selected phase pairs in the solveAlphas function, however the selected phase transformation is proving difficult. I'd really appreciate some pointers.


I have found the phase pairs by checking for their names, i.e. if(phase2.name()==(phase1.name()+"vapour")){
mdot=.....;

}


I dont really know where to go from here to find the source term for MULES.


I think the flux contribution is important too but I have no idea what this should be.


Any help would be greatly appreciated



All the best,


Tom

Kummi August 3, 2019 07:00

1 Phase Stefan Problem ~ POINT SINK model
 
2 Attachment(s)
Hello Foamers,
Hope this thread is active. After looking into the source code posted by Ovie Doro, it seems expected equations are upright in front for my work.

My topic of research is to build the 1D mathematical model by simulating the coal pyrolysis in OpenFOAM. Initially, for dry coal the prolysis phenomenon is executed based on FireFOAM solver. In case of WET COAL, the moisture need to be evaporated at 100deg by supplying heat from one end of the wall (point sink idealogy) - followed by evaluation of mass and energy balance.

I have manipulated the code of Ovie Doro a bit: (below)
Quote:

volVectorField gradAlpha = fvc::grad(alpha1);
// to compute interface normal unit vector
volVectorField nHat = gradAlpha/(mag(gradAlpha) + interface.deltaN());
// compute interfacial area = magnitude of grad(alpha1)*volume of cell
volScalarField alpha1Prime = mag(gradAlpha);
// set liquid and interfacial temperature to Tsat
forAll(mesh.cells(), celli)
{
if (alpha1[celli] <= scalar(0.1)) //10% of moisture
{
T[celli] = Tsat.value(); //Tsat = 100deg
alpha1Prime[celli] = scalar(0); //Moisture content = 0
}
}
// Compute mass source field (mass balance)
//mDot = -(kappa/evapEnthalpy)*(fvc::grad(T) & nHat)*alpha1Prime;
mDot = -(rho*alpha1*interface_VELOCITY);

// Compute energy source field using enthalpy of evaporation (energy balance)
hDot = -evapEnthalpy*mDot;
In my case:
Quote:

T= 100 (saturation temperature when phase change occurs)
@T=100 --> [w(moisture content)->at high (-) temperature side =0]

Mass balance (r) = rho * alpha * (dx/dt) [kg/m2.s] (calculated at -> low (+) temperature side)
Heat balance (-K dT/dx) = (r) * latent heat [W/m2]
Heat balance (flux) of boiling is expressed in unit of W/m2 ==> source term in energy equation carries the unit W/m3 ~ And I am confused here as how to implement this equation as a source term in my work?

So, should the mass and energy balance equations need to be fitted as boundary condition (or) interface condition? How and where the above set of coding can be fitted in OpenFOAM and compiled appropriately ?

ENERGY EQU: rho*Cp*(delT/delt) = del/delx[K*delT/delx ] + r*cp*delT/delx + rho*delQ/delT (W/m3)

REF - Clear details here in this MANUSCRIPT ~ http://sci-hub.tw/https://doi.org/10...361(83)90225-9 Images attached with schematic model and curve.

I am in need of some ideas or assistance to implement my work.
Thank you


All times are GMT -4. The time now is 05:15.