Lecture: 3:405:10pm TR 
3.0 Credits, Spring
2011 
Instructor: Dr. Orion
Lawlor 

Course Website: Homeworks, Lecture
Notes, Code 
ADA Compliance: Will work with Office of Disability Services (4745655) to provide reasonable accommodation to students with disabilities. 
Software to simulate physical phenomena for use in interactive visualization, such as particle systems, NavierStokes fluid dynamics, and finite element solid mechanics. Includes Lagrangian and Eulerian meshes, stability, and discretization order. For interactive graphics use, high performance qualitatively correct simulations are more useful than highprecision solutions.
By the end of the course, you will be able to build and understand simple simulators for a variety of physical phenomena, including moving fluids and solids. Along the way, you will learn how to use both moving Lagrangian and nonmoving Eulerian meshes, how to discretize partial differential equations in space and time, how to keep your simulations from "blowing up" (computational stability) and how to apply that knowledge in a variety of domains. Basic graphics programming in C++ and GLSL, basic Newtonian physics, and good familiarity with calculus are all required.
Academic Help: Google, Rasmuson Library, Academic Advising Center (509 Gruening, 4746396), Math Lab (Chapman Room 305), English Writing Center (801 Gruening Bldg, 4745314).
You'll get better grades by attending class, diligently doing the homework, and understanding the material than by cramming before the exam. Your overall grade comes from:
HW: Homeworks and machine problems, to be distributed through the semester.
PROJ: two substantial graphics projects, together with a short presentation of your results. Example projects: read a paper and implement a similar technique, implement a known physics simulation, apply an existing simulator or method to a new domain, or improve the performance of a slow simulator.
MT: Midterm Exam.
FINAL: Final Exam (comprehensive).
The final score is then calculated as:
TOTAL = 30% HW + 20% PROJ + 25% MT + 25% FINAL
This percentage score is transformed into a plusminus letter grade via these cutoffs: A >= 93%; A 90%; B+ 87%; B 83%; B 80%; C+ 77%; C 70%; D+ 67%; D 63%; D 60%; F.
The grades “C”, “F+”, and “F” will not be given. “A+” is reserved for truly extraordinary work. At my discretion, I may round your grade up if it is very close to a grading boundary. Students taking the stacked graduate course will have extra exam and homework questions, and be expected to complete substantially more complex projects.
Individual assignments and tests may (rarely) be curved. Homeworks are normally due at midnight on the day they are due. Late homeworks will receive no credit. At my discretion, I may allow late assignments without penalty when due to circumstances beyond your control. Everything you turn in must be your own workviolations of the UAF Honor code will result in a minimum penalty equal to THAT ENTIRE SECTION OF YOUR GRADE (e.g., one plagiarized homework question will negate an otherwise perfect grade on all homeworks). However, even substantial reuse of other people's work is fine (and not plagiarism) iff it is clearly cited; you'll be graded on what you've added to others' work. Group projects (NOT homeworks) are acceptable if you clearly label who did what work; but I do expect a twoperson group project to represent twice as much work as a oneperson project. Department policy does not allow tests to be taken early; but in extraordinary circumstances may be taken late.
Last day to drop: Friday, February 4. Project 1 presentations: Tuesday, March 8. Midterm exam: Thursday, March 10. Spring break: March 1220. Last day to withdraw: March 25. Project 2 presentations and last day of class: Thursday, May 5. Final exam: 1pm on Tuesday, May 10.
Before Spring Break:
Particles (2 weeks)
Basic OpenGL. Highperformance rendering, framebuffer and vertex buffer objects, programmable shading via GLSL, point sprites [HW1]
From Newton's Laws to computer code: discretizing partial differential equations, time integration, discretization error, stability
Forces: gravity, friction, user interface [HW2]
Boundary conditions: bounding particles with planes, spheres, cylinders
2D Grids (4 weeks)
OpenGL 2D texturing review
Turk/Turing ReactionDiffusion Equations
Continuous to discrete transformation [HW4]
Courant stability limit, speed of sound
Boundary condition images / geometry [HW5]
Computing on a perspective grid
Project 1 Presentations: Tuesday, March 8
Midterm exam: Thursday, March 10
After Spring Break:
3D Grids (3 weeks)
OpenGL 3D texturing review
3D fluid simulation: NavierStokes, Stam's Stable Fluids [HW6]
3D light transport simulation
Speeding up slow codes: smaller storage types, optimizing GPU arithmetic, multigrid [HW7]
FEM & unstructured geometry (4 weeks)
OpenGL vertex & element buffer objects
Stress/strain, elastic & plastic behavior
Element orders & shape functions
2D, plate, and volume elements [HW8]
Unstructured boundary conditions
Failure & fracture simulations [HW9]
Project 2 Presentations: Thursday, May 5
Final exam