Permeability estimation of porous media, convergence criteria

Hello Palabos developers and users,
I am working in the area of snow microstructure characterization using Microcomputed tomography and structure-property modeling for developing snow cover simulation models. Recently I was introduced to Palabos for fluid flow simulation in porous media using LB technique (Degruyter et al 2010). I must congratulate and thanks the developers for providing such a useful and powerful tool to the scientific community.
I started with Geophysics tutorial for permeability estimation of porous media and applied on the 3D binary mask of snow microstructure obtained from tomography data. In this regard, I have following questions:

  1. Convergence criteria: As per the tutorial, steady state is reached when the standard deviation of the average energy, over 1000 time steps, fall below the threshold of 1e-4. Also a max number of iteration, 30000, is specified. For my simulations (system size of 150x150x150, 200x200x200, 150x150x300, resolution ~ 25.7 microns), the average energy never falls below 1e-4, even after max 30000 iterations. The permeability results were also not much different when I go for max iterations i.e. 30000 or only 2000.
    Max Iterations Permeability stdDev/average
    1000 0.522212
    2000 0.521308 0.0342814 (after 1500 iterations)
    5000 0.520938
    30000 0.520902 0.0344371 (after 29500 iterations)

My question is whether the solution has converged in the first say 5000 iterations itself or my system is ill-defined. Although I must say that the estimated permeability values are of the same order to what I expect. Since the average energy is not changing much, can I safely restrict the max iterations up to say 5000, without bothering about the criteria of < 1e-4.

  1. Choice of omega: What I understand that a value of omega=1 is the safest option for a stable solution in single relaxation BGK model, however there is a finite size effect and omega (kinetic viscosity) dependency in the LBM. Is there any criteria for deciding upon the appropriate values for omega and discretization level.

  2. Unit conversion: How the time step / resolution delta t is defined? Specifically how can we convert the various parameters like, average velocity, Grad P and viscosity from LB units to physical units.

I would appreciate if some one can clarify about any silly mistakes I am making. Cheers

1 Like

I have not used Palabos, the problems you encounter will be easily solved if you call the manufacturer.

noi that fami[/URL] | [URL=]noi that 190

Hi Praveen and everybody,

We are working with micro-CT images as well and we have the same problem. After several iteration the standard deviation of the average energy just increase and increase!

My questions are:
1.- How the steady state could be reached?
2.- I should to change some input parameters (differential pressure) for reaching the steady state?

For more information, we are keeping the same code of the tutorial. The volumes are 200x200x200 resolution is about 9 microns.

millerzam, to me it appears that your simulation is blowing up, probably due to too high velocity in some narrow channel of your geometry. Try increasing the resolution or decreasing the pressure gradient, and write lots and lots of VTK files to find out where exactly your simulation starts diverging.

best regards

I am facing the similar issue, the solution is not reaching the steady state even after reaching the maximum number of iterations, i.e. 30000. The Std deviation over parameter first starts decreasing and then it keeps on increasing for some data and for some this parameter fluctuates (decreasing and increasing and again decreasing and so on). So, is there any way this issue could be solved? I am not changing anything in the permeability code.

Hi @ms123,

I always found the use of that function very obscure, so I went ahead and implemented my own.

Hope that this helps :slight_smile:


I need to perform single phase flow simulation and this code is for Multiphase flow simulation. Should I just change the method used for calculating the tracer value in single phase flow code and use the one you have highlighted in this code? I am not good at C++, so it becomes very difficult to make changes in the code.

Howdy @ms123. This code is for single-phase flow.

@jesantos There is no initial value assigned to old_avg_f in this code. Should I assign any initial value to it? Also, how do define convergence in this code?