## Semester 2 in Vienna

## Numerical – Modelling Training

**#ABOUT**
Semester 2 in Vienna**;**

## Numerical – Modelling Training

The Institute for Analysis and Scientific Computing at TU Vienna features the perfect group for such a task. This institute is fully in charge of the Technical Mathematics courses at TU Vienna and features outstanding record of training new applied mathematicians in industry and academia.

Prof. Dirk Praetorius, a top researcher in the field of numerical methods with outstanding record and experience in research group leadership, will cover the computer programming part. He was recently awarded the Best Lecture Award at TU Vienna in 2019. Prof. Joachim Schoeberl, another leading figure in the field of numerics for differential equations and Head of the Scientific Computing and Modelling research unit at the Institute, is in charge of the course on numerical PDEs. This task is particularly relevant for the specializations on Computational Fluid Mechanics and Cancer Modelling. Proff. Praetorius and Schoeberl, jointly with Prof. Lothar Nannen, are also in charge of the course on numerical ordinary differential equations. Dr. Kevin Sturm, an assistant professor in the same group, will cover the Numerical Optimization course, which prepares for the specialization branch at UAB devoted also on optimization methods. Prof. Rudolf Fruehwirth will introduce parallel computing, a rapidly growing subject which is relevant to most of the specialisations.

March 2022

Semester 2

September 2022

September 2022

September 2023

🎓 Graduation

**#Semester 2 in Vienna ** EMJMD InterMaths Study Track

Numerical – Modelling Training**;**

ECTS Credits: 8 **|** Semester: 2 **|** Year: 1 **|** Campus: Vienna University of Technology **|** Language: English

Unit Coordinator: Dirk Praetorius, Rudolf Frühwirth, Sascha Hunold, Jesper Larsson Träff

Aims:

- Scientific programming in mathematics:

formulate (certain) mathematical problems in algorithmic form,

implement these elementary algorithms in C and C++,

explain the difference between imperative and object-oriented programming,

present and explain own solutions, and

constructively discuss and analyze own solutions as well as those of other students.

- Programming with MATLAB:

design, debug and test programs in the MATLAB language

solve easy to moderately difficult problems in statistics and applied mathematics using MATLAB

- Basics of Parallel Computing:

Understand and express asymptotic running time and work of parallel algorithms

Understand parallel algorithm using the PRAM model with respect to running time and work

Understand and appreciate characteristics of thread models for parallel computing

Read and write programs in OpenMP

Read and write programs in MPI

Understand and appreciate task parallel models for parallel computing

Content:

- Scientific programming in mathematics:

Object oriented design and programming in C++: Representation of integer and floating point numbers. Conditioning of given problems. Computational cost of algorithms. Variables and standard data types. Pointers. Functions and recursion. Call by value vs. call by reference. Loops, Objects and classes (resp. structures), Operator overloading, Inheritance and virtual.

- Programming with MATLAB:

MATLAB syntax (command- and object-oriented), graphical representations, problems in linear algebra, optimization and statistics, solution of ordinary differential equations by functions in the various toolboxes.

- Basics of Parallel Computing:

Motivation and goals of parallel computing, parallel computer architectures, programming models, performance measurement and analysis, introduction to programming paradigms such as MPI (Message Passing Interface), Pthreads, and OpenMP. Other aspects and languages for programming multi-core processors.

Pre-requisites:

- Programming with MATLAB:

Basic knowledge of higher mathematics (functions, linear algebra, ordinary differential equations)

- Basics of Parallel Computing:

Knowledge of programming languages, computer architectures, operating systems. Basic Algorithms and Datastructures (asymptotic worst-case analysis). Programming skills in C, C++, Fortran or Java.

Reading list:

- Scientific programming in mathematics:

lecture notes

- Programming with MATLAB:

Otto and Denier, An Introduction to Programming and Numerical Methods in MATLAB

Brian Hahn, Essential MATLAB for Engineers and Scientists

Stormy Attaway, Matlab: A Practical Introduction to Programming and Problem Solving

- Basics of Parallel Computing:

Rauber, Rünger: Parallel programming. Second Edition, Springer 2013.

Schmidt, Gonzalez-Dominguez, Hundt, Schlarb: Parallel Programming. Concepts and Practice. Morgan Kaufmann 2018.

ECTS Credits: 7 **|** Semester: 2 **|** Year: 1 **|** Campus: Vienna University of Technology **|** Language: English

Unit Coordinator: Joachim Schöberl,

Aims:

- Solve stationary partial differential equations numerically
- Analyse the quality of numerical solutions
- Select proper methods and implement them in a computer programme

Content:

- Variational formulations
- Sobolev spaces, H(div), H(curl)
- Finite element spaces (h, p, hp)
- Mixed formulations
- Discontinuous Galerkin methods
- Time-dependent problems

Pre-requisites:

Analysis, linear algebra, numerical mathematics.

Reading list:

- Lecture notes,
- Dietrich Braess: Finite Elements: Theory, Fast Solvers, and Applications in Solid Mechanics, Cambridge University Press, 2007
- Cleas Johnson: Numerical Solution of Partial Differential Equations by the Finite Element Method, Cambridge Univ. Press, 1987, Dover 2009
- Susanne Brenner & Ridgway Scott: The Mathematical Theory of Finite Elements, Springer 2008
- Alexandre Ern & Jean-Luc Guermond: Theory and Practice of Finite Elements, Springer, 2010