This course gives you an introduction to modeling methods and simulation tools for a wide range of natural phenomena. The different methodologies that will be presented here can be applied to very wide range of topics such as fluid motion, stellar dynamics, population evolution, …

This course does not intend to go deeply into any numerical method or process and does not provide any recipe for the resolution of a particular problem. It is rather a basic guideline towards different methodologies that can be applied to solve any kind of problem and help you pick the one best suited for you.

The assignments of this course will be made as practical as possible in order to allow you to actually create from scratch short programs that will solve simple problems. Although programming will be used extensively in this course we do not require any advanced programming experience in order to complete it.

### Syllabus

**WEEK 1**

Introduction and general concepts

This module gives an overview of the course and presents the general ideas about modeling and simulation. An emphasis is given on ways to represent space and time from a conceptual point of view. An insight of modeling of complex systems is given with the simulation of the grothw and thrombosis of giant aneurysms. Finally, a first class of modeling approaches is presented: the Monte-Carlo methods.

Graded: Introduction and general concepts

**WEEK 2**

Introduction to programming with Python 3

This module intends to provide the most basic concepts of high performance computing used for modeling purposes. It also aims at teaching the basics of Python 3 which will be the programming language used for the quizzes in this course.

Graded: Introduction to programming with Python 3

Graded: Project – Piles

Graded: Project – Class:Integration

**WEEK 3**

Dynamical systems and numerical integration

Dynamical systems modeling is the principal method developed to study time-space dependent problems. It aims at translating a natural phenomenon into a mathematical set of equations. Once this basic step is performed the principal obstacle is the actual resolution of the obtained mathematical problem. Usually these equations do not possess an analytical solution and advanced numerical methods must be applied to solve them. In this module you will learn the basics of how to write mathematical equations representing natural phenomena and then how to numerically solve them.

Graded: Dynamical systems and numerical integration

Graded: The implicit Euler scheme

Graded: Project – Lotka-Volterra

**WEEK 4**

Cellular Automata

This module defines the concept of cellular automata by outlining the basic building blocks of this method. Then an insight of how to apply this technique to natural phenomena is given. Finally the lattice gas automata, a subclass of models used for fluid flows, is presented.

Graded: Cellular Automata

Graded: Project – The Parity Rule

**WEEK 5**

Lattice Boltzmann modeling of fluid flow

This module provides an introduction to the lattice Boltzmann method, a powerful tool in computational fluid dynamics. The lesson is practice oriented and show, step by step, how to write a program for the lattice Boltzmann method. The program is used to showcase an interesting problem in fluid dynamics, the simulation of a vortex street behind an obstacle.

Graded: Lattice Boltzmann modeling of fluid flow

Graded: Project – Flow around a cylinder

Graded: Collision Invariant

**WEEK 6**

Particles and point-like objects

A short review of classical mechanics, and of numerical methods used to integrate the equations of motions for many interacting particles is presented. The student will learn that the computational expense of resolving all interaction between particles poses a major obstacle to simulating such a system. Specific algorithms are presented to allow to cut down on computational expense, both for short-range and large-range forces. The module focuses in detail on the Barnes-Hut algorithm, a tree algorithm which is popular a popular approach to solve the N-Body problem.

Graded: Particles and point-like objects

Graded: Project – Barnes-Hut Galaxy Simulator

**WEEK 7**

Introduction to Discrete Events Simulation

In this module, we will see an alternative approach to model systems which display a trivial behaviour most of the time, but which may change significantly under a sequence of discrete events. Initially developed to simulate queue theory systems (such as consumer waiting queue), the Discrete Event approach has been apply to a large variety of problems, such as traffic intersection modeling or volcanic hazard predictions.

Graded: Introduction to Discrete Event Simulation

Graded: Project – Simple modelling of traffic lights

**WEEK 8**

Agent based models

Agent Based Models (ABM) are used to model a complex system by decomposing it in small entities (agents) and by focusing on the relations between agents and with the environment. This approach is derived from artificial intelligence research and is currently used to model various systems such as pedestrian behaviour, social insects, biological cells, etc.

Graded: Agent based models

Graded: Project – Multi-agents model

ENROLL IN COURSE