bild
Skolan för
elektroteknik
och datavetenskap

Project Course in Scientific Computing (projsc10) 7.5c

Overview

The goal of this course is to give insight into an active research area in scientific computing (for example the finite element method) with focus on an aspect of the method or an application in wave propagation, solid mechanics, fluid mechanics with turbulence, chemical engineering or similar areas. In the course you will:
  • Study relevant literature, i.e. relevant course books or scientific articles.
  • Derive and implement a method by using components of an existing software system for computational modeling and execute numerical experiments.
  • Present your work in the form of a short seminar (compulsory, but not graded) and write a project report (compulsory and graded).

News

110505: Added material to homepage: introduction to FEniCS/FEM and links to literature and other material.
110407: Intro meeting on thursday 7 April in 1357 at 10-11.

Course components

You will perform primarily individual work with regular supervision/consultation and support by researchers at KTH. The course consists of the following main components:
  • Project plan (choose a suggested project or come up with your own).
  • Two mandatory progress reports (oral, with your supervisor).
  • Software implementation in a computational modeling environment (for example FEniCS in Python or C++).
  • Written project report.
  • Oral project presentation.

Projects

Projects are done in groups of 2 students (or possibly 3 students if you can provide a motivation). You may also choose to work on your own. A preliminary list of suggestions for projects is available as a pdf file. A project plan template is given.

Intro lecture

Introductory lecture part 1

Introductory lecture part 2

Suggested Literature

Body and Soul: Mathematical Simulation Technology, by Johan Jansson and Claes Johnson

Automated Scientific Computing ("The FEniCS Book"), edited by A. Logg, K.-A. Mardal and G. N. Wells, Springer-Verlag

Computational Differential Equations, K. Eriksson, D. Estep, P. Hansbo, C. Johnson (see Mathematical Simulation Technology above, much of this material is part of that work).

D. Estep, A short course on duality, adjoint operators, Green's functions, and a posteriori error analysis.

Body and soul books (computational mathematics, FEM, turbulent flow).

Navier-Stokes: Quick and Easy

Compressible Flow (p. 37- for compressible Euler in 2d/3d)

Laplacian models

Getting started with FEniCS at CSC

Introductory text (from course numfcl10)

Introduction to FEM and PDE (from course numfcl10)

FEniCS/DOLFIN documentation

The FEniCS project is an open source project for the automation of solving (partial) differential equations (PDE) by the finite element method (FEM). In this course you will learn the basic concepts of FEM, and be able to understand how FEniCS works "under the hood". You will then use FEniCS to build PDE solvers for the basic models presented in the course. FEniCS consists of several different components/sub-projects, the one you will interact with is called DOLFIN, and is the C++/Python interface for solving problems.

Below some documentation to FEniCS/DOLFIN is presented. Try to use the built-in Python help() function as much as possible, and browse the documentation below to get an overview of the system (this will also be presented in the lectures), or to find a specific detail which for some reason is unavailable in the Python help.

  • The DOLFIN user manual gives a basic overview of what DOLFIN is and its components. Could be slightly outdated and incomplete, since it's being replaced by a more comprehensive documentation project. The code examples for solvers are primarily in C++, and can be skipped.
  • The Programmer's reference gives a complete index of all the classes, functions and definitions in DOLFIN. Is a C++ reference, but the class/function names are typically the same in C++ and Python. Should be used together with Python's help() function.
  • The FEniCS Python tutorial gives a comrehensive tutorial for solving basic PDEs with FEniCS in Python. The assumed background knowledge is too advanced for this course, but for those who are interested, it could give details about features you are interested in.

Teachers

Coordinator is Johan Jansson; email: jjan@csc.kth.se

Examination

The examination consists of a written project report and a compulsory oral presentation.

Here is a Latex template for your project report. There is no page limitation for the report, but probably 5-10 pages (not including appendices) will be enough. If you are not familiar with Latex this could be a convenient way to learn it.

Schedule

The first meeting for the course takes place Thursday 2011-04-07 at 10:15 in room 1537, Lindstedtsvägen 3, floor 5.

Deadline for project plan is April 14.

Weekly meetings at (preliminary) Wednesdays at 10:15 (roomn announced on mailing list), Lindstedtsvägen 3, floor 5.

Software

Unicorn at CSC

...
Copyright © Sidansvarig: Johan Jansson <jjan@csc.kth.se>
Uppdaterad 2011-05-05