CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (http://www.cfd-online.com/Forums/openfoam-solving/)
-   -   TwoPhaseEulerFoam Documentation (http://www.cfd-online.com/Forums/openfoam-solving/58178-twophaseeulerfoam-documentation.html)

paul September 28, 2007 09:37

Hello everyone, Does anyone
 
Hello everyone,

Does anyone have an documentation (ie. journals/theses) on the twoPhaseEulerFoam solver?

Thank you in advance,

Paul Lucente

alberto September 28, 2007 09:57

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.

paul October 1, 2007 12:00

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

alberto October 1, 2007 14:09

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

paul October 2, 2007 13:25

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

alberto October 2, 2007 14:32

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

paul October 3, 2007 13:42

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

alberto October 3, 2007 14:26

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

juho June 4, 2008 08:15

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

alberto June 4, 2008 15:25

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

juho June 5, 2008 02:11

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

sradl December 17, 2008 10:26

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

xiao December 20, 2008 01:09

@ 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

sradl December 20, 2008 09:35

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

xiao December 22, 2008 11:54

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.

sircorp October 29, 2009 22:55

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

alberto October 29, 2009 23:26

Quote:

Originally Posted by sircorp (Post 234565)
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

You are more than welcome. What kind of system are you considering, if you can tell?

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,

sircorp November 3, 2009 05:01

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.

sircorp November 3, 2009 05:21

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

alberto November 3, 2009 13:47

Quote:

Originally Posted by sircorp (Post 234938)
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.

Hi,

interesting problem! In practice to do that with OpenFOAM the main steps are:
  • Include heat transfer, which is relatively easy. The fact that thermodynamic properties depend on temperature is not a problem. If you start from twoPhaseEulerFoam, you have to change the solution algorithm to account for variable density however, since the code assumes constant density.
  • Include the mass transfer (you said you want to neglect it, but you might need to include it in the end). This leads to change the solution algorithm of the whole multiphase set of equations, since you have to add a source term to the phase continuity equation and to the momentum equation.
  • Account for solidification
The first two changes are well documented in the literature. You might want to take a look at papers about simulation of nuclear reactors using Eulerian multiphase model for an idea of the kind of numerics used in such a kind of applications (See recent papers from Jeong and Park on Nuclear Engineering and Design, for example "A semi-implicit numerical scheme for transient two-phase flows on unstructured grids"). You can find also some useful information in the literature on chemical reactors, but the details of the implementation are hard to find, since most of the works were done using commercial codes.
Finally, two good references for robust Eulerian multiphase code implementations are:
  • Vasquez, S. A., Ivanov, V. A. (2000), A phase coupled method for solving multiphase problems in unstructured meshes. In: Proceedings of ASME FEDSM'00: ASME 2000 Fluids Engineering Division Summer Meeting, Boston.
Both the references suggest algorithms that are not straightforward to implement in OpenFOAM right now (coupled solver required).

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.