Storing particle overlap on first iteration to prevent explosions.

Asked by Janek Kozicki on 2017-04-14

HI,

I am reposting my question here, so that everyone can benefit from the answers.

To calculate concrete the sample made of spheres (with cohesion) has some of these spheres overlapping. Since it is difficult to generate a sample where none of the spheres overlap. And with some overlapping the spheres want to "explode" until there is no overlap. Sometimes cohesion prevents this, but this means starting calculations with non-zero forces between spheres.

To mitigate this problem, the initial overlap between spheres is stored [*] (on first iteration) and is treated as "zero" penetration depth during tension & compression.

[*] "is stored" means that this change in code is implemented in my local copy of yade.

My question is:
1. does yade already have such feature, so that I don't need to port it back to latest version of yade?

So far Feng Chen has answered my question: http://<email address hidden>/msg12350.html

> Regarding your question, as far as I know packmol (
> http://www.ime.unicamp.br/~martinez/packmol/home.shtml) can handle initial
> packing of spheres (or even complicated sphere clusters) by maintaining the
> minimum distance between the sphere centers using a BOX-QUACAN
> optimization, thus if you make the minimum distance greater than
> max(r_i)*2, you should have zero overlap between the spheres.

And PACKMOL is an interesting solution to the problem. Actually a better one.

But the question still remains: shall I implement/port this feature to yade from my local yade copy?

best regards
Janek

Question information

Language:
English Edit question
Status:
Open
For:
Yade Edit question
Assignee:
Janek Kozicki Edit question
Last query:
2017-04-16
Last reply:
2017-04-14
Whiteboard:
preparing

This question was reopened

Chareyre (bruno-chareyre-9) said : #1

Hi,
This feature is somehow available through scripting (see #2 in
https://answers.launchpad.net/yade/+question/266828).
That would be good/simpler to have it also available conditionaly based on
bool Law2::zeroInitForce.
I guess it should be automatically turned off after iteration 1 though,
else people will forget to revert it and the simulation will loose
consistency.
Bruno

On 14 April 2017 at 13:23, Janek Kozicki <
<email address hidden>> wrote:

> New question #619109 on Yade:
> https://answers.launchpad.net/yade/+question/619109
>
> HI,
>
> I am reposting my question here, so that everyone can benefit from the
> answers.
>
> To calculate concrete the sample made of spheres (with cohesion) has some
> of these spheres overlapping. Since it is difficult to generate a sample
> where none of the spheres overlap. And with some overlapping the spheres
> want to "explode" until there is no overlap. Sometimes cohesion prevents
> this, but this means starting calculations with non-zero forces between
> spheres.
>
> To mitigate this problem, the initial overlap between spheres is stored
> [*] (on first iteration) and is treated as "zero" penetration depth during
> tension & compression.
>
> [*] "is stored" means that this change in code is implemented in my local
> copy of yade.
>
> My question is:
> 1. does yade already have such feature, so that I don't need to port it
> back to latest version of yade?
>
> So far Feng Chen has answered my question: http://www.mail-archive.com/
> <email address hidden>/msg12350.html
>
> > Regarding your question, as far as I know packmol (
> > http://www.ime.unicamp.br/~martinez/packmol/home.shtml) can handle
> initial
> > packing of spheres (or even complicated sphere clusters) by maintaining
> the
> > minimum distance between the sphere centers using a BOX-QUACAN
> > optimization, thus if you make the minimum distance greater than
> > max(r_i)*2, you should have zero overlap between the spheres.
>
> And PACKMOL is an interesting solution to the problem. Actually a better
> one.
>
> But the question still remains: shall I implement/port this feature to
> yade from my local yade copy?
>
> best
> Janek
>
> --
> You received this question notification because your team yade-users 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
>
>

Janek Kozicki (cosurgi) said : #2

Thanks, this is great place for me to start. I will check this out, and I will let you know about my progress.

mohsen (agha-mohsena) said : #3

Hi
I could not find this command or attribute in yade documentation;
"zeroInitForce"

Any idea?

Thanks

Janek Kozicki (cosurgi) said : #4

Hi,

Bruno's idea is that I implement (port it from my local yade version) to official yade version using this name "bool Law2::zeroInitForce.". So it's not there yet. But it will be there in few weeks. Please just wait a little, and I will let you know in this thread when I do this, along with some example scripts :)

best regards
Janek

Janek Kozicki (cosurgi) said : #5

I change this back to "open", will mark as "solved" once implementation is finished.

Can you help with this problem?

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

To post a message you must log in.