Prof. Andrea Cangiani <acangian@sissa.it>
Dr. Ankur Ankur <aankur@sissa.it>
- (Ph.D.) Mathematical Analysis, Modelling, and Applications @ SISSA.
This course provides a high level introduction to the numerical analysis of PDES and related high-performance computing techniques, focusing on problems in mechanics such as fluid dynamics. Students will acquire advanced understanding on Computational modelling techniques, both theoretical and practical. The course will utilise a combination of frontal lectures and live programming demonstrations using the C++ deal.ii (dealii.org) Finite Element Library.
Review of fundamentals of the Finite Element Method: theory and practice. A priori and a posteriori error estimates. Computational mechanics: fluid mechanics, linear elasticity. The discontinuous Galerkin Finite Element Method. Analysis of Finite Element Methods for the Stokes equations. Theory and approximation of the Navier-Stokes problem.
Tools for Finite Element programming. Data structures and mesh generation, numerical quadrature techniques. Assembling and storage. Direct and iterative solvers, preconditioning techniques. Numerical linear algebra packages. Solution of nonlinear systems.
High Performance Computing. Parallel computing. Using the Docker. Introduction to the deal.II Finite Element library. Hands-on sessions for developing and implementing finite element solvers using deal.II. Visualization tools.
Prior knowledge of foundamentals about the numerical analysis of partial differential equations and in particular finite element method analysis.
Knowledge of programming fundamentals (syntax, data types, variables, control structures, functions) is required for this course.
Prior experience with a programming language, preferably C++.
To participate in this course, students will be requested to bring their own laptop equipped with a working Linux or UNIX environment, whether standalone or virtualized. Students are expected to utilize either a text editor, such as Emacs, Vim, or Nano, or an Integrated Development Environment (IDE), such as VSCode, Eclipse, or Code::Blocks, according to their preference.
To ensure that their environment is suitable for the course, students should ensure that it meets the following requirements:
The environment must have a C++ compiler installed with full support for C++17, such as GCC 10 or newer, or Clang 11 or newer.
The environment must meet the minimum system requirements for running a Linux or UNIX environment with the necessary software and tools for the course.
Any recent Linux distribution, such as Ubuntu 22.04 or newer, or Debian 11 or newer, or macOS system that meets these requirements should be suitable for the course.