# Advanced Numerical Methods for CSE Autumn 2019

Lecturer
Siddhartha Mishra
Coordinators
Pratyuksh Bansal, Luc Grosheintz, Carlos Parés-Pulido
VVZ
Link to the lecture on VVZ.

## Exercise classes

Please pick an exercise class on mystudies.

In the first week there will only be one exercise class, namely on Friday. It will be very informal and serves the purpose of helping you setup a development environment and showing you some, hopefully, motivating examples from our own work.

The presence hours are on demand, i.e. write us an email and we will schedule a date.

 Thu 08-10 HG D 1.1 Pratyuksh Bansal Fri 13-15 HG E 1.1 Carlos Parés-Pulido

## Exercises

There will be three exercise sheets during the semester, and one smaller Serie 0 to help you get up to speed on the prerequisites and install the required libraries and compilers.

You will be able to submit your solutions online. Please note that you will need to have signed up for an exercise class on mystudies to be able to login in successfully.

exercise sheet due by solutions
Problems 0, Templates 0-2 none Solutions 0 (code), (pdf)
Problems 1 (upd. Oct 25), Templates 1 November 1, 2019 Solutions 1 (code), (pdf)
Problems 2 (upd. Nov 21), Templates 2, Data Files, Changelog, GetEigen.cmake (add. Dec 04) December 8, 2019 Solutions 2 (code), (pdf)
Problems 3, Templates 3 none Solutions 3 (code), (pdf)

### Software Requirements

You will need a modern C++17 compiler, CMake (3.12 or newer) and an editor or IDE of your choosing. Futhermore, you should install a reasonably new version of Python (3.6 and newer) is a good choice, afterall f-strings are a nice addition to the language. Please also install the usual Python libraries required for scientific computing numpy, scipy and matplotlib.

#### Known Problems

On Dec 04 Eigen moved repositories. Therefore, the URL in cmake/GetEigen.cmake is outdated. Please download and replace that file with the one provided above.

If you're getting errors about not finding filesystem, then probably your compiler is too old. You either want GCC 8 or newer; or CLang 8 and newer. (I'm not sure if the version of clang is sharp. Therefore, if filesystem is supported on clang 7 or older please let us know.)

Optionally you can chose to install clang, including clang-tidy and clang-format. You might find Valgrind helpful. If you are not using an IDE, first of all reconsider using one, but if you prefer not to you can still install a debugger such a GDB. Since the projects are quite lengthy you might want to have them under version control, using git. As a student you can get free private repositories on Github (and more).

#### Help for configuration

If you are having some issues getting your system ready, this guide for setup and compilation should be useful to you.

#### First tutorial recap: tools and tips

You can find here a summary of the contents of the first tutorial, including some basic discussion of techniques such as git, CMake and testing.

## Lecture Notes

New: Slides on UQ. Relevant for the course: (ML)MCFVM.

New: K. Lye, S. Mishra, D. Ray - Deep Learning Observables in Computational Fluid Dynamics discusses the Machine Learning topics covered in the lecture (and quite a bit more!) and may be helpful for the last part of the course.

The largest part of the course will be based on the lecture notes (upd. Jan 15) of "Numerical methods for hyperbolic PDEs". The lecture notes for the remaining parts of the lecture will be updated during the semester and will be published in due time.

You might also find useful the lecture notes of "Computational Methods for Engineering Applications". This is not course material and is only provided as an additional resource, especially chapters 6-8 about the Finite Element Method.

## Literature

For further reading we recommend following books.
• R. LeVeque, 1990. This is a very nice, easy to read and short book on hyperbolic PDEs and their numerical discretization. It is available here and should be free for ETH students.
• R. LeVeque, 2002. This is the extended version of previous item on the list. You can get an electronic copy here (free for ETH students).