← Back to team overview

yade-dev team mailing list archive

Re: Some cleaning in capillary law

 

Ah, this is a clarification... I knew this was succion value dependant, but did not catch that the zero volume is inconsistent... Then, would it possible to know a validity range of the capillary data files ?


A second thing is that I was thinking to commit, with the reverted fCap, the use of alpha * -currentContactGeometry->penetrationDepth for D value (instead of computation of l. 112, (*) ).
It would be equivalent to current computation, and maybe useful for periodic simulations. I'm currently using it (mainly for non-periodic cases, yet)

Thanks for remarks,

Jerome


(*) https://github.com/yade/trunk/blob/master/pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.cpp#L112
________________________________
From: Yade-dev [yade-dev-bounces+jerome.duriez=ucalgary.ca@xxxxxxxxxxxxxxxxxxx] on behalf of Bruno Chareyre [bruno.chareyre@xxxxxxxxxxxxxxx]
Sent: October 29, 2014 12:48 PM
To: yade-dev@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Yade-dev] Some cleaning in capillary law

On 29/10/14 17:59, Jerome Duriez wrote:
Inserting the following lines
            else
              if (!hertzOn) {
                if (!cundallContactPhysics->meniscus) scene->interactions->requestErase(interaction);
              } else {
                if (!mindlinContactPhysics->meniscus) scene->interactions->requestErase(interaction);
              }
between current lines 128-129 would solve this problem.

Agree ?
Nope. The problem if you do that is that you break the fusionDetection logic.
There is already a requestErase in the right place [1]. The question is why it is not reached in your case.
The reason is the data files are incomplete, there is no solution found for the parameters you use in your script (try with capillaryPressure=30.e3, you will see the difference).
This result is absolutely wrong: there is always a finite volume when the particles are in contact, mathematicaly speaking. The real problem is the missing data.
I've put an explicit error message when it occures [3] : the simulation is wrong, no point continuing.
I think it fixes the bug.

Meanwhile, I fixed another small thing that would give wrong meniscii during the first iteration. In [2] "D" should not be zero if positive.

Bruno

[1] https://github.com/yade/trunk/blob/fbd593a9888c11d0ca3dd1d09161f81362433407/pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.cpp#L162
[2] https://github.com/yade/trunk/blob/fbd593a9888c11d0ca3dd1d09161f81362433407/pkg/dem/Law2_ScGeom_CapillaryPhys_Capillarity.cpp#L120
[3] https://github.com/yade/trunk/commit/85616e85f3dac5b3bb949ba6d7deff0095909f2e



Follow ups

References