mantaflow
mantaflow copied to clipboard
Incorrect FLIP
A pseudo code of FLIP is given in section 4.2 in
Zhu05, Animating Sand as a Fluid
Consider manta's flip01_simple.py.
flipVelocityUpdate() calculates FLIP correctly and associates the weighted FLIP/PIC velocity with each particle.
However, in pp.advectInGrid(), the Euler step is done with the interpolated new velocity in the grid without the FLIP step while the algorithm suggests to use the weighted velocity in the particle.
The calculated FLIP velocity is used only in mapPartsToMAC().
I assume it was easier to perform the Runge-Kutta this way instead of delta velocity.
Admittedly, this bug works better than the original algorithm and may be considered a feature :) However, consider at least adding a comment about it to the code.