What does the command-line option '-stable' actually do under the hood?

The help page of DualSPHysics4.2 states that the option `-stable` guarantees that "The result is always the same but the execution is slower". You can pull up information by launching `./DualSPHysics4.2_linux64 -help`.

The manual says a little more: "Ensures the same results when a simulation is repeated since operations are always carried out in the same order".

Would someone please explain in some detail the logic that the `-stable` option implements? Or, conversely, in which way the expectation of a repeatable order of operations is relaxed in DualSPHysics?

Thanks in advance for shedding light on this feature.

I am interested in understanding better the guarantee that results are always the same. This can be useful relevant when making sensitivity analyses with respect to numerical and physical parameters and so forth: one can then attribute the observed changes to the correct origins.


  • Some parallel algorithms used for example with periodic boundary conditions can vary the order of particles in memory. If the order of particles changes, the result of the force computation between particles is slightly different, although it is correct.
    The use of "-stable" avoids these differences so that all the executions of the same case obtain the same result.
Sign In or Register to comment.