Numerical Method Solver: Flow over a bump

This simple case was used to develop and evolve a potential flow solver into a combined incompressible and compressible solver

starting point: potential flow SOlver

The first solver modeled incompressible, irrotational flow using the Laplace equation. Although simplified, this was a cruical starting point for understanding CFD.

What I focused on:

  • Implementing a structured grid

  • Transforming equations into generalized coordinates

  • Solving using Gauss–Seidel point and line relaxation

  • Applying physical boundary conditions (wall tangency, far-field)

This stage was all about learning how to discretize equations, handle grids, and achieve convergence in a stable way

Compressible flow solver

The second project introduced compressibility by solving the full 2D Euler equations, making the simulation much more physically realistic.

What I added:

  • Conservation equations for mass, momentum, and energy

  • Time marching using a 2-stage Runge–Kutta scheme

  • Central differencing with artificial dissipation to stabilize the solution

  • Residual tracking to monitor convergence across all equations

I tested the solver at different Mach numbers, which introduced effects like stronger pressure gradients and nonlinear coupling between variables.

Final code: finite volume solver

The final project upgraded the solver to a modern finite-volume formulation, similar to what is used in industry CFD codes.

Key improvements:

  • Conservative finite-volume approach for better physical accuracy

  • Upwind schemes for improved stability and flow direction handling

  • Second-order accuracy using a flux limiter (Van Leer TVD)

  • Robust boundary conditions based on Riemann invariants

  • Simulations across subsonic, transonic, and supersonic regimes

This solver was capable of capturing sharper gradients and handling more complex flow behavior with improved stability.

Previous
Previous

Starship Ascent CFD