2D Vorticity–Streamfunction CFD Simulator

Partial Differential Equations
Computational Fluid Dynamics
Spatial Discretization
Time Integration
Runge–Kutta Methods
Python
Fortran
2D Vorticity–Streamfunction CFD Simulator

Description

This project is a full-featured 2D incompressible flow simulator built around the vorticity–streamfunction formulation of the Navier–Stokes equations. A Fortran backend handles the numerical core, while a Python frontend provides a GUI for configuring the computational domain, physical parameters, solver settings, and obstacle geometry. The result is a compact but substantial CFD environment that combines lower-level numerical implementation with accessible experiment control.

The simulator supports multiple explicit Runge–Kutta methods for time integration, several classical Poisson solvers, and a broad visualization pipeline for both field quantities and integral diagnostics. Rather than serving as a black-box app, the project functions as a numerical testbed for studying solver behavior, flow structure, and derived aerodynamic quantities in two-dimensional incompressible settings.

  • Implemented a vorticity–streamfunction formulation for 2D incompressible Navier–Stokes flow with optional circular obstruction.
  • Built a Fortran numerical backend paired with a Python GUI frontend for experiment setup and result inspection.
  • Added multiple time integrators including Euler, Heun, RK4, RK6, and RK8.
  • Supported classical Poisson solver choices including Jacobi, Gauss–Seidel, and SOR.
  • Generated full-field visualizations and scalar diagnostics including lift, drag, pressure drop, enstrophy, circulation, and kinetic energy.

Highlights and Learning Experiences

Flow field visualization

Velocity magnitude, streamfunction contours, vorticity, and relative pressure fields for 2D incompressible flow configurations.

Solver and geometry configuration

GUI-based setup for domain size, resolution, viscosity, solver choices, and optional cylindrical obstruction.

Time-history diagnostics

Lift, drag, pressure drop, enstrophy, circulation, kinetic energy, and flow-rate tracking over time.


    Sreeram Shankar — Portfolio