Welcome to documentation for the 2D Navier Stokes Solver in Stream Function Vorticity Form

Indices and tables


  • Cartesian Vorticity form of the Equations
  • Helmholtz Hodge Decomposition into a vorticity equation and a stream-function Poisson’s equation.
  • Approximate factorization with lagged variables for the vorticity equations
  • Interior nodes discretized with central 2nd order accurate differences
  • Tri-diagonal vorticity updates in x and y for fast sweeps.
  • Boundary terms handled by augmented (1 sided FD)
  • Gauss-Seidel iteration with successive over-relaxation for the Poisson Update of the scalar stream function.
  • Fortran 90 implementation


Build the executable:

  • make currently requires gfortran
  • assumes you have make tools.
  • cd into the src directory for this project and run:

$ make


Run the included fifi.dat inputs example with

$ ./test fifi.dat test1.out

  • ./test runs the executable
  • fifi.dat is the input file.
  • See fifi.dat for details. Basic plate geometry,

mesh size, and Reynolds number are set. - Courant number can be set here, but the code encourages experimentation with step sizes at runtime. - Suggestions for best results are given based on experience. - Once the code is running, follow the prompts to select time step and SOR factor.


  • plotting of primitive variables u, v, stored in u.dat and v.dat
  • plotting of stream functions stored in strm-func.dat
  • plotting of vorticity stored in vorticity.dat
  • requires Numpy and Matplotlib
  • Run the python file to plot outputs:

$ python 2DCavityPlotTest.py


This version tested on:

  • OSX
  • Linux