A common question is why simulations with a high FPS rate require less substeps? The answer is precision. The length of a single substep is calculated as
lengthsubstep = 1 / ( FPS rate * substeps )
In RealFlow, time is not a continuous stream, but subdivided into chunks. Between these chunks, a particle's or object's velocity is considered constant. This gives a very good approximation and the more substeps (= time chunks), the better the representation of the real behaviour.
An example:
Now, let's use a FPS rate of 400 and see what happens:
lengthsubstep = 1 / ( 400 * 300 )
lengthsubstep = 0.0000083 s
0.0000083 s vs. 0.0001333 s
In order to get the same precision as before, substeps can be decreased:
400 fps / 25 fps = 16
.300 fps / 16 fps = 19