About integrateProcessingFunctional


I would like to do some modify in the multicomponent2d.cpp code. I want to add the interparticle force for each component except the ShanChen Multicomponent interaction, which is already in the code. Thus I did it like below. Am I right? Can I use three interfrateProcessingFunctional in the same time? Thank you.

integrateProcessingFunctional (
            new ShanChenSingleComponentProcessor2D<T,DESCRIPTOR> (
                G11, new interparticlePotential::PsiShanChen93<T>(rho0) ), lattice.getBoundingBox(), latticeOne, processorLevel );

integrateProcessingFunctional (
            new ShanChenSingleComponentProcessor2D<T,DESCRIPTOR> (
                G22, new interparticlePotential::PsiShanChen93<T>(rho0) ),lattice.getBoundingBox(), latticeTwo, processorLevel );

integrateProcessingFunctional (new ShanChenMultiComponentProcessor2D<T,DESCRIPTOR>(G12,constOmegaValues), Box2D(1,nx-2,0,ny-1),
            blockLattices, processorLevel );


The effect of the Shan/Chen data processors (both the single- and the multi-component version) is to compute the density and the momentum for every component, and assign it to the lattice. In your example, the results of the single-component model will simply be overwritten by the results of the multi-component version, which is probably not what you want.


Let me describe my case again, hope it will be clearer this time (I am sorry for the inexplicit description). There are three forces in the two component system, they are controlled by interation strength g11, g12 and g22 respectively. g11 is the interaction strength between the particles of componentOne. g22 is the interaction strength for componentTwo, and g12 is the interaction between two components. In each time step, for component one, I hope the momentum is corrected by adding the effect of g11 and g12. For component two, the momentum is corrected by adding the effect of g12 and g22. That is why I want to use three integrateProcessingFunctionals as previous post. I am not sure can I get the results what I want, if I use these three integratedProcessingFunctions,

Another question is that is it available in palabos code to simulate fluid-surface forces as described in Sukop’s book P87. I really want this to do some simulations. Thank you.

Right, so, the answer is no, you cannot achieve what you want by accumulating the three data processors for multi-phase flow. You have to write yourself a new data processor that takes into account all the interactions at the same time.

My understanding (but I can be wrong) is that the fluid-surface force terms described in Sukop p.87 is equivalent to the point of view adopted in Palabos, which is to represent the boundaries through bounce-back nodes with a virtual density (the density on the bounce-back nodes, which is the one which is felt by its fluid neighbors when they compute the interaction force, is not computed from the populations, but instead is imposed by the user). If you have a look at the example programs you will see how this is done.

Hi Glary and jlatt,

Regarding fluid-surface forces, I also posted a question LBforum

In the current version of Palabos (as long as I understand), the same interaction strength (G) is applied to fluid-fluid interaction and fluid-surface interaction (by imposing the density value on the bounce-back nodes). In Sukop p.87 (Martys and Chen, 1996), Gads is an adsorption coefficient which is different from G - interaction strength in Shan and Chen model.

Algorithm should be very simple, but implementaion to Palabos requires understanding of data processing in order to distinguish nodes for fluid-fluid interactions from nodes for fluid-surface interactions (simply nodes adjacent to bounce back nodes). It can be done by making index.


I plan to work on this for my work. I need to get this done this month (hopefully).
I try to analyze Mercury intrusion posiometry data to simulate pressure-saturation. It will be similar to work published in Hyvaluoma et al., 2004.
Hyvaluoma et al., 2004: Future Generation Computer Systems 20 (2004) 1003-1011.
It would be great to work with you on this. If you would like to do, please let me know. My email is hyoon32010@gmail.com
We can post our work later here.

If anyone can give a tip or direction, that would be awesome!!!


Hi Hong,
It is easily shown that Gads in Martys and Shen’s formula is given by
G[sub]ads[/sub] = G * psi (rho[sub]s[/sub])

By tuning the free parameter rho_s appropriately, one can tune Gads to be different from G. So the procedure outlined by Jonas above for implementing solid-fluid adhesion is exactly equivalent to Martys and Shen’s, and no additional coding should be necessary.



If you read through the book (specifically pages 90-92) G[sub]ads[/sub] = G * psi (rho[sub]s[/sub]) is a simplification that only holds when the liquid cohesive strength of the fluid is the same and the fluid with the solid (the complete wetting case). More generally it is:

G[sub]ads[/sub] = G * (psi(rho[sub]l[/sub]) + psi(rho[sub]v[/sub])))/2

Where psi(rho[sub]l[/sub]) and psi(rho[sub]v[/sub]) are for the liquid and vapor phases respectively.


Which book are you refering to? The solid wall needs to play a role in adhesion strength G[sub]ads[/sub] Since your formula doesn’t involve any solid property, I am not sure that is correct. You are probably talking about cohesion, which is different.