yjchoi1 / taichi_mpm

simulating sand cube collision using taichi mpm.
5 stars 3 forks source link

How to prevent the penetration of material_sand into material_stationary #2

Open Mathias0 opened 11 months ago

Mathias0 commented 11 months ago

Dear developper, Thank you very much for you codes! I saw the paper "Drucker-Prager Elastoplasticity for Sand Animation" and I want to reproduce the animation shown in Fig.1 : Sand falls through the narrow neck of an hourglass, accumulating at the bottom.

Using the custom particle data interface, I can put a funnel-like obstale in the simulation zoom. I set its material as material_stationary. I also filled the funnel with sand (material_sand).

After I run the simulation, the sands firstly flow out from the nozzle, but some sands also gradually penetrate the lateral of the funnel. As a result, after some time, most sands penetrate the funnel and flow down from somewhere other than the nozzle. image image image image

In these figures, blue particles are sand, red particles are material_stationary. I also tried increasing the particle density of the funnel but this phenomenon still exists. I want to know whether it is a bug ? how to prevent the penetration?

I attach the csv files of funnel and initial sand here: funnel.csv sand.csv

Thank you in advance!

yjchoi1 commented 11 months ago

Thanks for your interest.

I think the problem is related to the contact algorithm between different materials in the current version of the Taichi MPM engine used in this repo. To accomplish a more reasonable result as you described, the Taichi MPM engine should be improved.