Time step

Asked by lingran

Hi, all,

About 15 years ago, a girl did an impact experiment of a boulder impacting onto a soil layer, now I want to reproduce her experiment by using yade. The problem is that her soil layer is quite big, to respect the reality, the numerical sample will have millions of particles, and the time step will be as small as 1e-8, thus the sample might never be prepared by gravity deposition.

So my question is: how could we increase the time step while not change the physics? I did some two particles impact tests, it turns out playing with radius and density (keep mass constant) could increase time step, but the contact forces will also be changed, not good. So, any other ideas?

Second question: Does somebody use viscous damping of Law2_ScGeom_MindlinPhys_Mindlin()? This contact law is said to be mature, but is it proper to be used in dealing with dynamic problems?

Thanks.
Regards.
Lingran

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
lingran
Solved:
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

Hi Lingran,

this is a famous problem of explicit DEM methods :-) in general it is not
possible to decrease time step "while not change the physics". The critical
time step depends on particle size, mass, and stiffness, so changing these
parameters can change the critical time step. If it "change the physics"
always depends on what you want to simulate, what results you expect etc.
etc. For example for quasi-static simulations, the particle mass should not
influence very much the results, so you can increase particle mass to
increase time step and the quasi-static physics is almost not influenced by
the mass change.

If the problem is only for sample preparation, you can try
pack.randomDensePack with spheresInCell parameter [1]. In this case, a
periodic sample is prepared and copied in the required space. So it is
relatively quick method, but resulting in different packing than gravity
deposition.

cheers
Jan

[1] https://yade-dem.org/doc/yade.pack.html#yade.pack.randomDensePack

2013/11/5 lingran <email address hidden>

> New question #238696 on Yade:
> https://answers.launchpad.net/yade/+question/238696
>
> Hi, all,
>
> About 15 years ago, a girl did an impact experiment of a boulder impacting
> onto a soil layer, now I want to reproduce her experiment by using yade.
> The problem is that her soil layer is quite big, to respect the reality,
> the numerical sample will have millions of particles, and the time step
> will be as small as 1e-8, thus the sample might never be prepared by
> gravity deposition.
>
> So my question is: how could we increase the time step while not change
> the physics? I did some two particles impact tests, it turns out playing
> with radius and density (keep mass constant) could increase time step, but
> the contact forces will also be changed, not good. So, any other ideas?
>
> Second question: Does somebody use viscous damping of
> Law2_ScGeom_MindlinPhys_Mindlin()? This contact law is said to be mature,
> but is it proper to be used in dealing with dynamic problems?
>
> Thanks.
> Regards.
> Lingran
>
>
> --
> 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
Chiara Modenese (chiara-modenese) said :
#2

Hi Lingran,

I have used contact damping with the HM law. Whether it is approprate in a
dynamic case like yours it is up to you to decide as it all depends on the
physics you are trying to reproduce. You may be able to calibrate the shear
and normal damping coefficients against real data, for instance. Finally,
keep in mind that the critical time step for particles with and without
damping is not the same as it should be reduced when damping is present.

Cheers,
Chiara

On 5 November 2013 14:51, lingran <email address hidden>wrote:

> New question #238696 on Yade:
> https://answers.launchpad.net/yade/+question/238696
>
> Hi, all,
>
> About 15 years ago, a girl did an impact experiment of a boulder impacting
> onto a soil layer, now I want to reproduce her experiment by using yade.
> The problem is that her soil layer is quite big, to respect the reality,
> the numerical sample will have millions of particles, and the time step
> will be as small as 1e-8, thus the sample might never be prepared by
> gravity deposition.
>
> So my question is: how could we increase the time step while not change
> the physics? I did some two particles impact tests, it turns out playing
> with radius and density (keep mass constant) could increase time step, but
> the contact forces will also be changed, not good. So, any other ideas?
>
> Second question: Does somebody use viscous damping of
> Law2_ScGeom_MindlinPhys_Mindlin()? This contact law is said to be mature,
> but is it proper to be used in dealing with dynamic problems?
>
> Thanks.
> Regards.
> Lingran
>
>
> --
> 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
lingran (zhanglingran130) said :
#3

