# Sample code for solving Lid-Driven cavity test (Re=1000) - Fortran 90

### From CFD-Wiki

(added some explanation about icomm_1.f90) |
|||

(5 intermediate revisions not shown) | |||

Line 24: | Line 24: | ||

'''Short description''' | '''Short description''' | ||

- | In this program | + | In this program SIMPLE algorithm on colocated, regular and orthogonal grid is implemented. |

+ | |||

+ | Rhie-Chow interpolation is used. | ||

+ | |||

Because it was primarily developing program for learning, there was implemented an output for all variables in the txt format as well as for TECPLOT format. | Because it was primarily developing program for learning, there was implemented an output for all variables in the txt format as well as for TECPLOT format. | ||

Structured orthogonal uniform grid is used (now). All variables are saved in array '''F(1:nx,1:ny,10)''' which mean that 2D array for 10 variables. | Structured orthogonal uniform grid is used (now). All variables are saved in array '''F(1:nx,1:ny,10)''' which mean that 2D array for 10 variables. | ||

- | Variables '''F(:,:,1)''' and '''F(:,:,2)''' represented U and V velocity components, and '''F(:,:,4)'''represented pressure. | + | Variables '''F(:,:,1)''' and '''F(:,:,2)''' represented U and V velocity components, and '''F(:,:,4)'''represented pressure. |

+ | |||

+ | '''F(:,:,3)''' represents pressure correction. | ||

Arrays '''Xc''' and '''Yc''' represents the coordinates of the CV centres, and '''X''' and '''Y''' - coordinates of grids nodes | Arrays '''Xc''' and '''Yc''' represents the coordinates of the CV centres, and '''X''' and '''Y''' - coordinates of grids nodes | ||

Line 35: | Line 40: | ||

*[[Main_Cavity.f90 - Main modul]] | *[[Main_Cavity.f90 - Main modul]] | ||

- | *[[Common_incld.f90 - include module]] | + | *[[Common_incld.f90 - include module]] - the same as icomm_1.f90 |

*[[Init_all.f90 - Initiation of arrays]] | *[[Init_all.f90 - Initiation of arrays]] | ||

*[[Grid_rectangular.f90 - Calculation of grid]] | *[[Grid_rectangular.f90 - Calculation of grid]] | ||

Line 49: | Line 54: | ||

----------------------------------------------------------------- | ----------------------------------------------------------------- | ||

[[Image:Grid_annumeration_for_cavity.jpg]] | [[Image:Grid_annumeration_for_cavity.jpg]] | ||

+ | |||

+ | [[Image:Faces_annumeration_01.jpg]] | ||

+ | [[Image:Faces_annumeration_02.jpg]] | ||

+ | [[Image:Faces_annumeration_03.jpg]] | ||

[[Image:CavityRe1000.jpg]] | [[Image:CavityRe1000.jpg]] |

## Revision as of 05:17, 24 April 2012

*Dear friends*

*It's just a scrap. Later I'll correct it, although it's a complete working code -- Michail*

Sample program for solving Lid-Driven Cavity Test using SIMPLE-algorithm
**Copyright (C) 2010 Michail Kiričkov ,Lithuania, Marijampole**

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

**Short description**

In this program SIMPLE algorithm on colocated, regular and orthogonal grid is implemented.

Rhie-Chow interpolation is used.

Because it was primarily developing program for learning, there was implemented an output for all variables in the txt format as well as for TECPLOT format.
Structured orthogonal uniform grid is used (now). All variables are saved in array **F(1:nx,1:ny,10)** which mean that 2D array for 10 variables.

Variables **F(:,:,1)** and **F(:,:,2)** represented U and V velocity components, and **F(:,:,4)**represented pressure.

**F(:,:,3)** represents pressure correction.

Arrays **Xc** and **Yc** represents the coordinates of the CV centres, and **X** and **Y** - coordinates of grids nodes

- Main_Cavity.f90 - Main modul
- Common_incld.f90 - include module - the same as icomm_1.f90
- Init_all.f90 - Initiation of arrays
- Grid_rectangular.f90 - Calculation of grid
- Geometry.f90 - Calculation of geometric properties
- Init_all_cavity.f90 - Init data for lid-driven cavity test
- Solve_UV.f90 - Solution of the momentum equations for U and V
- HLPA.f90 - HLPA approximation for convective term
- Solve_Pressure_Correction.f90 - Solution of pressure-correction equation and correction of U,V and P
- TDMA.f90 - Solution of system of linear equations by Thomas method
- Convergence_Criteria.f90 - Calculation of convergence
- Out_array.f90 - Output into the .txt file