CFD

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

NACA 4412 case

Two-and-three-dimensional simulations of a NACA4412 airfoil and wing of AR=6 at 0 deg AOA were performed on a structured and unstructured mesh with the k-ω SST turbulence model. The Roe scheme is used for descretisation of convective fluxes and the MUSCL approach is used to provide 2-nd order accuracy in space in combination with the Venkatakrishnan slope limiter. A standard non-dimensionalisation is used where the reference pressure is chosen such that the non-dimensional free-sream velocity equals 1.

UAV case

Three-dimensional simulations of a fixed-wing UAV at 0 deg AOA and 0 deg AOS featuring NACA4412 and NACA0012 airfoils were performed on a hybrid (structured+unstructured) mesh with the k-ω SST turbulence model. The Roe scheme is used for descretisation of convective fluxes and the MUSCL approach is used to provide 2nd-order accuracy in space in combination with the Venkatakrishnan slope limiter. A standard non-dimensionalisation is used where the reference pressure is chosen such that the non-dimensional free-stream velocity equals 1. Symmetry across the z-x plane is enforced. The total number of mesh elements is around 4 million. The simulation time required for convergence of the aerodynamic loads was approximately 3 hours. The simulation was run on the Google Compute Engine on a c2-standard-16 instance.

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