Assignment 1: Exterior Calculus
The written portion of assignment 1 covers some of the most fundamental tools from exterior calculus, which we’ll be using extensively in our class and in future assignments. Initially this assignment may look a bit intimidating, but the homework is not as long as it might seem: all the text in the big gray blocks contains supplementary, formal definitions that you do not need to know in order to complete the assignments.
Finally, don’t be shy about asking us questions here in the comments, via email, or during office hours. We want to help you succeed on this assignment, so that you can enjoy all the adventures yet to come…
For the coding portion of your first assignment, you will implement the discrete exterior calculus (DEC) operators \(\star_0, \star_1, \star_2, d_0\) and \(d_1\). Once implemented, you will be able to apply these operators to a scalar function (as depicted above) by pressing the “\(\star\)” and “\(d\)” button in the viewer. The diagram shown above will be updated to indicate what kind of differential k-form is currently displayed. These basic operations will be the starting point for many of the algorithms we will implement throughout the rest of the class; the visualization (and implementation!) should help you build further intuition about what these operators mean and how they work
Getting Started
- For this assignment, you need to implement the following routines:
- in core/geometry.[js/cpp]
- cotan
- barycentricDualArea
- in core/discrete-exterior-calculus.[js/cpp]
- buildHodgeStar0Form
- buildHodgeStar1Form
- buildHodgeStar2Form
- buildExteriorDerivative0Form
- buildExteriorDerivative1Form
- in core/geometry.[js/cpp]