Difference between interpenetration and D in JCFPMphys

Asked by Hélvio Peixoto


I've been studying the JCFPM contact law for some months, and there's a line of code that I find odd, maybe you guys could help me understand it.

In file [1], line 64, the condition D<0 has a comment stating that "spheres do not touch". But this is only true if the initial state of the interaction had a negative penetrationDepth, meaning that in the initial configuration of the model there is no interpenetration between the particles.

If the particles overlap when the cohesive interaction is created, then D<0 doesn't mean there's no overlap, it only means particles are further apart from each other than they were in the initial state.

Is this the expected behaviour? Is the JCFPM physics supposed to work always on this assumption (particles are not allowed to overlap in the initial steps)?

Cheers from Brazil,

Hélvio Peixoto

[1] - https://github.com/yade/trunk/blob/master/pkg/dem/JointedCohesiveFrictionalPM.cpp#L64

Question information

English Edit question
Yade Edit question
No assignee Edit question
Solved by:
Jérôme Duriez
Last query:
Last reply:
Revision history for this message
Jérôme Duriez (jduriez) said :


Your understanding of the code is correct, and this comment is indeed misleading, it will be corrected.

Elaborating further on this topic, it is in principle conceivable that two particles still overlap once their initially cohesive interaction fails in tension (depending on the initial overlap at the interaction creation, and interaction parameters)..

In case this scenario makes you uncomfortable, it is to note that it totally depends on your simulation workflow as well, and would not happen during a classical simulation workflow based on an initial compression of a cloud (in which case interactions are created for negligible overlap)

Revision history for this message
Hélvio Peixoto (hfcpeixoto) said :

Dear Jérôme,

thanks for the swift answer.

So what's happening in lines 64-66, if the interaction isn't cohesive anymore, is that it is marked to destruction (return false), letting the Collider create another kind of physics (noncohesive) between these two particles, if they still overlap. Probably leading to a less expensive physics than JCFPM.

About the third paragraph of you answer, what you mean is that initial overlap between cohesive particles, when using the JCFPM, is allowed because it probably is a small overlap, due to the model generation?

Thanks again,

Hélvio Peixoto

Revision history for this message
Best Jérôme Duriez (jduriez) said :

About lines 64-66, yes you've got it.
Except that the newly created interactions will still be of JCFpmPhys type (nothing "less expensive"). It will indeed be of a non-cohesive variant, most probably (depends on Ip2_JCFpmMat_JCFpmMat_JCFpmPhys.cohesiveTresholdIteration).

For my previous 3rd paragraph, the point is this "D = geom->penetrationDepth - phys->initD;" was surely introduced having in mind the distant interaction case: in order to allow non-touching particles to still interact, including the instance of repulsive (compressive) interaction forces.

How the model behaves with initially overlapping particles (what we're discussing right now) is just a side effect which (I think) has never been considered as detrimental.
What I meant was to give an example of model generation for which the model still behaves very classically with respect to these initially overlapping particles.

Revision history for this message
Hélvio Peixoto (hfcpeixoto) said :

Thanks for the thorough answers, Jérôme.