Thanks Jan and Chiara, both of you have solved my problem.

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

Hi Chiara,

I have to confess I was not aware of any link between damping and critical time step, would it be possible for you to elaborate a little ? Thanks !

Jerome

Revision history for this message
Alexander Eulitz [Eugen] (kubeu) said :
#5

Hi Jduriez,
I think this is quite easy to answer. If you are using the PWaveTimeStepper, the critical time step is calculated according to the proagation of an elastic (sonic) wave through your packing. Such a wave will propagate slowlier when (contact) damping is introduced because the contact force is reduced by a damping force at each time step, this results in less acceleration -> wave gets slower.
But I'm also interest if there is an analytic solution for determining the critical time step.

Lingran, maybe this discussion if of interest, too:
https://answers.launchpad.net/yade/+question/232351
and this one:
https://answers.launchpad.net/yade/+question/235934

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

Thanks for your answer. But
- your remark seems to contradictory with Chiara's one. If it is about slower waves, the time step could be increased with damping, whereas it was the contrary for Chiara.
- what if I'm using GlobalStifnessTimeStepper ? (whose, in my case, I understand more the ideas behind)

For analytical solutions, I have in mind this paper http://www.emeraldinsight.com/journals.htm?articleid=878199&show=abstract

Revision history for this message
Alexander Eulitz [Eugen] (kubeu) said :
#7

Sorry Jduriez, you are right with timestep. my eyes were too weary yesterday.
So now I'm looking forward to the correct answer, too.
And thanks for the link!

Revision history for this message
lingran (zhanglingran130) said :
#8

Hi all,

I want to ask a very silly question. Long time ago, Sergei Dorofeenko asked a question about how to generate a stress free random dense packing. Bruno answered and suggested that we could use stress controller to first get a dense packing then unload it to a near-zero stress. Here is the link:
https://answers.launchpad.net/yade/+question/153042.

So my question is: can we use this method to first generate a stress free dense packing, and then delete the top boundary wall for further impact use? Because I did some tests, every time after I delete the wall, the simulation will send an error and exit rapidly.

Thanks.
Lingran

Revision history for this message
Jan Stránský (honzik) said :
#9

Hi Lingran,
as this is not related to the question title, please open a new question.
Also please put to the question the error you get from yade and if it is
possible a short script reproducing the error.
Thanks
Jan

2013/11/7 lingran <email address hidden>

> Question #238696 on Yade changed:
> https://answers.launchpad.net/yade/+question/238696
>
> lingran posted a new comment:
> Hi all,
>
> I want to ask a very silly question. Long time ago, Sergei Dorofeenko
> asked a question about how to generate a stress free random dense packing.
> Bruno answered and suggested that we could use stress controller to first
> get a dense packing then unload it to a near-zero stress. Here is the link:
> https://answers.launchpad.net/yade/+question/153042.
>
> So my question is: can we use this method to first generate a stress
> free dense packing, and then delete the top boundary wall for further
> impact use? Because I did some tests, every time after I delete the
> wall, the simulation will send an error and exit rapidly.
>
> Thanks.
> Lingran
>
> --
> 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 :
#10

Reflecting contact damping in time-step determination is relatively easy in the context of GlobalStiffness (though not implemented).
The derivation has been explained by Emanuele Catalano (page 59 in [1]). For Emanuele it was fluid viscosity instead of contact viscosity, but the equations are similar if you replace V (eq. 4.9) by a global viscosity matrix reflecting existing contacts on a given body.

For the record, Cundall's non-viscous damping [2] is not modifying the timestep (but it should not be used for impact problems).

Bruno

[1] https://yade-dem.org/publi/Catalano_Thesis.pdf
[2] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.NewtonIntegrator.damping

Revision history for this message
Alexander Eulitz [Eugen] (kubeu) said :
#11

Hi Bruno,
do you know of some papers dealing with your last remark?
"...(but it should not be used for impact problems)."
I'd like to cite that in my master thesis.
So is modelling of a bulk a impact problem, too? Or what is the definition of impact problem? At the end it all goes down to impacts. I think you're pointing out, that if you are interested in contact forces of certain impacts and not only in the overall behaviour then you need to use diffrent contact law like Hertz Mindiln, don't you?

