Suggestion: Bookmark this page for easy access to all infos you need for the course.
Each lecture contains material on physics, numerics, technical concepts, as well as exercises. The lecture content is outlined in its introduction using the following items for each type of content:
📚 Physics: equations, discretisation, implementation, solver, visualisation
💻 Code: technical, Julia, GitHub
🚧 Exercises
The course will be taught in a hands-on fashion, putting emphasis on you writing code and completing exercises; lecturing will be kept at a minimum.
Online attendance will be possible on Zoom for ETH students only
No online support will be provided during the exercise session, please follow the lectures
Schedule will be defined and communicated on the last lecture.
We use Element as the main channel for communication between the teachers and the students, and hopefully also between students. We encourage ETH students to ask and answer questions related to the course, exercises and projects there.
Head to the Element chat link on Moodle to get started with Element:
Select Start Student-Chat
Login using your NETHZ credentials to start using the browser-based client
Join the General and Helpdesk rooms
Download the desktop or mobile client for more convenient access or in case of encryption-related issues
Homework tasks will be announced after each week's lecture. The exercise session following the lecture will get you started.
Homework due date will be Wednesday 23h59 CET every following week (8 days) to allow for Q&A during the following in-class exercise session.
All homework assignments can be carried out by groups of two. However, note that every student has to hand in a personal version of the homework.
➡ Check out the Homework page for an overview on expected hand-in and deadlines.
Submission of JupyterHub notebooks after weeks 1 and 2, then GitHub commit hash (SHA) after week 3 and onwards, or other documents happens on the course's Moodle.
Actions and tasks related to GitHub will happen on your private course-related GitHub repository.
Starting from lecture 3 and onwards, the development of homework scripts happens on GitHub and you will have to submit the git commit hash (SHA) on Moodle in the related git commit hash (SHA) submission activity.
on the Hub place all notebooks of an assignment into one folder called assignments/lectureX_homework
note: maybe this folder magically already exists on your Hub with the notebooks added. If not, create it and download the notebooks yourself.
in Moodle during submission, select that folder as JupyterHub submission
Once you have your GitHub account ready (see lecture 2 how-to), create a private repository you will share with the teaching staff only to upload your weekly assignments:
Create a private GitHub repository named pde-on-gpu-<moodleprofilename>
, where <moodleprofilename>
has to be replaced by your name as displayed on Moodle, lowercase, diacritics removed, spacing replaced with hyphens (-). For example, if your Moodle profile name is "Joël Désirée van der Linde" your repository should be named pde-on-gpu-joel-desiree-van-der-linde
.
Select an MIT License
and add a README.md
file.
Share this private repository on GitHub with the teaching bot.
For each homework submission, you will:
create a git branch named homework-X
(X ) and switch to that branch (git switch -c homework-X
);
create a new folder named homework-X
to put the exercise codes into;
(don't forget to git add
the code-files and git commit
them);
push to GitHub and open a pull request (PR) on the main
branch on GitHub;
copy the single git commit hash (SHA) after the final push and the link to the PR and submit both on Moodle as the assignment hand-in (it will serve to control the material was pushed on time);
(do not merge the PR yet).
homework-X
folders and README.md
in the GitHub repo you share with the exercise bot in order to keep the repository lightweight.Project.toml
file. The Manifest.toml
file should be excluded from version control. To do so, add it as entry to a .gitignore
file in the root of your repo. Mac users may also add .DS_Store
to their global .gitignore
. Codes could be placed in a scripts/
folder. Output material to be displayed in the README.md
could be placed in a docs/
folder.After the submission deadline, we will correct and grade your assignments. You will get personal feedback directly on the PR as well as on Moodle. Once you got feedback, please merge the PR.
We will try to correct your assignments before the lecture following the homework's deadline. This should allow you to get rapid feedback in order to clarify the points you may struggle on as soon as possible.
Starting from lecture 7, and until lecture 9, homework assigments contribute to the course's first project. The goal of this project is to have a multi-xPU thermal porous convection solver in 3D.
🚧 More infos to come in due time.
All homework assigments can be done alone or in groups of two.
Enrolled ETHZ students will have to hand in on Moodle and GitHub:
Six weekly assignments during the course's Part 1 and Part 2 constitute 30% of the final grade. The best five out of six homeworks will be counted.
A project developed during Part 3 of the course consitutes 35% of the final grade
A final project consitutes 35% of the final grade
Project submission includes code in a Github repository and an automatically generated documentation.