Eulerian Fluid Solver

Implementation of a Eulerian fluid solver, which supports MacCormack advection, conjugate gradients iteration and MGPCG

    This project extended the Eulerian fluid solver in taichi’s stable fluid example which uses semi-Lagrangian advection and Chorin-style projection with Jacobi iteration. The extention includes MacCormack advection, conjugate gradients iteration with Jacobi preconditioner and multigrid preconditioner (MGPCG). The implementation of MGPCG is based on A Parallel Multigrid Poisson Solver for Fluids Simulation on Large Grids. The simulation results of different iteration methods and iteration numbers are shown in Figure 1 - 4.

    We can see that the performance of 20 times Jacobi iteration is not good, while 20 times conjugate gradients iteration and MGPCG performs well. After increasing the number of iterations to, Jacobi iteration can achieve similar performance to the other two methods.

Figure 1: Jacobi Iteration (20 times)
Figure 2: Jacobi Iteration (500 times)
Figure 3: Conjugate Gradients Iteration with Jacobi Preconditioner (20 times)
Figure 4: MGPCG (20 times)