stress-free packing

Asked by Sergei Dorofeenko

Hello.
How to generate a stress-free random dense packing with prescribed porosity and radius distribution?

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Sergei Dorofeenko
Solved:
Last query:
Last reply:
Revision history for this message
Chiara Modenese (chiara-modenese) said :
#1

Hi Sergei,

for something already implemented, I think you can have a look at randomDensePack
https://yade-dem.org/doc/yade.pack.html?highlight=randomdensepack#yade.pack.randomDensePack

I think there are many methods which have been published, both static and dynamic ones, to achieve what you require. If you decide to go for a dynamic method, I guess the limit is that you will not be able to perfectly reach a stress free condition. If you need a particular PSD, you could do everything in a py script directly, where you would generate the sample you want, load it until your goal porosity and then unload it until you reach very low stress level.

Note that some researchers use interparticle adhesion properties in order to relax the system and get some stress free condition before the actual tests start. It pretty much depends on your needs, but I hope this helps a bit.

Chiara

Revision history for this message
Chiara Modenese (chiara-modenese) said :
#2

I better clarify what I said. If, after having reached your goal porosity,
you unload your sample, then obviously you also change porosity itself. I am
not sure how much though. Maybe someone else can comment on this? Am curios
myself.

Cheers.
Chiara

On 16 April 2011 16:31, Chiara Modenese <
<email address hidden>> wrote:

> Question #153042 on Yade changed:
> https://answers.launchpad.net/yade/+question/153042
>
> Status: Open => Answered
>
> Chiara Modenese proposed the following answer:
> Hi Sergei,
>
> for something already implemented, I think you can have a look at
> randomDensePack
>
> https://yade-dem.org/doc/yade.pack.html?highlight=randomdensepack#yade.pack.randomDensePack
>
> I think there are many methods which have been published, both static
> and dynamic ones, to achieve what you require. If you decide to go for a
> dynamic method, I guess the limit is that you will not be able to
> perfectly reach a stress free condition. If you need a particular PSD,
> you could do everything in a py script directly, where you would
> generate the sample you want, load it until your goal porosity and then
> unload it until you reach very low stress level.
>
> Note that some researchers use interparticle adhesion properties in
> order to relax the system and get some stress free condition before the
> actual tests start. It pretty much depends on your needs, but I hope
> this helps a bit.
>
> Chiara
>
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>

Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#3

Two ways:
1- Use a geometric algorithm (e.g. K. Bagi papers) , but then the
stability of the obtained packing is not guaranteed and controlling
porosity is more difficult (especially if you fix PSD).
2- Use stress controller, and when you get the correct porosity, unload
it to a near-zero stress, as proposed by Chiara. This packing will be
mechanically stable.

For controlling porosity, you basically maintain a constant stress and
decrease friction progressively:
while (porosity>target):
    friction=friction*0.99
    cycle(1000)

I recommend method 2 unless you really need a 0-stress packing exactly.
But why would you need that if you can always get a a stress negligeable
vs. futur applied load with method 2?

Bruno

Revision history for this message
Sergei Dorofeenko (sergei.dorofeenko) said :
#4

Ok, seems, it is clear to me now. Thanks, guys!

Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#5

>If, after having reached your goal porosity,
>you unload your sample, then obviously you also change porosity itself.

You only recover some elastic deformation. It's small and reversible, and it doesn't really change the particles arrangement. Shear strength, for instance depends on a porosity that can be defined independently of this elastic fluctuations.

Revision history for this message
Yade Guide (yade-guide) said :
#6

Hello there! As an automated bot, I've scanned through some related threads and compiled a summary for your reference. Feel free to dive deeper into these topics by clicking on the provided links.

Title: "creating a volume with two particle systems"
Jesse wants to create volumes with densely packed particle systems of two different radii using makecloud or randomdensepack, seeking control over the number of each particle size within various shapes.
https://answers.launchpad.net/yade/+question/669956

Title: "How to generate dense packing of aggregates"
Varun faces challenges with translating spheres in simulation; Jan offers solutions. Varun seeks assistance for maintaining packing stability under gravity by considering equilibrium distance or modifying interaction law as suggested by Luc Scholtest.
https://answers.launchpad.net/yade/+question/293955

Title: "packing of spheres with different properties"
Jan Stránský resolved an issue with error messages in for loops when creating two sets of particles with different radii and materials, and then asked how to generate different stiffness for these particles. Xujin encountered issues while implementing the provided method due to Boost.Python compatibility. Jan suggested using either material ID or the actual material to fix the issue.
https://answers.launchpad.net/yade/+question/679387