Designing a Julia Parallel code for adaptive numerical simulation of a transport problem
Project reference: 2206
The Julia language is one of the most modern and effective languages for performing high-performance numerical simulations, particularly in fluid mechanics. This project involves implementing a 2D Julia code simulating the transport of a scalar function with a steep front. The speed of propagation will be calculated as the gradient of a pressure, itself the solution of a Poisson problem that is calculated via the resolution of a linear system. One finds this type of process both in problems of fluid flows in porous media and in problems of propagation of discharges in cold plasmas. The mesh used will be dynamically adaptive and will follow the propagation front according to algorithms previously used with other languages. The goal here is to implement a parallel code at the level of the different calculation phases: first for the dynamic mesh refinement and de-refinement process, then for the resolution of the linear system by direct or iterative methods, and finally for the numerical scheme for calculating the propagation front. In the same way, one must parallelize the method of resolution of the linear system so that each sub-domain is treated by a given number of processes. Knowing that the number and size of the sub-domains vary dynamically during the resolution of the propagation phenomenon. We will proceed step by step. The challenges will be addressed one by one depending on the speed of implementation of the project.
Project Mentor: Fayssal Benkhaldoun
Project Co-mentor: Mohamed Boubekeur
Site Co-ordinator: Karim Hasnaoui
The student involved in the project will gain an advanced knowledge of computer code parallelization methods. In addition the student will learn the new lanage Julia which is promising in the context.
Student Prerequisites (compulsory):
In order to carry out the proposed research, the student must necessarily have a good knowledge of methods of approximation of PDEs and methods of solving linear systems.
Student Prerequisites (desirable):
In order to carry out the proposed research, the student will preferably have a Master’s degree in HPC, or have taken advanced courses in this field.
In order to prepare for the work, the student will be able to consult the Discord workspaces of previous students who have started the project and which contain the codes and reports of the students.
After the training week, the work plan will be as follows, with
Week 2: familiarization with the Julia codes already available at the Lab
and bibliographic study concerning the methods of resolution and
parallelization of this type of problem.
Week 3: a work plan will be drawn up based on the study done
Week 4 A dynamic mesh refinement methodology will be implemented
in the 2D transport resolution code provided to the student.
Week 5 implementation of a parallel method for the direct resolution of
Week 6 implementation of a domain decomposition method based on
adapted non-uniform meshes.
Week 7: Parallelization of the numerical scheme of the calculation of
the transport problem and coupling with the resolution of the linear
Final Product Description:
The project will allow the construction of the skeleton of a Julia platform for calculating fluid flow problems. This will then make it possible to deal with problems that require a lot of CPU time, such as phenomena relating to non-Newtonian fluids.
Adapting the Project: Increasing the Difficulty:
If the situation allows it, we will increase the difficulty by adding the parallization of resolution of linear systems by iterative methods in the 3D framework.
Adapting the Project: Decreasing the Difficulty:
If necessary, we will reduce my difficulty of the project by implementing a parallel code on a very fine but not adapted fixed mesh.
The student will have access to and use the Paris 13 University cluster, which has several thousand of computing cores.
IDRIS, LAGA-USPN: Laboratoire Analyse Géométrie t Applications – Université Sorbonne Paris Nord – Paris 13