CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Bugs (
-   -   TwoPhaseEulerFoam and the ppMagterm (

hemph February 23, 2007 07:34

One more! I am using twoPhase
One more!
I am using twoPhaseEulerFoam to simulate packing, which is very dependent on the particle-particle forces included in OF as ppMagf.

The current implementation of the particle-particle forces (in alphaEqn.H) uses the alpha value on the faces to calculate the ppMagf term as (psuedo code)

alphaf = fvc::interpolate(alpha);
ppMagf = exp( C*(alphaf - alphaMax) );

I will not elaborate here, but in short this expression is very numerically sensitive close to and above the packing limit.
I have found the following approach to be (substantially) more reliable.

ppMag = exp( C*(alpha - alphaMax) );
ppMagf = fvc::interpolate(ppMag);

I.e,. the force term is interpolated to the faces instead of alpha. This allows the forces to act earlier as the cell fills up and limits the unphysically high forces which otherwise develops (when alphaf is used). I would appreciate a comment on this approach!

Best Regards
Rasmus Hemph

alberto February 23, 2007 17:44

Hi Rasmus :-) The role of p
Hi Rasmus :-)

The role of ppMagf is to avoid over-packing. Authors agree in telling its magnitude is not important as far as it prevents the unphysical packing of the dispersed phase and has a negligible effect far from the packing condition.

So, I think your approach is OK. I'm going to try it in some cases which gave me a lot of convergence problems with the current ppMagf implementation. A case is running right now.


hemph February 26, 2007 05:23

Hi Alberto! I appreciate you
Hi Alberto!
I appreciate you trying the new formulation. I am curious to see how it behaves for cases other than packing.


alberto February 26, 2007 06:20

Hi Rasmus, I completed the fi
Hi Rasmus,
I completed the first simulation. I'm doing a second one to see if the change to the algorithm influences the solution in some way.

For now, I noticed a great improvement in the stability of the solution. With the previous one I could not get convergence with dt = 1.0e-5s while now it's OK.

If the tests will confirm this, I'm thinking to do some experimentation with the kinetic theory implementation too, which is still very unstable when alpha -> alphaMax.


hemph March 5, 2007 05:25

Glad to see it is improving th
Glad to see it is improving things for fluidized bed simulations as well (it should!). The problem about using alpha at the faces in the particle packing-force-calculation is easy to show for a case of settling particles.

Consider the bottom two cells in a 1D-settling simulation. As included in the current version of twoPhaseEulerFoam, the pp-forces are calculated at the faces as

alphaf = interpolate(alpha)
ppMag = exp(C(alphaf-alphaMax))

Normal values of alphaMax and C is 0.6 and 600, meaning that the forces should start to act at 60% particles and increase exponentially. The meaning of this term is to limit the maximum of alpha to approximately 0.62-0.65. However, as is shown in the picture, the approach of interpolating alpha to faces is faulty for cases of settling, and unstable in other cases.
At time step 1, the bottom cells is at alpha=0.6, but the value of alpha at the face is still at 0.45, so no forces act to stop packing. At time step 2, the value of alpha in cell center is at 0.75, which, by interpolation gives a alpha at 0.6 at the face, and packing finally seizes. The volume fraction is not only much to high, but the flow field is very unstable (in dimensions higher than 1) due to the large forces for large volume fractions.


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