Fluid particles dripping through wall

I have a case where I apply a strong acceleration on the liquid inside a container during the initial simulation time. As it seems fluid particles now penetrate the walls and beyond. I've increased the wall thickness considerably and minimized dp as much as accepted by the tool. This helped reduce the lost particles but during the inital second there is still too much fluid lost as if the wall was a sieve.

Unfortunately when reducing dp further I run into an issue where DSPHysics aborts.

Here is the acceleration profile applied:

Here the starting point (zoom to the liquid part):

More zoom to the wall to see the resolution:

And a snapshot after a few miliseconds:

What can I do to prevent this from happening?


  • I've modified the acceleration profile by introducing an initial ramp up of an acceleration from 9.81g to the targeted initial acceleration by maintaining the global orientation of the vector:

    The reason was that I observed that under the acceleration the particles started to be sort of compressed on the interface to the boundary and I suspected that this might create a drive to penetrate the walls for the bottom particles. My hope was that by soothing the acting acceleration this drive could be reduced. Indeed it looks a bit like this helped but without really removing this issue entirely. Now I observe that even prior to any particle penetration I have a compression of the particles reducing the inter-particle space. This compression leads to a slight expansion again before the liquid starts to compress again and particles commence to penetrate again the bottom boundary. I've extracted a view screenshots.

    Initial state at t=0s:

    t=0.2s: The liquid surface is slightly but noticeably lower than at t=0s.

    t=0.375s: A miniscule expansion has occured with respect to the liquid height at t=0,2s (may be difficult to see as it is really small). Note the effect of the liquid surface at the boundary.

    t=0.55s: A further compression occurs. The particles start to penetrate the boundary.

    t=1.75s. More particles are lost, with the acceleration now being at its maximum. Overall particles counted as "out" by DualSPHysics amounts to almost 10% of all particles not counting the particles that are still within the simulation domaine but outside the boundaries.

  • Hi,

    What time integration scheme do you use ? (Verlet or simplectic)

    I've had kind of the same problem using verlet. Solved using simplectic .

    Good day

  • I've checked and it looks like I am using Symplectic:

    I will try with Verlet to see if that may help.

    Meanwhile for the readers of this thread I show what I've obtained using lattice option 2 for the boundaries and 1 for the fluid using the same acceleration profile as in the previous post. It got even worse...

    Zoom to the container bottom at t=0s

    3 frames later (one frame: 0.025s):

    We can see that the bottom fluid particles densify that is the inter-particle space is reduced. I still suspect that the algorithm moves fluid particles through the wall in order to smooth density and pressure about the boundary-fluid interface. At least fluid particles start to move through the boundary a few frames later:

    The result is worse as now the entire liquid is lost and the container empty at frame 41:

    In the previous simulations without specifying the lattice (I presume from the particle distribution that then default is set 1 for both boundary and fluid), at least some stabilization occured with the majority of the liquid remaining inside the container. Here I lose 100% of fluid particles.

  • Have you tried to set the speedsystem to "false" and setting your own maximum estimated velocity?

  • I've now tried Verlet time stepping but this did not help at all.

    What siginificantly improved was the move from Shifting option 0 (none) to 3 (full). Instead of loosing more than 10% of all fluid particles I now loose only 1,4%. The fluid movement has considerably changed too and I have now a completely different behavior.

    I will now revert back to Symplectic to see if I could further improve (however I doubt that the time stepping has a say in that particular case).

  • One possible option is that your speed of sound is not correct, therefore the time step will not be the one to follow the speeds in your system.

    Please define the speed of sound or the speed of system if you know that.

    For example if you know that max speed is 0.15 m/s, you should use:

    <speedsystem value="0.15" auto="false" comment="Maximum system speed (by default the dam-break propagation is used)" />


  • I've tried that. I checked some of the csv files and searched the maximum particle velocoties. I've used the maximum value I identified this way (19.9 m/s) as you suggested. As of now the simulation looks exactly similar. The same number of particles are counted as out as in the previous simulation.

    Do you have any other suggestion?

  • Share the XML file with us and we will check it...

    Send the files to dualsphyscis@gmail.com or to me (alexbexe@gmail.com)



  • With Alex' help (!muchas gracias!) I was finally able to solve the issue. It is important to use the correct b coefficient and/or the correct speed of sound. Now I've managed to eliminate the issue by increasing b from about 1.2e5 to 120e6. However, this comes at a significant increase in calculation time. This for other users encountering a similar issue.

Sign In or Register to comment.