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 solverstarting 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.