CFD

Computational Fluid Dynamics (CFD) simulations performed with the open source SU2 flow code and other custom-written codes.

NACA 0012 case

Two-dimensional simulations of a NACA0012 airfoil at 10 deg AOA performed on a structured and hybrid mesh with the Spallart-Allmaras and k-ω SST turbulence models. The Roe Riemann solver is used to evaluate the convective fluxes and the MUSCL approach is used to provide 2-nd order accuracy in space.

ONERA case

Two-dimensional simulation of the ONERA bump performed on a structured mesh with the k-ω SST turbulence model. The Roe Riemann solver is used to evaluate the convective fluxes and the MUSCL approach is used to provide 2-nd order accuracy in space.

IMP case

Two-dimensional simulation of the IMP normal shock experiment performed on a structured mesh with the k-ω SST turbulence model. The Roe Riemann solver is used to evaluate the convective fluxes and the MUSCL approach is used to provide 2-nd order accuracy in space.

FVM for 1D advection equation

A FVM MATLAB code solving the 1D advection eqation with different numerical schemes. The available numerical schemes are:

  • Upwind
  • Global Lax-Friedrichs
  • Local Lax-Friedrichs
  • Lax-Wendroff
  • Roe
  • High-order Roe
Different limiters are available for the high-order Roe scheme. High-order is achieved by linear extrapolation of the cell variables to the cell faces. For the 1D advection equation, the Upwind, Local Lax-Friedrich, and Roe schemes give the same solution. Please refer to the schematic on the right for more information.

fvm_1d_advection.m

FVM for shallow water equations

A unstructured finite volume method (FVM) shallow water solver written in C++. Fluxes can be evaluated with the Lax-Friedrichs or the Roe method. Implicit and explicit time stepping is available. Expicit time stepping can be performed with the Euler, the Runge-Kutta 2nd-order, and the Runge-Kutta 4th-order methods. The jacobian used for the implicit time stepping is numerically evaluated and the linear system of equations is solved with the BiCGSTAB method. The Eigen C++ template library for linear algebra is used along with OpenMP. The C++ code is available at https://github.com/KBoychev/fvm_shallow_water. The animations below show the water height of a dam break problem.

FVM for Euler equations

A 2D unstructured finite volume method (FVM) Euler solver written in C++. Fluxes can be evaluated with the Lax–Friedrichs or the Roe method. Explicit pseudo-time stepping is available. Expicit pseudo-time stepping can be performed with the Euler, the Runge-Kutta 2nd-order, and the Runge-Kutta 4th-order methods. The Eigen C++ template library for linear algebra is used along with OpenMP. The C++ code is available at https://github.com/KBoychev/fvm_euler. The figure below shows the pressure around a NACA4412 airfoil with the Roe and RK2 methods (left), the Roe and RK4 methods (middle), and the Lax-Friedrichs and Euler methods (right).

Back to: About