Interrogation about generation of capillary files byMatlab program

Asked by Luc OGER on 2020-08-20


in order to test a different contact angle for my simulation with capillary interaction I am using the Matalb programs writeCapFile.m and its two linked ones.
I started first by using the inital case theta=0 and I am surprised by the non continuous evolution of the calculated maximum suction versus the rRatio:
see the matlab output:
 For r = 1, maximum suction found: final uc = 9230
 For r = 1.1, maximum suction found: final uc = 16749
 For r = 1.25, maximum suction found: final uc = 19036
 For r = 1.5, maximum suction found: final uc = 22843
 For r = 1.75, maximum suction found: final uc = 26389
 For r = 2, maximum suction found: final uc = 21154
 For r = 3, maximum suction found: final uc = 31738
 For r = 4, maximum suction found: final uc = 41922
 For r = 5, maximum suction found: final uc = 51901
 For r = 10, maximum suction found: final uc = 88968

The jump down during the evolution between 1.75 and 2 is quite strange ???? it is like two different slopes

is it two different ways of calculating the data ?
how this fact can influence the output files M(r=...) ?

thanks in advance for your explanation


Question information

English Edit question
Yade Edit question
No assignee Edit question
Last query:
Last reply:
Jérôme Duriez (jduriez) said : #1

Hi Luc,

No, there is only one way of calculating that (rather arbitrary) maximum dimensionless suction value [1].

Maximum suction is here the first suction value for which the mean filling angle between two (liquid-bonded and contacting) particles is less than 0.7 degrees.

"first" referring to a geometric sequence of suction values, starting from low suction (and filling angle >> 0.7 degrees), and multiplying each time by 1.2 [2]

There is a "step" aspect here and I think this explains that non monotonous variation.

When one is able to high-jump 0.50 m but fails at 1.5 m, it does not mean that 0.5 m really constitutes his high-jumping maximum level (maybe the guy could jump 0.9 m but he did not get the opportunity to try).

In terms of liquid bridges, maybe the (r=1.75;uc* = 26389) reached a mean filling angle = 0.4 degrees, while uc* = 26389/1.2 led to just 0.71 degrees, barely passing the test to multiply uc* by 1.2.

Whereas the situation would be different for r=2, with the last filling angle reached being equal to 0.69 => no need to increase uc* further, even though the corresponding liquid bridge is not as tiny as the previous one.

As for the consequences on the output files, you may see the M(r=2) file missing more capillary bridge configurations than the M(r=1.75) one, in the high suction regime.

(Both files miss capillary configurations anyway since theory says that a non-zero capillary attractive force exists until infinite suction, and that's not the case in both files)

Nothing to worry if you do not go in that regime.
If you go, YADE should output a message saying that no meniscus is found at a contact, which contradicts the above theory.

[1] That "Preliminary C" block at

Can you help with this problem?

Provide an answer of your own, or ask Luc OGER for more information if necessary.

To post a message you must log in.