About the course

Hans Petter Langtangen (hpl at ifi.uio.no)
Xing Cai (xingca at ifi.uio.no)


Goal: reliable hands-on computing with PDEs

When you encounter a partial differential equation, you will after this course have a clear idea of

Teaching method: simplify, understand, generalize

To take advantage of the true power of mathematics in physics, biology, and other applied sciences, one needs to simplify, understand, and generalize. These three concepts also form the teaching basis in this course.

A series of physical model problems are addressed and used in examples:

For each model problem, we start out with the simplest version of the model and go through key building blocks for turning the computer into a virtual laboratory where we can play around with the model. The building blocks covered in the course are Much focus is on all the nuts and bolts of building reliable simulation models. This means a particular focus on implementation and testing, and less focus on mathematical subjects that do not have a direct application of great practical value.

When teaching new methods, we always start out with simple ODEs to explain the very basics of the technicalities. Then we extend the methodology progressively using more advanecd models that build on what we have learned through the simpler ones. In this way, new mathematical or programming techniques are introduced in problems of the simplest possible type (but no simpler!), yet of a relevance that carries directly over to advanced PDE problems.

Through the simplify, understand, and generalize paradigm, one will view a complex scientific application as an assembly of pieces that can be understood separately and then brought together (perhaps with considerable efforts!) to solve the problem in a reliable way. Our focus throughout the course is two-fold: 1) how to do it, and 2) how to assess the quality.

Compulsory exercises and projects

Hans Petter Langtangen (hpl at ifi.uio.no)
Xing Cai (xingca at ifi.uio.no)


Compulsory exercises and projects

These exercises and projects must be submitted before prescribed deadlines in a github.com repo and assessed in the corresponding assessment lectures (under guidance of the teaching assistant), where groups of four students are automatically formed, each student discusses and provides feedback on the exercises done by the three other students. Each student must do both the compulsory projects, and in addition finish at least 3 (out of 5) smaller mandatory exercises.

Files for the course

All example codes are available from https://github.com/hplgit/num-methods-for-PDEs/tree/master/src. All written course material (textbook chapters and lectures) are available at http://hplgit.github.io/num-methods-for-PDEs/doc/pub/index.html.

You may access these resources directly on the web, or you may have a local copy on your computer:

Terminal> git clone https://github.com/hplgit/num-methods-for-PDEs.git INF5620-resources

This gives you a directory INF5620-resources with all the published course material. The written material is in doc/pub and the computer codes in src. As the material undergoes updates throughout the course, you must frequently get these updates by going to the INF5620-resources project and doing

Terminal> git pull origin master

Warning. The GitHub project num-methods-for-PDEs is automatically generated from source files in another project. Therefore, if you see some typo or error, do not fork the project, correct the file and send me a pull request, which would be the normal procedure to contribute to file development with Git. Report the error instead in email to hpl@ifi.uio.no since the error must be corrected in the source files that generate the published files in the num-methods-for-PDEs project.

Exam

See previous exams for examples on topics for the final exam.