Hello everyone,
Does anyone
Hello everyone,
Does anyone have an documentation (ie. journals/theses) on the twoPhaseEulerFoam solver? Thank you in advance, Paul Lucente |
Hello Paul,
the solution algo
Hello Paul,
the solution algorithm is explained in Henrik Rusche's Ph.D. thesis: http://powerlab.fsb.hr/ped/kturbo/Op...chePhD2002.pdf The algorithm was actually developed for bubble flow, and the resulting solver was bubbleFoam, of which twoPhaseEulerFoam is an extension. If you need more information, ask here :-) Regards, A. |
Alberto,
I'm having problem
Alberto,
I'm having problems with the particle-particle magnitude force (PPMagf) equation, which is in the alphaEqn.H file. I am very new with this software as well as this type of fluid dynamics. I'm using the bed example and changing it to a liquid-solid settling model. When I include the packing limiter I get a Floating exception error (I'm assuming a division by zero). When I turn the packing limiter off the solids fraction rises above the packing limit and in some other locations I also get a negative solids fraction. Do you have any suggestions? Thank you, Paul |
Dear Paul,
I know these probl
Dear Paul,
I know these problems, and only a significant change in the solution algorithm can reduce them reliably. You can find some more information about this searching the discussion board, and in the MFIX documentation www.mfix.org. About your case, if you need to simulate settling, there is also another solver in openFOAM: settlingFoam. Some theoretical background is here: http://powerlab.fsb.hr/ped/kturbo/Op...BrennanPhD.pdf With kind regards, Alberto |
Sorry about all these question
Sorry about all these questions.
The kineticTheoryModel.C file refers to a paper (ie. Line 226 - "particle pressure - coefficient in front of Theta (Eq. 3.22, p. 45)). I was wondering if you happen to know what paper they are refering to. Thank you again, Paul |
Hello Paul,
that annotation j
Hello Paul,
that annotation just means you calculate the "coefficient" of the granular pressure you have to put in the term: fvm::SuSp(-((PsCoeff*I) && dU), Theta_) of the transport equation for the granular temperature. The coefficient is simply Ps/Theta_, because Theta_ is already present in the SuSp, as a separate argument, being the variable you solve for. With kind regards, Alberto |
Hello Alberto,
I'm still cu
Hello Alberto,
I'm still curious to know what paper they are refering to. I've tried searching for this bed example on the internet I haven't been able to find it. I'm curious because there a few other references to this paper in that same kineticTheoryModel.C file. Basically I would like to get a better understanding of the solution steps. Thank you again, Paul |
The reference is Berend Van Wa
The reference is Berend Van Wachem Ph.D. thesis I think, who is a professor at Chalmers University now.
With kind regards, Alberto |
Alberto,
You said it would
Alberto,
You said it would need a significant change in the solution algorithm to overcome the overpacking problems. Have you outlined what the significant change should be? Even roughly? I have to use a very small timestep to keep the packing under alphaMax. Down to 1e-6s, whitch makes the calculation impossibly slow. Even with the packing limiter enabled it will overpack. I've actually got the limiter kicking in at 1e-2 before the alphaMax to get slightly longer steps. In the kineticTheory.C the call for G0 is limited by min(alpha,alphaMax - 1e-2). I tried a limit of (alphaMax - 1e-3), but it made things even worse. Juho |
Hello Juho,
the problems yo
Hello Juho,
the problems you're facing are due to the explicit treatment of the granular pressure in the current solver. To my knowledge, there are mainly two approaches used to stabilize the solution when the particle phase reaches the packing limit, at least in well known codes (FLUENT, MFIX, ...). The first one is to make the particulate phase incompressible when the packing is reached, which means you solve a pressure equation for the particulate phase too. You then use the granular pressure predicted by the kinetic theory when the flow is not packed, and the pressure given by the pressure equation when the flow is packed. The second solution is the one adopted in MFIX (see details in their documentation on www.mfix.org, or in Mathijs Goldschmidt, "Hydrodynamic Modelling of Fluidised Bed Spray Granulation", Twente University Press), where a particle phase fraction correction equation is used instead of the continuity equation for the particulate phase, to sensitize it to the granular pressure. Both these algorithms are based on SIMPLE, with internal iterations to be able to apply under-relaxation. Probably the first one is the less intrusive to implement, but you need to find a way to workaround the singularity in the pressure equation you have when the particulate phase fraction tends to zero. If you need further information, just ask or drop an email. Regards, Alberto |
Thank you!
I'll look into t
Thank you!
I'll look into those to see if I get a handle on how to implement them. Studying MFIX documentation ja transientSimpleFoam at the moment. I may have to bother you again... Although at the moment there's no overpacking in areas of interest with timestep of 3e-5s. Regards, Juho |
Dear Foamers,
I found some
Dear Foamers,
I found some inconsistencies between the actual OpenFOAM implementation (TwoPhaseEulerFoam as well as bubbleFoam) and the PhD Thesis of Rusche. It is about the treatment of pressure. In the PhD of Rusche he discusses on p. 121 the boundary conditions for pressure at walls. He states that he removes the hydrostatic pressure from the total pressure to simplify the pressure boundary condition, i.e., to use zeroGradient. By doing so, the gravity term in the continuous phase equation vanishes (his Eqn. 3.71) and the pressure is replaced by the "modified mixture pressure" p* = p - rho_b . g . x. However, in the current OF implementations the gravity term is still included (not in UEqn.H but later in the pEqn.H where it is added via the phiDrag-terms). Also, the results include the hydrostatic pressure, but still are using the zeroGradient BC for pressure. So I have the following questions: - why the current implementation works with zeroGradient BC, as it should not. - Rusche's definition of p* = p - rho_b . g . x is generally not applicable to a mixture, as the pressure gradient is proportional to rho_b . g . eps_b. So I don't see the rationale why p* is defined as it is. I'd appreciate any clarification on this, br Stefan Radl |
@ Rusche's definition of p* =
@ Rusche's definition of p* = p - rho_b . g . x is generally not applicable to a mixture, as the pressure gradient is proportional to rho_b . g . eps_b. So I don't see the rationale why p* is defined as it is.
No... the pore fluid pressrue gradient is proportional to rho_b * g, no matter what the volume fraction of the fluid is. I work on porous media and this issue used to confuse me as well. Just think of this example, a container like this with thin top and thick bottom, xx |FF| xx xx |FF| xx xx |FF| xx h1 xx |FF| xx ___xxx ____ |FFFFFFFFF| |FFFFFFFFF| |FFFFFFFFF| h2 |_________| What would be the pressure at the bottom? It is rho_fluid * (h1 + h2); Now, suppose the thin neck is surounded by solid |SS|FF|SSS| |SS|FF|SSS| |SS|FF|SSS| h1 |SS|FF|SSS| ___ xx ____ |FFFFFFFFF| |FFF Fluid| |FFFFFFFFF| h2 |_________| and thus the top and the bottom has the same width, what would be the pressure at the bottom? again, rho_fluid * (h1 + h2). Finally, if on the top part, the fluid and the solid are not completely separated but mixed instead, what would be the pressure at the bottom? Again, rho_fluid * (h1 + h2). Sorry for my drawing... F --> fluid S ---> solid X --> void Hope this helps. If not, I will draw a PDF figure. drop me a line. nomadzju AT gmail.com best, Heng |
Hi Heng,
thanks for the ide
Hi Heng,
thanks for the idea how to argue. Your example nicely illustrates the issue and is of course correct. However, in a bubble flow the situation is like this: |FFFFFFFFF| |FFFFFFFFF| |FF|xxx|FF| |FF|xxx|FF| |FFFFFFFFF| |FFFFFFFFF| |FFFFFFFFF| |FFFFFFFFF| |_________| and buoyancy will drive the bubble up and from a simple force balance the (mean) pressure at the bottom must be rho_b . g . eps_b . h. This makes also sense to me when I consider the liquid to be very viscous, i.e., that no relative motion between the bubble and the liquid occurs. The same can be done for your example when considering the buoyancy force that is acting on the void and you'll get rho_fluid * (h1 + h2) as detailed by you. The thing is that the void in you case is connected to the wall, i.e., your bottle that can take up a force. Please correct me if I'm wrong. I think why Rusche is using this definition is that he pushes the effect of the buoyancy force into the dynamic pressure p*. This in the end makes sense to me - However I'm still curious about the implementation in OpenFOAM. br Stefan Radl |
hmm... you are right. Indeed,
hmm... you are right. Indeed, the two-fluid (gas/liquid) problem and the porous media problem is different since in the two-fluid problem, both phase can have pressure, while for the porous media problem, on the fluid can have pressure. This issue is very tricky. I need to think more about it.
|
Thanks Alberto
Thanks Alberto
The background study information is of great help for my project. Basically I am trying to model a Three Phase System simultaneously where materials goes phase changed from Solid to Liquid then to gases. I am new to this field, hence I have penlty to learn and contribute too. sircorp |
Quote:
Mass transfer is not currently implemented in twoPhaseEulerFoam / bubbleFoam, and there is some stability problem to manage dense particle phases since the implementation of the particle pressure is not robust. I have some draft algorithm to fix the problem with the particle pressure implementation, and I'm working (very slowly, it is spare time work) on a fully conservative implementation of a multi-fluid solver, with the idea of creating a tool with all the bits for multiphase simulations. It is useless to hide the fact it will take time to have it ready, given the reason I wrote above. Best, |
Multiphase System
Thanks Alberto
(Input will be highly appreciated) My problem is dealing with pressurised multiphase system in which gas is heat carrier. System may solidify when cold. At any given time only two phases (either gas/liquid or gas/solid) are available. However in real world all three phases are availale during melting or freezing. To simplify the system, solid phase will be treated as liquid phase all the time with zero velocity(momentum equations)(X,Y,Z component). Basically gas is additive to a liquid which solidifies or melts depending on the total heat of interaction between gas and solid(liquid). I am trying to understand the emulsion system(or colloidal system to be precise) which "may" be pretty close to real world gas/liquid system. I am new to CFD. However I am spending most of time to understand at the basics of fundamental equations to built some base. I have started to simplify the system. 1) Heat transfer takes place only between gas and liquid. Gas phase never freezes. When liquid solidifies, gas velocity changes accordingly but still remain in gas phase. 2) No heat transfer take place from or to the wall of the system. 3) No chemical reaction taking inside the system. 4) System is missible(gas solibility in liquid at max 10% but decreases with temperature) but will be treated immissible to make life easier. Missibility of 10% is possible. 5) Both Liquid or Gas Specific Heat is Temperature Dependent. Effect of pressure will be built in density. Density is function of temeptature. |
Quadrature-based moment method for gas-particle flows
Well Alberto
Wonderful presentation by you at The Annual Kinetic FRG Meeting on "Kinetic Description of Multiscale Phenomena" September 21st-25th, 2009 University of Maryland - College Park sircorp |
Quote:
interesting problem! In practice to do that with OpenFOAM the main steps are:
Finally, two good references for robust Eulerian multiphase code implementations are:
Please, let me know if you need further information. P.S. Thank you for your comment on my presentation! :) |
Thanks Dr. Alberto
(I am new to CFD and hence please bear with me if I ask some very stupid/silly question(s). Thanks for help in references. All three references are of "DIRECT" help for my project. Katerina Mousa gave some insight into role of bubbles in bubble-liquid CFD. She addressed nicely.) 1) Your feedback on variable density is highly appreciated. I am working on Molten Salt + Gaseous systems. Yes molten salt density will be a function of temperature and system will have a temeprature gradient( around 200 degree from top to bottom.) I should have experimental data ready in one years(once our prototype system is ready). 2) Regarding mass transfer equations, I am trying to take one step at a time(being new to CFD). I believe it will be highly complex to develop mass transfer equations. Three to Four variables will be there i) Density(variable density along the height of the chamber) ii) Solubility of gases in the system will be temeprature dependent. Also it will not be linear. iii) To keep the puping load low, high heat transfer, bubble size is important. I need to work below turbulent velocity. Gas velocity will be pretty low and molten system will flow under gravity from bottom to top and vice versa. Temperature gradient will be a continuous feature of the system. iv) It is assumed system is not stirred. v) Freezing of system is of paramount importance to use Latent Heat. However, to include Latent Heat, that will be be distant away for me. Thanks sircorp. |
Very happy to be of some help!
Quote:
Best, |
Quote:
Thanks Dr. Alberto I am going through the recommonded study. I am new to CFD and may ask very basic questions time to time. I did answer this email earlier but it seems it ended in separate forum. Sircorp |
Quote:
Best, |
TwoPhaseEulerFoam Documentation
Thanks Alberto
The article by Jeong and Park , "A semi-implicit numerical scheme for transient two-phase flows on unstructured grids" has helped me enormously. I have started going through the other cited references. As per project, I MUST use Fluent and TRNSYS together to model the system. sircorp |
Quote:
Best, |
hello Alberto
I am interested in the solution algorithme in twoPhaseEulerFoam. but it really confuses me. In the Ueqn.H, the l.h.s of the momentum equation for phase A is (scalar(1) + Cvm*rhob*beta/rhoa)* ( fvm::ddt(Ua) + fvm::div(phia, Ua, "div(phia,Ua)") - fvm::Sp(fvc::div(phia), Ua) ) - fvm::laplacian(nuEffa, Ua) + fvc::div(Rca) + fvm::div(phiRa, Ua, "div(phia,Ua)") - fvm::Sp(fvc::div(phiRa), Ua) + (fvc::grad(alpha)/(fvc::average(alpha) + scalar(0.001)) & Rca) what's meaning of this term " (scalar(1) + Cvm*rhob*beta/rhoa) "? After reading the Ph.D thesis of Henrik Rusche, I still can’t find any term which is similar to “(scalar(1)+Cvm*rhob*alpha/rhob)”. I am new to two-fluid method, please bear with me if this question is silly. Thank you. Chai |
Bugs in twoPhaseEulerFoam
Hi,
by reading the Master thesis of Juho Peltola I understand why the twoPhaseEulerFoam with using the kinetic theory for granular flows gives unphysical results. It seems that Juho introduces some modifications of the code. My question is in what way the modified twoPhaseEulerFoam is accessible for OpenFoam users. Best, Nicoleta |
Quote:
Best, |
For those who are for a Learning Phase, an exceptionally good reading is "Dynamic Simulation of dispersed gas-liquid two-phase flow using discrete bubble model". by Delnoij and Lammers et al.
(I am also new to CFD and is trying to raise my head above water). Thanks to Alberto's help I am able to make some ground. |
Quote:
For Nicoleta, if you are interested in a partial description of the numerical methodology used in bubbleFoam/twoPhaseEulerFoam, and in particular on the phase intensive formulation of the momentum equation, you can read the following paper:
The details of the implementation in OpenFOAM(r) are described in an internal report of OpenCFD(r) and are summed up in Henrik Rusche PhD thesis, where you can also find the reference to the internal report I am referring to. The basic ideas behind the solution algorithm are the following
Side note: all this was explained in one contribution to the documentation project :D Best, |
Confusion:
1) As per my reading over the last few months I was made to believe that in gas-liquid fluidized bed, smaller the bubble particle size, more the heat transfer between gas and liquid(keeping velocity, density and other parameters same). 2) Also with the increase of the pressure(I mean in pressurised fluidized bed), the bubble size of gas decreases with the increase of the pressure and limits to maximum 6 MPa above which no change oserved in heat transfer coefficient between gas and liquid. 3) The effect of Viscosity is not clear to me at all. BIG CONFUSION. According to Xukun Luo et al in "High presure three phase fluidization system declares other way i.e. Heat Transfer decreases with increase of Viscosity".(A similar claim made by Xukun Luo et al on page 2433 penultimate paragraph |
Gas Liquid Heat Transfer
Does some one can guide me to find Heat Transfer Equations of Bubbling Gas through a Liquid Column.
Sircorp |
Hi Sefan Radl,
I am actually quite confused about the implementation of the pressure in twoPhaseEulerFoam which is different than what Rusche explains in his thesis. If "p" in the solver represents the modified pressure, why then gravity still appears (as a term transfered from the UEqn.H to the pEqn.H)? I hope that you found the answer to this question after this long time and that you'll be able to help me. Thanks in advance! Best, Edy |
bubbleFoam / twoPhaseEulerFoam do not solve for the modified pressure, but for the actual pressure. You can easily obtain the pressure equation used in the code dividing each continuity equation by the corresponding phase material density and summing them up.
Further information here: http://openfoamwiki.net/index.php/Bu...ssure_equation Best, |
Hi Alberto,
Thanks a lot for your answer and link. I just started using OF and there are still many things that are unclear to me... :) Your link was quite useful and now I understand, i think, the role of the pressure equation. However i still have few questions : 1) Tell me if I am wrong but the terms to be transfered to the pressure equation are the one in which appears a gradient term, cause letting gradient terms in the RHS of the momentum equation would cause numerical calculation problems such as oscillations and loss of continuity. Am i right? Then I understand why the pressure gradient and the turbulent dispersion force (in which appears grad(alpha)) are transfered, but why the gravity g too?? 2) Since twoPhaseEulerFoam considers the actual pressure, the BC at the wall should not be zeroGradient, right? I think I'd better use buoyantPressure, but then I have an issue concerning the density to use. The wall is ,in my case, heated and void fraction can be relatively high, so taking the liquid density does not appear as the best solution to me. Perhaps to take a kind of mixture density would be more appropriate. I do not really know how this BC patch works... I would be very grateful if you could provide some insight into these two issues. Thanks a lot! Best regards, /Edouard |
Hi again!
Still concerning my first question, I noticed in bubbleFoam and twoPhaseEulerFoam that the drag term (not the turbulent drag also called turbulent dispersion) is transfered to the pressure equation, though it does not contain any gradient... Why is this term transfered and not the lift for example, or any other interfacial force? Thank you very much for your help! Best, /Edouard |
Quote:
Quote:
Best, |
Hi Alberto,
Thanks again for taking some time and answer my questions! Ok, so transferring the explicit part of the drag term to the pEqn will stabilize the procedure. I am trying to understant all that because I am modeling a two phase Eulerian model for nucleate subcooled boiling. And therefore I have additional terms in my momentum equations due to phase change. But I dont know if they should be kept there or transfered to the pEqn... How to guess that transferring some terms will stabilize the procedure? Do you have any advice? Anyway, thanks a lot, your previous posts have been quite helpful. Best, /Edouard |
What is the form of these terms? Do they change quickly with the phase fraction?
Best, |
All times are GMT -4. The time now is 12:56. |