← Back to team overview

yade-users team mailing list archive

Re: [Question #292846]: Particle packing - How to avoid overlap

 

Question #292846 on Yade changed:
https://answers.launchpad.net/yade/+question/292846

    Status: Open => Answered

Jan Stránský proposed the following answer:
Hi Varun,


> VG is still having a problem:
> Thinking about this problem more, this might not actually be a bug. As you
> outlined, the difference between the previous version and "fixed" version
> is:
> - Previous version: Pack all the smaller spheres within the predicate
> (bigger sphere), such that the centers of smaller spheres are within the
> boundary of predicate.
> - Fixed version: Only the smaller spheres which are entirely contained
> within the predicate are considered.
>
> What the fixed version does can also possibly be attained by
> pack.inSphere((s[0][0],s[0][1],s[0][2]),(s[1]-particle_radius)).
> Correct me if I am wrong.


The description of previous and fixed versions is correct

in pack.inSphere, it was a real bug. Of course, you can play with settings
like using s[1] or s[1]-particle_radius, but this is different point.


>
> That still doesn't solve the physical problem I am trying to set up. I
> should give a better description of the problem I am trying to solve, if
> there is a better set up possible for the problem:
>
> -- I have a granular sample with given input particle size distribution.
> Under mechanical loading, these particles will break and I want to get
> the resulting particle size distribution.
>
> -- I am representing the input particle size distribution with spherical
> particles of diameters D1, D2, D3 etc. All of such big particles are
> composed of smaller particles of diameter 'd', since d is the smallest
> particle size of interest.
>
> -- Initially, within each big spherical particle, all the smaller
> particles should be densely packed and connected with cohesive bonds. As
> the loading is applied, the initially defined cohesive bonds within each
> big sphere will break progressively leading to smaller fragments, giving
> a new particle size distribution.
>

thanks for clarifying, but your description was OK before :-) how you want
to create the initial packing is the matter of your preferences.
randomDensePack within a big agregate is a good choice. For the big
aggregates, you can use:
- makeCloud like now
- randomDensePack to get denser packing of bigger aggrgates
- use something like randomDensePack on already "meshed" aggregates, see
Klaus's answer #3 in [1]



>
>
> The major problems I am facing in the current script are:
>
> -- Smaller particles from two different predicates (big spheres) tend to
> overlap.
>

this should not happen with newer version


>
> -- I am noticing that sometimes cohesive bond gets formed between two
> smaller particles of different predicates. I would like to avoid this,
> since I only want non-cohesive contact between the two different big
> spheres.
>
> -- Initially, within a single big sphere itself, sometimes there are
> particles which are shown not to have any cohesive interaction, leaving
> that small single particle free to fly.
>

this is material model dependent. I am not very familiar with CohFrictMat,
so somebody else have to help.

Probably open a new question on this topic, since it is different from the
original problem.

cheers
Jan

[1] https://answers.launchpad.net/yade/+question/292672

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.