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.
Document: A brief
written document (in txt or PDF) that details what you did, your
findings, and who you discussed the assignment with, etc.
Include any comparisons or analysis/results that demonstrate
the functioning behavior of your implementation.
Citation:
Include the names of people that you discussed the
assignment details with.
Include citations of external resources (books, webpages,
etc.) that you used in your R&D.
Code: Documented
software implementation derived from the starter code.
Results: Your
creative simulation artifacts, videos, images, etc.
We may run your software to evaluate your implementation,
and/or ask you to provide a demo, howeverplease
submit video that demonstrates the
requested features.
Submit as a group: If
you are working with a partner, be sure to form a two-person
group, and submit your zip file as a group.
Late submission: Keep in mind this
is a short assignment which should take less time than other
assignments. Please submit on time so that we can continue to
the next assignment.
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.)
References:
C. Jiang, C. Schroeder, A. Selle, J. Teran, A. Stomakhin,An Affine Particle-In-Cell Method, ACM
Transactions on Graphics (SIGGRAPH 2015), 34(4), pp. 51:1-51:10,
2015.[PDF]
Y. Zhu and R. Bridson, Animating sand as a fluid, ACM SIGGRAPH
2005. [PDF]
[MOV]