Simulate the flow of a newtonian fluid in a lid-drive cavity with internal obstacles using the explicit and implicit projection methods.
- Python version: 3.10.7
- Numba version: 0.56.4
- To create, run
python -m venv mnt_venv
-
To activate, run
- On Windows (git bash)
source mnt_venv/Scripts/activate
- On Linux
source mnt_venv/bin/activate
-
To install the dependencies, run
pip install -r requirements.txt
(mnt-venv)$ python main.py -h
usage: main.py [-h] -re NUM_RE --final_time FINAL_TIME [-i]
[--grid_size GRID_SIZE] [--dt DT] [--tol TOL] [-v]
[--num_obs NUM_OBS] [-obs OBSTACLE] [-o OUTPUT]
[--early_stopping] [--dont_save] [--dont_show]
Simulate the flow of a newtonian fluid in a lid-drive cavity with internal obstacles
options:
-h, --help show this help message and exit
-re NUM_RE, --num_re NUM_RE
Reynolds number.
--final_time FINAL_TIME
Final time for the simulation.
-i, --implicit Set to use implicit method. (Default: False)
--grid_size GRID_SIZE
Grid discretization. (Default: 100)
--dt DT Time increment. (Default: 0.0001)
--tol TOL Tolerance of the iteration error. (Default: 1.e-8)
-v, --validation Set True for the validation problem. (Default: False)
--num_obs NUM_OBS Number of obstacles. (Default: 1)
-obs OBSTACLE, --obstacle OBSTACLE
Obstacle location (i, j) and size as 'i','j','L' for
all obstacles. (Default: 40,40,20)
-o OUTPUT, --output OUTPUT
Set the output name. (Default: None)
--early_stopping Set True for the early stopping to simulate until the
permanent situation or the final time. (Default:
False)
--dont_save Don't save output plots at the end of the simulation.
(Default: False)
--dont_show Don't show output plots at the end of the simulation.
(Default: False)
- Explicit method
python main.py --num_re 100 --final_time 60 -v
- Implicit method
python main.py --num_re 100 --final_time 60 -i --dt 0.001 -v
- One centered obstacle
python main.py --num_re 100 --final_time 60 -i --dt 0.001 -obs 40,40,20
- One obstacle on arbitrary position
python main.py --num_re 100 --final_time 60 -i --dt 0.001 -obs 20,60,20
- Two obstacles on arbitrary position
python main.py --num_re 100 --final_time 60 -i --dt 0.001 --num_obs 2 -obs 20,60,20,60,20,20
- dt = 0.001 and dx = dy = 0.01
Re | This work1 | This work2 | Kim and Moin (1985) | Ghia et al. (1982) | Marchi et al. (2009) |
---|---|---|---|---|---|
1 | - | 0.0996 | 0.099 | - | 0.10013 |
100 | 0.1033 | 0.1033 | 0.103 | 0.103 | 0.1035 |
400 | 0.1126 | 0.1126 | 0.112 | 0.114 | 0.1140 |
1000 | 0.1149 | 0.1149 | 0.116 | 0.118 | 0.1189 |
1 - First order explicit method; 2 - First order implicit method; 3 - In this case Re number was 0.01.
- dt = 0.005 and dx = dy = 0.01
Re | This work2 |
---|---|
1 | 0.0965 |
100 | 0.1033 |
400 | 0.1125 |
1000 | 0.1148 |
Re = 1 | Re = 100 |
---|---|
Re = 400 | Re = 1000 |
Re = 100 | Re = 1000 |
---|---|
Re = 100 | Re = 1000 |
---|---|
Re = 1, L = 20 | Re = 100, L = 20 |
---|---|
Re = 400, L = 20 | Re = 1000, L = 20 |
Re = 100, L = 20 | Re = 1000, L = 20 |
---|---|
Results for Re = 400.
40x60, L = 20 | 40x20, L = 20 |
---|---|
20x40, L = 20 | 60x40, L = 20 |
Results for Re = 400.
20x60 and 60x20, L = 20 | 40x20 and 40x60, L = 20 |
---|---|
20x20 and 60x60, L = 20 | 20x40 and 60x40, L = 20 |
[1] - Chorin, A.J., 1968. "Numerical solution of the Navier-Stokes equations". Mathematics of computation;
[2] - Ghia, U., Ghia, K. and Shin, C., 1982. "High-Re solutions for incompressible flow using the Navier-Stokes equations and a multigrid method". Journal of Computational Physics;
[3] - Kim, J. and Moin, P., 1985. "Application of a fractional-step method to incompressible Navier-Stokes equations". Journal of Computational Physics;
[4] - Marchi, C.H., Suero, R. and Araki, L.K., 2009. "The lid-driven square cavity flow: Numerical solution with a 1024 x 1024 grid". Journal of the Brazilian Society of Mechanical Science and Engineering;
[5] - Rosa, A.P., 2021. "Roteiro para o Trabalho 5: Resolvendo o Problema do Escoamento de um Fluido em uma Cavidade com o Método de Projeção". Disciplina: Métodos Numéricos em Termofluidos, UnB;
[6] - Temám, R., 1969. "Sur l’approximation de la solution des équations de Navier-Stokes par la méthode des pas fractionnaires (II)". Archive for Rational Mechanics and Analysis.