Assignment 5

Assignment 5 is now available! There is no standalone document for this assignment, just a code skeleton in the class repository and section 8.1 of the class notes. You do not need to submit the exercises in the text, only the programming component. This assignment will be due at 11:00 pm on March 28th. The submission guidelines are identical to the previous assignments. Electronic submissions are preferred (cc’ing both kmcrane@cs.cmu.edu and nsharp@cs.cmu.edu).

As with the previous assignments, a code skeleton is now present in the course repository, which you should download and modify. Note that the core library has also been updated, so you will need to re-download (or git pull, if you’re using git) the entire repository. The skeleton in Assignment5.py contains empty methods in which you will implement your solution, all of your modifications must be between the lines which say BEGIN YOUR CODE and END YOUR CODE. Some of the function names referenced in section 8.1 of the text might not perfectly align with the codebase; don’t worry about this, just fill out the skeleton code. To submit the coding portion, email us your modified copy of the file Assignment5.py.

Additionally, include in your email a paragraph or two commenting on the results of this assignment. If your implementation is successful, analyze the results and comment on why they make sense. If you do not have faith in your results, comment on what appears to be wrong and what may be the cause.

Assignment 3

Assignment 3 is now available! You can view the document here. This assignment will be due at 11:00 pm on Feb 23rd. The submission guidelines are identical to the previous assignment. Electronic submissions are preferred (cc’ing both kmcrane@cs.cmu.edu and nsharp@cs.cmu.edu), but if you wish to submit a physical document, do so in class or at 215 Smith Hall. Smith Hall locks to the public at 5:00 pm, so plan accordingly.

The document linked above has several questions inline, numbered as Exercises 18-26. You DO NOT need to complete exercises 20 and 26, and you might not understand Section 6.3 — these all depend on exterior calculus, which we will be covering soon.

Once again, there is a coding component at the conclusion of the document, where you will be asked to implement some of the ideas described in the preceding text. A corresponding code skeleton is now present in the course repository, which you should download and modify. Note that the core library has also been updated, so you will need to re-download (or git pull, if you’re using git) the entire repository. The skeleton in Assignment3.py contains empty methods in which you will implement your solution, all of your modifications must be between the lines which say BEGIN YOUR CODE and END YOUR CODE. Some of the function names referenced in the text might not perfectly align with the codebase; don’t worry about this, just fill out the skeleton code. To submit the coding portion, email us your modified copy of the file Assignment3.py along with your written submission.

Again, we will only be considering triangular meshes without boundary for this assignment. There is a collection of such meshes in the Assignment3/Boundaryless_Meshes/ directory on which to test your code. Also, the codebase wiki has some information on matrix computation in Python which you might find useful.

Be warned, this coding portion is a bit more involved than the previous assignment, I suggest you start early so you have time to ask questions as needed.

Assignment 2

Assignment 2 is now available! You can view the document here. This assignment will be due at 11:00 pm on Feb 4th. The submission guidelines are identical to the previous assignment. Electronic submissions are preferred (cc’ing both kmcrane@cs.cmu.edu and nsharp@cs.cmu.edu), but if you wish to submit a physical document, do so in class or at 215 Smith Hall. Smith Hall locks to the public at 5:00 pm, so plan accordingly.

The document linked above has several questions inline, numbered as Exercises 12-17. You DO NOT need to complete problems 13 and 16; they involve material we have not yet covered. Also, there are some sections of text that might not recognize yet, such as a discussion of the Laplace-Beltrami operator and some use of exterior calculus. Don’t worry about these for now — they are not necessary to solve the problems, and we will be covering them in class in the upcoming weeks.

At the end of the document there is a coding assignment asking you to implement several of the quantities defined in the preceding text. A corresponding code skeleton is now present in the course repository, which you should download and modify. Note that the core library has also been updated, so you will need to re-download (or git pull, if you’re using git) the entire repository. The skeleton in Assignment2.py contains empty methods in which you will implement your solution, all of your modifications must be between the lines which say BEGIN YOUR CODE and END YOUR CODE. To submit the coding portion, email us your modified copy of the file Assignment2.py along with your written submission. There are some additional questions at the conclusion of the coding section, include your responses in the written submission.

To keep things simple, we will only be considering meshes without boundary for this assignment. There is a collection of such meshes in the Assignment2/Boundaryless_Meshes/ directory on which to test your code.

To investigate your code, run it as we did with the test assignment. Pressing ‘h’ will print (to your terminal) a list of commands supported by the program. Clicking on the mesh will print useful information about faces/edges/vertices.

Finally, on Tuesday (1/26) in class, I will be leading a workshop with a quick introduction to computing with meshes and a guide to using the course library. It is highly recommended that you attend! Please refrain from asking me any questions about the codebase until after that workshop.

Assignment 1 (Codebase)

As Keenan mentioned in class, the second component of getting started is downloading the codebase and getting a sample program to run. The codebase for this course is available at https://github.com/nmwsharp/DDGSpring2016.

The README displayed on that page contains some instructions for getting started and running a test program, as well as some other information. If you are an experienced programmer, feel free to ignore the instructions and do as you wish, there’s nothing especially unusual going on here (just get the test program working!).

To verify your success, please email me (nsharp@cs.cmu.edu) a screenshot of the window displaying the bunny by Jan 21. Don’t forget to include “DDGSpring2016” in the subject line.

There will surely be some hiccups getting started with this code, don’t hesitate to contact me with issues either via email or blog comments. I will also be holding an optional help session next Tuesday (Jan 19) around 5:00 so we can get things sorted out. If you aren’t available at that time and you would like to meet, let me know.