particle compaction in cylinder with different sizes

Asked by Weimin Song

Dear all

          I am doing the particle compaction in a cylinder. How can I define different size with different percentage if I use randomDensePack? Or is there any other method?

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Klaus Thoeni
Solved:
Last query:
Last reply:

This question was reopened

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

Hi Weimin,

The doc of randomDensePack suggests you may only get uniform (in number) size distribution with this function. So, it seems it does not suit your needs.

You will thus need to generate your packing "manually", following the classical procedure illustrated in examples/triax-tutorial/script-session1.py:

- creation of a gas like ("cloud") initial packing with "makeCloud" function
- isotropic compression of this packing until a solid state and a desired confining pressure

You will be able to specify a desired particle size distribution calling "makeCloud" function, see its "psdSizes" and "psdCumm" attributes.

Revision history for this message
Weimin Song (wsong8) said :
#2

Hi Jérôme,

                    Thanks for your quick answer.
                    I know "makeCloud" could solve the question, however "makeCloud" can just be used in cuboid (cube), my question is about cylinder.

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

If you're sure the cylindrical size does matter, you may try to generate a cuboid sample first with the required properties, then extract a representative cylindrical part in a second step ?

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

cylindrical "shape" instead of "size", sorry...

Revision history for this message
Weimin Song (wsong8) said :
#5

Thanks Jérôme Duriez, that solved my question.

Revision history for this message
Weimin Song (wsong8) said :
#6

Hi Jérôme,

    Any command in Yade that could extract a cylindrical part from a cuboid sample? I don't find the command.

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

I do not have any built-in command in mind, but it should not be too difficult "manually", again.

See for instance:

for b in O.bodies:
    if distanceBetweenBodyCenterAndCylinderAxis > cylinderRadius
        O.bodies.erase(b)

It's up to you to define and compute "distanceBetweenBodyCenterAndCylinderAxis" ;-)

Revision history for this message
Weimin Song (wsong8) said :
#9

Thank you Jérôme ,

Since there are some big size particles, I'm not sure this method could give good result(surface). I think drilling a cylinder core may be the best way, however, I don't know how to realize.

Revision history for this message
Best Klaus Thoeni (klaus.thoeni) said :
#10

Hi,

alternatively you can use the CircularFactory [1]. You can generate a cylindrical packing by pluviation. Have a look at the hourglass example [2].

HTH
Klaus

[1] https://yade-dem.org/doc/yade.wrapper.html?highlight=factory#yade.wrapper.CircularFactory
[2] https://github.com/yade/trunk/blob/master/examples/hourglass/hourglass.py

Revision history for this message
Weimin Song (wsong8) said :
#11

Thanks Klaus Thoeni, that solved my question.

Revision history for this message
Weimin Song (wsong8) said :
#12

Thanks Jérôme also.