/su2_time_conv

Time Convergence study using SU2

Primary LanguagePython

SU2 Time Convergence Study : 2 Examples

Overview

Note: The examples used in this study are derived from SU2's Test Cases.

The idea here is to see how quickly SU2's different time integration schemes converge. Examples in this repository show how varying temporal parameters such as TIME_MARCHING, TIME_DISCRE_FLOW, and TIME_STEP affect the convergence rate of the solution to two examples problems employing different numerical methods.

This code includes a time_convergence_study.py script, which iterates through the various configurations tested. Also included, is a script which automates changes to SU2's configuration files (update_ts.py). (N.B., there are two versions of time_convergence_study.py in this repository. Differences between the verions reflect what and how the data is plotted.)

Tests

The example in this repository test the following fields.

  • TIME_MARCHING : DUAL_TIME_STEPPING-1ST_ORDER, DUAL_TIME_STEPPING-2ND-ORDER, TIME_STEPPING
  • TIME_DISCRE_FLOW : EULER_IMPLICIT (default), EULER_EXPLICIT, RUNGE-KUTTA_EXPLICIT
  • SOLVER : FEM_NAVIER_STOKES, NAVIER_STOKES
  • NUM_METHOD_GRAD : GREEN_GAUSS, WEIGHTED_LEAST_SQUARES
  • NUM_METHOD_FLOW and NUM_METHOD_FEM_FLOW : DG, JST, ROE

Only able to employ Implicit methods in the laminar flat plate flow example due to periodic boundary conditions. Explicit methods caused the solution to diverge (related to this issue).

Objectives

  • To better understand SU2's time integration methods and their convergence rates.
  • To understand where and how SU2's time integration methods could improve.
  • To grow more familiar with how SU2 works and what the respository can do currently.
  • To learn more about time integration methods used with Finite Volume Methods (and Discontinuous Galerkin Methods)

Code Requirements

  • SU2 v. 7.2.1
    • Must be configured with mpi enabled.
  • openmpi
  • scipy
  • pandas
  • numpy
  • matplotlib

To Run the examples

Run time_convergence_study.py. The examples output Paraview .vtu files. You may want to modify the number of processes (nRank) for mpirun.

Examples

Unsteady Laminar Flow - Flat Plate (with periodic boundary conditions)

Based on this problem in SU2's Tutorials

Parameters (see config file for more detail)

  • Flow: Unsteady (TIME_DOMAIN = YES), ideal, subsonic flow with constant viscosity and conductivity
    • Boundary Conditions: periodic
    • Mesh: flat plate
  • Numerical : ROE numerical method,
    • SOLVER : FEM_NAVIER_STOKES (for DG) and NAVIER_STOKES
    • TIME_MARCHING : (varies) TIME_STEPPING, DUAL_TIME_STEPPING-1ST_ORDER, DUAL_TIME_STEPPING-2ND_ORDER
    • TIME_ITER : 1 (increase for more time steps)
    • TIME_DISCRE_FLOW : EULER_IMPLICIT
    • Time Convergence Field: RMS_ENERGY

Figures

TIME_MARCHING Figure
Dual Time Stepping (DTS) - 1st Order Dual-1st
Dual Time Stepping (DTS) - 2nd Order Dual-2nd
Steady State (SST) SST
Comparison all_unst
  • Multiple Time Steps (5 here)
TIME_MARCHING Figure
DTS - 1st Order Dual-1st
DTS - 2nd Order Dual-2nd
SST SST
Comparison all_unst

Conclusions

Unsteady Navier Stokes Flow over a Cylinder

Parameters (see config file for more detail)

  • Flow: Unsteady (TIME_DOMAIN = YES), ideal, subsonic flow with constant viscosity and conductivity
    • Boundary Conditions: Farfield Boundary Markers
    • Mesh: cylinder
  • Numerical :
    • SOLVER : FEM_NAVIER_STOKES (for DG) and NAVIER_STOKES
    • TIME_MARCHING : (varies) TIME_STEPPING, DUAL_TIME_STEPPING-1ST_ORDER, DUAL_TIME_STEPPING-2ND_ORDER
    • TIME_ITER : 1 (increase for more time steps)
    • TIME_DISCRE_FLOW or TIME_DISCRE_FEM_FLOW : EULER_IMPLICIT, EULER_EXPLICIT, RUNGE-KUTTA_EXPLICIT
    • Time Convergence Field: TAVG_COMBO

Figures

  • JST

JSTDual-1st JSTDual-2nd JST

  • ROE

ROE+WLSDual-1st ROE+WLSDual-2nd ROE+WLS

Conclusions

  • TIME_STEPPING scheme does not appear to care about convergence. Merely attempts one inner iter per time step.
  • DUAL_TIME_STEPPING-2ND_ORDER converges slightly faster than DUAL_TIME_STEPPING-2ND_ORDER
  • Explicit methods converge faster than Implicit Methods (though that might be at the expense of accuracy or computational cost).
  • JST converges faster than ROE

Future Work

  • Test on more unsteady example problems (e.g., incompressible flow, NACA0012, Turbulent Flat Plate).
  • Try flat plate with non-periodic boundary conditions.
  • Estimate the error.
  • Implement MMS to verify the solutions (unsteady MMS is not yet available in SU2).
  • Increase number of time steps (limited by processing speed on my computer at the moment).

References