CS 348C Assignment #3: APIC Fluid Simulation

Professor: Doug James
Due date: Friday, Nov 17, 2017 (midnight) 

In this third assignment, you will implement the improved Affine Particle In Cell (APIC) scheme described in the 2015 SIGGRAPH paper [Jiang et al. 2015]. To make this task easier, you will extend starter code for the 2D PIC/FLIP simulation method (based on Bridson's 2D PIC/FLIP water simulation code -- available on his webpage). The starter code is available here, and supports interactive visualization of simulation results. The instructions for the starter code are available here. When you finish your implementation, you should be able to generate animations of 2D simulations using any of the PIC/FLIP/APIC methods, and perform a visual comparison of your results.

To make your implementation, you should follow the APIC paper and pay particular attention to equations 13 to 14. We recommend you first implement equation 14, which specifies how to update from the grid to the particles (performed in Particles::update_from_grid, and you can use Particles::computeC as a helper function). After implementing equation 14, you can implement equation 13, which specifies how to transfer the data from the particles to the grid (performed in Particles::transfer_to_grid, and you can use Particles::affineFix as a helper function).

Make sure you understand the meaning of each index in the paper and the locations of the values in each 2D scalar field on the MAC grid. In particular, when a is equal to x, the values of C should exist on the u field grid locations, and when a is equal to y, the values of C should exist on the v field grid locations.

Good luck!

Hand-in using Canvas:  
Start early. Ask questions. Have fun!!! 

On collaboration and academic integrity: You are allowed to collaborate on the assignments to the extent of formulating ideas as a group, and derivation of physical equations. However, you must conduct your programming and write up completely on your own (or with your partner), and understand what you are writing. Please also list the names of everyone that you discussed the assignment details with.  (You are expected to maintain the utmost level of academic integrity in the course.)