Chrono GPU DEM Theory

128 views
Skip to first unread message

David Reger

unread,
Jun 10, 2022, 4:47:51 PM6/10/22
to ProjectChrono
Hello,

I have been reading through some of the papers about granular flow in Chrono and have a few questions about the implementation.

Just to clarify, I will mostly be referencing these two papers, which I will refer to by as the 2015 and 2021 papers

2015: Chrono: An open source multi-physics dynamics engine
2021: Chrono::GPU: An open source simulation package for granular dynamics using the discrete element method.

Firstly, I have a question about the equations for the normal and tangential forces. In the 2015 paper, there is an mbar term in the damping portion of the normal and tangential forces equations (equation 2). In the 2021 paper, this mbar is not seen (equations 3 and 4). Which of these papers is correct and why?

Secondly, I have a question regarding the friction factor. In both papers, for the calculation of u_t and to enforce the Coulomb friction law, mu_s is used. Is mu_s the static or sliding friction coefficient? I have noticed that in the GPU module, there is only the option to set the static coefficient or rolling coefficient, but if particles are moving past each other, this should be the sliding coefficient, right? (I noticed in table 2 of the 2021 paper, sliding coefficient is used).

Lastly, I’m a bit confused as to whether the GPU module uses Hookean or Hertzian contact by default.

Sorry for all the questions, just want to make sure I have a good understanding of my Chrono simulations.

Thanks! 
David

Ruochun Zhang

unread,
Jun 10, 2022, 8:50:41 PM6/10/22
to ProjectChrono
Hi David,

For your first question: I guess the short answer is that the 2015 paper prevails. At the implementation level, both Chrono and Chrono::GPU have the effective mass \bar{m} in the damping term, therefore in both places the input \gamma is the damping coefficient only. In the 2021 paper, it's mainly because Chrono::GPU deals with monodispersity only, therefore \bar{m} is constant, so we absorbed it into \gamma which is also a constant. But I guess this writing may have created confusion.

And the GPU module uses Hertzian contact.

About the static/sliding coefficient, right now Chrono::GPU assumes they are numerically the same. So via SetStaticFrictionCoeff methods you set both. So this number is used to both determine the clamping condition and model the frictional force of persistent sliding contacts (where you might argue they should be separately modelled by static and sliding coefficients). I think the name static friction was originally chosen, so that when (in the future) kinetic friction coefficient is added, the API naming is more cohesive.

Again the new generation of Chrono DEM solver I mentioned before would make the force model completely transparent to and modifiable by the user. It still needs some time to be out though, perhaps not before the end of summer.

Thank you,
Ruochun

David Reger

unread,
Jun 15, 2022, 4:40:34 PM6/15/22
to ProjectChrono
Great, thanks for the helpful explanation!

Thanks,
David

Reply all
Reply to author
Forward
0 new messages