Simulation of a breakable clump of spheres mimicing the rock impct against a soil buffering

Asked by jasperb on 2019-12-21

Hi there,
New here. The community is so good.
I am trying to mimic a scenario where a single particle consisting of several spheres (breakable) impacts against a soil buffering which is composed of polydisperse spheres under the gravity deposit. I want to check the velocity and energy after the impact under the effect of particle breakage.
I searched several models in advance and found that JCFPM seems a promising one since it is good for simulating rock.But I only found the functions without detailed explanation. That's why I am here, asking for veterans' ideas.
The fundamental question is that , does this model meet my needs? Like, supporting bondage break, and enabling assigning random bond strength to each bond to simulate the discontinuity in a rock? If so ,any reference or examples I can refer to ? If not, any other good idea?
Thanks a lot!
Japser B

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
2020-01-17
Last reply:
2020-01-17
Robert Caulk (rcaulk) said : #1

>New here.

Welcome!

>I only found the functions without detailed explanation.

In the future, please reference these sorts of comments with a link. It helps people to understand what resources you have or have not found, and allows us to help you better.

>supporting bondage break,

Yes.

>enabling assigning random bond strength to each bond to simulate the discontinuity in a rock?

Yes. But it is not for simulating discontinuity, it is for simulating rock heterogeneity. [1][2]

>If so ,any reference or examples I can refer to ?

Yes. [3]

Cheers,

Robert

[1]https://yade-dem.org/doc/acousticemissions.html#consideration-of-rock-heterogeneity
[2]https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Ip2_JCFpmMat_JCFpmMat_JCFpmPhys.xSectionWeibullShapeParameter
[3]https://gitlab.com/yade-dev/trunk/tree/master/examples/jointedCohesiveFrictionalPM

jasperb (jasperb) said : #2

Hey
It is me again.

I have encountered 2 questions on my way establishing the model.
First I want to create a giant sphere consisting of several thousand of spheres. And the giant sphere is breakble, namely the bond between each member sphere is breakable. But I do knot know how to make the thousand particles generated by makeCloud compressed as sphere-like and assign different bonds to each contact.
The second is that, after the breakage, one giant sphere splits apart into several bonded bodies. Can I track these bodies's velocity? Will they become a joint body that I can call automatically?

Cheers
Jasper

Jan Stránský (honzik) said : #3

Hello,

> But I do knot know how to make the thousand particles generated by makeCloud compressed as sphere-like

compress it as cuboid and then "crop" it to be sphere

> Can I track these bodies's velocity?

yes, once you indentify individual "several bonded bodies"

> Will they become a joint body that I can call automatically?

please be more specific on what "call automatically" means.
But I guess not, "several bonded bodies" will not instantly become one body.
But of course you can prepare a code and call it as "several bonded bodies" was one body..

cheers
Jan

jasperb (jasperb) said : #4

Hey I am close to the answer!

I have generated a sphere-like clump composed of 1,000 spheres and assigned bonds to them using JCFpm.
1.But the issue is that it seems that I cannot control the overall breakable "clump" ? I mean I could not assign a desired initial velocity simply to the whole clump. And a workaround may be that I assign the initial velocity for each of the member spheres? Does that make sense?
2. As a breakable clump, there already exists thousands of interactions. But it seems that I could not check the interaction information by O.interactions[#particleID1,#particleID2] (the traditional way). YADE will say that no such interactions when I check O.interactions[0,1].phys……. And it works when I use the loop. For i in O.interactions: …… Is there any way that I can just check the desired contact pair?
3. I want to make the breakable clump impact with a layer of spheres. And I want to record the time when the impact takes place by the function as O.interactions.countReal()>0. But there are already thousands of interactions inside the breakable clump. Is there any way I could ignore the inside contacts temporarily so that I could capture the impact moment?

Thanks!
Jasper

Jan Stránský (honzik) said : #5

Hi,

1.
since it is a composition of individual bodies, you cannot "control the overall breakable "clump"".
Assign velocity to each member is a standard way, not workaround

2.
> I could not check the interaction information by O.interactions[#particleID1,#particleID2]
> YADE will say that no such interactions

you cannot check that interaction, because (as Yade informs you) there is no such interaction.

> Is there any way that I can just check the desired contact pair?

the "traditional" way, just treat the case of non-existent interaction:
try:
   i = O.interactions[i1,i2]
except IndexError:
   pass

3.
> there are already thousands of interactions
> Is there any way I could ignore the inside contacts temporarily so that I could capture the impact moment?

"remember" the already existing interactions and do not consider them in the desired computation

cheers
Jan

Jérôme Duriez (jduriez) said : #6

One comment (not yet formulated it seems) to avoid any confusion for possible future readers: clumps in YADE usually refer to rigid (not breakable) aggregate of bodies [*], they serve as bodies themselves and have their own velocities.
Here the discussion is about "clump" with "." = breakable aggregate, instead

[*] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Clump

Can you help with this problem?

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

To post a message you must log in.