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 particleparticle 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 liquidsolid 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 1e6s, whitch makes the calculation impossibly slow. Even with the packing limiter enabled it will overpack. I've actually got the limiter kicking in at 1e2 before the alphaMax to get slightly longer steps. In the kineticTheory.C the call for G0 is limited by min(alpha,alphaMax  1e2). I tried a limit of (alphaMax  1e3), 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 underrelaxation. 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 3e5s. 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 phiDragterms). 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 SSFFSSS SSFFSSS SSFFSSS h1 SSFFSSS ___ 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 FFxxxFF FFxxxFF 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 twofluid (gas/liquid) problem and the porous media problem is different since in the twofluid 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 multifluid 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. 
Quadraturebased moment method for gasparticle flows
Well Alberto
Wonderful presentation by you at The Annual Kinetic FRG Meeting on "Kinetic Description of Multiscale Phenomena" September 21st25th, 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! :) 
All times are GMT 4. The time now is 07:48. 