Skip to content

master-csmi/2022-m1-lorenz

Repository files navigation

2022-m1-lorenz

badge

Description of the projet: Data assimilation for the Lorenz system

The main goals of this project was to implement a parallel time resolution method for the Lorenz system, and to realize the data assimilation using the EnKF method. For this we also had to implement several methods to solve numerically the Lorenz system.

Authors

This project is realized during the master csmi by two Master 1 students, LECOURTIER Frédérique and AYDOGDU Melissa and it is managed by Cemosis which is the "Centre de Modélisation et de Simulation de Strasbourg" (Strasbourg Modeling and Simulation Center). Cemosis is hosted by the Institute of Advanced Mathematical Research (IRMA) and was created in January 2013. Cemosis relies currently on the team Modeling and Control of the IRMA. Their work is focused on the numarical simulation and mathematical modelling of different phenomena.

Requirements

For the execution of the project it is necessary to install the following modules:

NumPy [NumPy Documentation](https://numpy.org/doc/ "Title")
  pip install numpy
  pip install FilterPy==1.4.5
MatPlotLib [MatPlotLib Documentation](https://matplotlib.org/stable/index.html "Title")
  pip install matplotlib
Scipy [SciPy Documentation](https://docs.scipy.org/doc/scipy/ "Title")
  pip install scipy
MPI4Py [MPI4Py Documentation](https://mpi4py.readthedocs.io/en/stable/ "Title")
  python -m pip install mpi4py
Panda [Panda Documentation](https://pandas.pydata.org/docs/ "Title")
  pip install pandas

Compile

Cmake

Install cmake >= 3.21 using e.g. apt from kitware, snap on ubunty 20.04 or homebrew

Install from Kitware APT
> sudo apt-get update
> sudo apt-get install gpg wget
> echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
> sudo apt-get update
> sudo apt install cmake
Install cmake on Ubuntu using snap
> snap install cmake
Install cmake on homebrew
> brew install cmake

Compile

VScode provides an interface for CMake Presets (see CMakePresets.json)

Configure and build the default preset
> cmake --preset default
> cmake --build --preset default

Organisation

For the organization of our repository we have at first a docs directory in which our latex source files are located. In this directory we have our project report, the presentation and a glove diagram. Our source code for the implementation is in the lorenz directory with two different parts, the implementation for the pararel part and the implementation for the data assimilation. We also have an examples directory with the results we got by taking some parameters. To use our methods the lorenz module is required, so you have to add a path before running the examples. In the example directory you can do the command:

export PYTHONPATH=src/python

And finally we have a tests directory where we have our tests for our codes. These are checked at each push automatically using pytest