Thanks,
Alex

-----Ursprüngliche Nachricht-----
Von: <email address hidden> [mailto:<email address hidden>] Im Auftrag von Bruno Chareyre
Gesendet: Freitag, 8. November 2013 13:21
An: Eulitz, Alexander
Betreff: Re: [Question #238696]: Time step

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

Bruno Chareyre posted a new comment:
Reflecting contact damping in time-step determination is relatively easy in the context of GlobalStiffness (though not implemented).
The derivation has been explained by Emanuele Catalano (page 59 in [1]). For Emanuele it was fluid viscosity instead of contact viscosity, but the equations are similar if you replace V (eq. 4.9) by a global viscosity matrix reflecting existing contacts on a given body.

For the record, Cundall's non-viscous damping [2] is not modifying the timestep (but it should not be used for impact problems).

Bruno

[1] https://yade-dem.org/publi/Catalano_Thesis.pdf
[2] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.NewtonIntegrator.damping

--
You received this question notification because you are a direct subscriber of the question.

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

@Alexander
Cundall's damping is based on tricking Newton's law, and so it modifies the dynamic behaviour (in a way that can't be justified from first principles).
I don't know a paper on this specifically, but it is I think obvious.

I named impact problems because it was in the original question. More generally, the solution becomes non-physical as soon as dynamic behaviour matters, as opposed to quasi-static problems (for static bulk properties it is ok, it is not an impact problem is it?).

Bruno

Revision history for this message
Raphaël Maurin (raphael-maurin) said :
#13

Hi all,

I implemented inside GlobalStiffnessTimeStepper a calculation of the time step which take into account the damping [1] based on the idea of Emanuele Catalano .
Basically it evaluates the critical time step of the whole system considering the critical time step of the system with only springs on one side (dt_e), and with only viscous damping on the other side (dt_v). It then takes the minimum of the two critical time step with a safety coefficient (dt = n*min(dt_v,dt_e). This method is equivalent to evaluate the minimal time step of the system considering that the elastic and viscous effect are decoupled, and to multiply it by a safety factor in order to take into account the coupling between the two. This is not completely rigorous but I am currently using it and I have no problem of stability.

It is for now possible to use it only with ViscElPhys ([2], linear spring-dashpot), but it can probably easily be modified for any other law with linear damping.

And to answer the other previous question, the introduction of damping can effectively reduce the critical time step of the system when considering interactions with strong importance of the damping with respect to the stiffness. In my problem, I can see it at very low restitution coefficient (e<0.1). The effect can be understood considering that the damping introduce a new characteristic time step in the problem, which is not in general bigger than the elastic one.

I hope the expanation is clear,.

Raphael

[1] https://github.com/yade/trunk/blob/master/pkg/dem/GlobalStiffnessTimeStepper.cpp
https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.GlobalStiffnessTimeStepper
viscEl option
[2] https://github.com/yade/trunk/blob/master/pkg/dem/ViscoelasticPM.hpp

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

And only now comes to mind that this is exactly what you did Raphael. Even if it is with a different contact law, I should have mention it. Shame on me!

Side note:
Concerning the paper mentioned in #6. I suggest to NOT read it as it is quite confusing.
They misunderstood Itasca's definition of critical timestep apparently. The sqrt(m/k) they attribute to Itasca is obviously not a correct way to evaluate the critical timestep (if m is particle mass and k contact stiffness). The thing is there is no reason to call it the Itasca's timestep, at all.

What they try to do in the paper is a slightly different version of what Cundall did decades ago. Eq. 16 in [1] is the top-left 6x6 block of eq. 13 in the paper. The 6x6 version is enough to define the critical timestep exactly. They have longer matrices because they try to assign mass to the contacts, which is a bit awkward IMO.

In the end, their method is less accurate and less general than the actual Cundall's scheme (that we are reproducing in Yade) although it is based on very similar ideas. They suggest to use a safety coefficient of 0.17, we can go up to 0.99999...

[1] https://www.yade-dem.org/doc/formulation.html#dem-simulations