adevaucorbeil / karamelo

An open source parallel C++ package for the material point method (MPM)
GNU General Public License v2.0
76 stars 22 forks source link

Bouncing ball example with wall #5

Closed vryy closed 3 years ago

vryy commented 3 years ago

Hello

To test the contact, I change the direction of the initial velocity. Now it makes an angle of 5 degrees with the diagonal. I noticed that, after the two balls hitting, they stick to each other. In addition, the total energy seems to increase. I would assume that the default friction coefficient of the contact is null, nevertheless, even if it is not null is still difficult to understand why the balls are sticking. Do you have suggestions to mitigate this issue?

data.zip dump_p.zip

adevaucorbeil commented 3 years ago

Good day,

What you are observing is totally normal. The fact that the particles stick is a result of the MPM built-in contact. It is a non-slip contact that has the tendency to stick too. The only way to mitigate this issue would be to use Bardenhagen's contact algorithm (https://www.techscience.com/CMES/v2n4/24749) but this is not yet supported in Karamelo.

As far as the energy is concerned, you are using 100% FLIP for the velocity update. FLIP is known to be unstable. So that's why I am not surprised to see an increase in the energy profile.