Jump to content

SU2 code

From Wikipedia, the free encyclopedia

SU2 code
Initial releaseJanuary 2012; 12 years ago (2012-01)
Stable release
8.1.0[1] / 28 September 2024; 2 months ago (28 September 2024)
Repository
Written inC++, Python
Operating systemUnix/Linux/OS X/Windows
TypeComputational fluid dynamics, Simulation software
LicenseGNU Lesser General Public License, version 2.1
Websitesu2code.github.io

SU2 is a suite of open-source software tools written in C++ for the numerical solution of partial differential equations (PDE) and performing PDE-constrained optimization. The primary applications are computational fluid dynamics and aerodynamic shape optimization,[2] but has been extended to treat more general equations such as electrodynamics and chemically reacting flows. SU2 supports continuous and discrete adjoint for calculating the sensitivities/gradients of a scalar field.

Developers

[edit]

SU2 is being developed by individuals and organized teams around the world. The SU2 Lead Developers are: Dr. Francisco Palacios and Dr. Thomas D. Economon.

The most active groups developing SU2 are:

Capabilities

[edit]

The SU2 tools suite solution suite includes[3]

  • High-fidelity analysis and adjoint-based design using unstructured mesh technology.
  • Compressible and incompressible Euler, Navier-Stokes, and RANS solvers.
  • Additional PDE solvers for electrodynamics, linear elasticity, heat equation, wave equation and thermochemical non-equilibrium.
  • Convergence acceleration (multi-grid, preconditioning, etc.).
  • Sensitivity information via the continuous adjoint methodology[4] approach.
  • Adaptive, goal-oriented mesh refinement and deformation.
  • Modularized[5] C++ object-oriented design.
  • Parallelization with MPI.
  • Python scripts for automation.
  • FEATool Multiphysics features built-in GUI and CLI interfaces for SU2.

Release history

[edit]
Branch Version Releasedate[6] Improvements
1.0 Old version, no longer maintained: 1.0 28 June 2013
Old version, no longer maintained: 1.1 28 June 2013
2.0 Old version, no longer maintained: 2.0 28 June 2013
Old version, no longer maintained: 2.0.1 28 June 2013
Old version, no longer maintained: 2.0.2 28 June 2013
Old version, no longer maintained: 2.0.3 28 June 2013
Old version, no longer maintained: 2.0.4 28 June 2013
Old version, no longer maintained: 2.0.5 28 June 2013
Old version, no longer maintained: 2.0.6 12 August 2013
Old version, no longer maintained: 2.0.7 11 September 2013
Old version, no longer maintained: 2.0.8 30 September 2013
Old version, no longer maintained: 2.0.10 11 September 2013
3.0 "eagle" Old version, no longer maintained: 3.0.0 15 January 2014
  • Major release, along with SU2_EDU
3.1 "eagle" Old version, no longer maintained: 3.1.0 14 August 2014
3.2 "eagle" Old version, no longer maintained: 3.2.0 14 August 2014
  • Renamed C++ modules for clarity:
  • * SU2_DDC ---> SU2_PRT
  • * SU2_MDC ---> SU2_DEF
  • * SU2_MAC ---> SU2_MSH
  • * SU2_GDC ---> SU2_GEO
  • * SU2_GPC ---> SU2_DOT
  • Stricter checking and improved error messages for robust parsing of configuration options.
  • Unified set of SU2 test cases (meshes and config. files) are now available on GitHub (https://github.com/su2code/TestCases).
  • Major updates to the MPI implementation that improve performance and align with the MPI 3.0 standard.
  • Modifications that greatly enhance computational efficiency and memory scalability of mesh partitioning for parallel calculations.
  • New constant lift mode. Specify a target lift coefficient rather than a fixed angle of attack.
  • Upgrades to the CGNS mesh reader for further support of mixed-element meshes.
  • General bug fixes and maintenance.
Old version, no longer maintained: 3.2.1 8 September 2014
  • Additional verification test cases for shape design using the compressible adjoint capability (in collaboration with Lockheed Martin).
  • Preliminary structure for the simulation of real gases (in collaboration with TuDelft and Politecnico di Milano).
  • New FFD design variables (in collaboration with Volkswagen).
  • New preconditioners and smoothers for implicit time integration (in collaboration with Intel).
  • Simplified configuration options (in collaboration with the large SU2 users community. Thanks!).
  • General bug fixes and maintenance.
Old version, no longer maintained: 3.2.2 28 September 2014
  • SU2 version 3.2.2 includes general bug fixes and maintenance.
  • The Pointwise and SU2 joint workshop (Sept 29th-30th, 2014) is based on this release.
Old version, no longer maintained: 3.2.3 22 October 2014
  • Improved multigrid agglomeration algorithm.
  • United States customary units (US).
  • Improved I/O.
  • New smoothers and preconditioners for the implicit formulation.
  • Simplified configuration options.
  • General bug fixes and maintenance.
Old version, no longer maintained: 3.2.4 9 November 2014
Old version, no longer maintained: 3.2.5 4 December 2014
Old version, no longer maintained: 3.2.7 27 December 2014
  • New MPI implementation (only one .su2 mesh file per rank).
  • Improved multigrid (including Full MG).
  • Code optimization using the analyze tool (Xcode).
  • Simplified configuration options.
  • General bug fixes and maintenance.
Old version, no longer maintained: 3.2.8 3 February 2015
Old version, no longer maintained: 3.2.9 4 March 2015
4.0 "Cardinal" Old version, no longer maintained: 4.0.0 23 June 2015

New Features:

  • Non-ideal compressible fluid flows (NICFD): Van der Waals and Peng-Robinson equations of state.
  • Fully parallel preprocessing with ParMETIS.
  • SA-neg turbulence model.
  • Adaptive CFL.
  • Easily generate FFD boxes with new options.
  • Force breakdown file and FieldView output.
  • Scale, rotate, translate meshes in SU2_DEF.
  • Iterative smoothers: Jacobi, LU-SGS, ILU (0).
  • Updated non-dimensionalization options for ease of use.
  • General bug fixes.

Performance Improvements:

  • MPI and general performance improvements.
  • Increased mesh deformation stability for all unstructured mesh elements.
  • CGNS parallel partitioning improvements.
  • Automated multigrid parameter selection.
  • Increased robustness for upwind methods.
  • Low-storage output mode.

Additional Updates:

  • Updated documentation on the GitHub wiki, including user tutorials and new developer information.
  • New regression test system integrated with Travis CI.
Old version, no longer maintained: 4.0.1 1 September 2015
  • Improved performance for scaling, rotating, translating meshes using SU2_DEF.
  • Configuration file option MATH_PROBLEM now requires CONTINUOUS_ADJOINT instead of ADJOINT.
  • New datatype abstraction for future flexibility: all current and future double types in the code should be the new su2double type.
  • New MPI wrapper abstraction for future flexibility.
  • Restructuring of the test case suite: the configuration files for the TestCases repository now live in a mirrored directory structure under the SU2 repository in order to make automatic testing with Travis CI more effective. To use, download both repositories and recursively copy the contents of one TestCases/ directory into the other to complete the set.
  • Clean up of the build-from-source process, including file placement and default build settings.
  • New compile flag options for including the HDF5, SZIP, and ZLIB external libraries, which enables HDF5-based CGNS file usage with SU2.
  • General bug fixes and code maintenance.
Old version, no longer maintained: 4.0.2 3 November 2015
4.1 "Cardinal" Old version, no longer maintained: 4.1.0 22 April 2016
  • Algorithmic Differentiation for exact derivative computations throughout the code.
  • Discrete adjoint implementation for the Euler, Navier-Stokes, and RANS equations.
  • New adjoint outlet boundary conditions for treating downstream functionals.
  • High-level driver classes for easily formulating multi-physics problems.
  • Generalized Riemann flow boundary condition, including real gas effects.
  • New finite element class library for future flexibility.
  • Modifications to the source code for easier compilation on Windows.
  • General bug fixes and performance improvements.
Old version, no longer maintained: 4.1.1 5 April 2016
Old version, no longer maintained: 4.1.2 22 April 2016
Old version, no longer maintained: 4.1.3 24 May 2016
4.2 "Cardinal" Old version, no longer maintained: 4.2.0 15 June 2016
  • Native Fluid-Structure Interaction (FSI) solver.
  • Unsteady discrete adjoint for the Euler, Navier-Stokes, and RANS equations.
  • Increased robustness of the pseudo-structural mesh deformation routines.
  • Memory and efficiency improvements related to parallel file readers, mesh partitioning, and class data management.
  • Expanded regression suite coverage to additional modules and new test cases.
  • Improved solution output for RANS visualization.
  • General bug fixes and performance improvements.
4.3 "Cardinal" Old version, no longer maintained: 4.3.0 22 August 2016
  • Redesign of the high-level Driver classes for code clarity and future flexibility.
  • Alternating digital tree (ADT) implementation for efficient geometric searches.
  • Stability improvements for the periodic boundary condition implementation.
  • Improved memory management and leak removal throughout the entire codebase.
  • CGNS v3.3.0 now distributed and automatically integrated with the autotools build.
  • Additional bug fixes, stability improvements, and general code maintenance.
5.0 "Raven" Old version, no longer maintained: 5.0.0 20 January 2017
  • New in-memory Python wrapping of SU2 using SWIG with accompanying high-level API.
  • Class enhancements for multiphysics applications, including interpolation and transfer.
  • Free-form deformation (FFD) extensions, including Bézier curves and improved usability.
  • Reorganization of the incompressible solver for future expansion.
  • Harmonic Balance flow analysis capability.
  • Algebraic transition model implementation.
  • More and better boundary conditions (accuracy and convergence improvements).
  • Extensions to scripting for automated database creation (compute_polar.py).
  • Critical improvements in I/O, including more feedback to the user.
  • Additional bug fixes, stability improvements, and general code maintenance.
6.0 "Falcon" Old version, no longer maintained: 6.0.0 14 February 2018
7.0 "Blackbird" Old version, no longer maintained: 7.0.0 29 November 2019 actual 7.1.1 (2021-03-02)
7.1 "Blackbird" Old version, no longer maintained: 7.1.0 21 January 2021

SU2 v7.1.0 aims to consolidate the new features added in versions 7.0.X. Those include new solvers, performance upgrades, new output formats, more multiphysics capabilities, tweaks/fixes/updates to models and schemes used less often, and an effort to restructure the code to make it more accessible to new developers. Some options that became redundant in v7.0.0 were removed which may result in errors for older configuration files, the error messages should point the solution to these problems.

🚀 Features

  • NEMO – Link with mutation++ @CatarinaGarbacz (#1160); Addition of Source Terms for Axisymmetric Flows @jtneedels (#1162); Transition to primitive limiter @WallyMaier (#1139)
  • Reduce discrete adjoint memory usage ~25% @pcarruscag (#1159)
  • Support for UQ and NICF with vectorized (SIMD) centered schemes @pcarruscag (#1149)
  • BC Transition Model Term2 update @sametcaka (#1132)
  • Added prevention of intersections in grid elements after deformation @tollennaert (#1076)
  • Viscous source terms for axisymmetric problems and generalised convective source terms and jacobian @FlorianDm (#1106)

💊 Bug Fixes

  • Fix objective functions (for shape_optimization.py) @pcarruscag (#1167)
  • NEMO – Restructure source residual computation to fix axisymmetric chemsitry/vib source computation @jtneedels (#1170)
  • Fix MSW @pcarruscag (#1166), update adaptive CFL @bmunguia (#1036), fix compilation with gcc 4.8 @pcarruscag (#1157)
  • Deprecate options that did not work since v7.0.0, and other minor cleanups @TobiKattmann (#1129)

🔧 Maintenance

  • Bsend -> Isend on ActDisk and Nearfield methods @pcarruscag (#1163)
  • Update Area computations with the geometry toolbox @WallyMaier (#1137)
  • Removing the tabs in all files @WallyMaier (#1135)
  • Restructure MPI wrapper, move more files to directories @pcarruscag (#1133)
  • Remove mapping of global<->local marker IDs @maxaehle (#1169)
  • Fix Xcode project and paths @EduardoMolina (#1145)
  • NEMO – Further cleanup and improvements @WallyMaier (#1117)
  • Added CSquareMatrixCM to the toolboxes @vdweide (#1068)
7.2 "Blackbird" Old version, no longer maintained: 7.2.0 17 August 2021 SU2 version 7.2.0 introduces exciting new features and improvements (it differs from 7.1.1 by almost 1000 commits!) We made a pause from the monthly maintenance-release cycle to integrate those features as best as possible, they include:
  • Unsteady discrete adjoints for multizone problems (e.g. FSI and CHT).
  • Hybrid parallelization (MPI + OpenMP) of discrete adjoint solvers.
  • New boundary conditions and important corrections to RANS wall functions and transition models.
  • Usability improvements, such as speeding up the NEMO preprocessing for large problems, restarting from results on non-matching grids, suggestions for incorrect config options, etc.
  • Numerous fixes based on feedback from the SU2 community.

As with 7.1.0, we used this version to deprecate some more options leftover from 7.0.0, and to revise others in preparation for new features to come.

🚀 Features

  • NEMO – Improvements on the Preprocessing phase and inclusion of Chapmann-Enskog for Mutation++ @fmpmorgado (#1343)
  • Hybrid Parallel AD (Part 3/?) @jblueh (#1294)
  • Heat Transfer boundary condition @oleburghardt (#1226)
  • Feature libROM for reduced-order modeling @jtlau (#1310)
  • Fix SA and SST wall functions @bigfooted (#1204)
  • CFVMOutput & Streamwise+spanwise periodic @TobiKattmann (#1290)
  • Hybrid Parallel AD (Part 2/?) @pcarruscag (#1284)
  • Discrete adjoint for dynamic FSI using multizone driver @cvencro (#1260)
  • Interpolate restart file when it does not match the mesh @pcarruscag (#1277)
  • "Did you mean...?" (make config errors more helpful) @pcarruscag (#1269)
  • Multigrid output @pcarruscag (#1266)
  • Fix dissipation in transition model and update inlet profile (initial profile from config) @bigfooted (#1268)
  • Hybrid Parallel AD (Part 1/?) @jblueh (#1214)
  • Linear solver changes to support hybrid parallel AD @pcarruscag (#1228)
  • Fixed values for turbulence quantities in upstream half-plane @maxaehle (#1236)
  • Velocity transfer at fluid-structure interface @cvencro (#1174)

💊 Bug Fixes

  • Fix the neighbor-finding in CInterpolator::ReconstructBoundary @maxaehle (#1346)
  • Fix equivalent area calculation @snow54 (#1329)
  • Fix sliding mesh for SA @maxaehle (#1344)
  • Fix "per-surface" outputs @pcarruscag (#1341)
  • SU2-NEMO – Optimize initialization time @fmpmorgado (#1340)
  • Fix for axisymmetric terms in NEMO + general NEMO updates @WallyMaier (#1326)
  • Fix download link for binaries @Nat-1 (#1320)
  • Fix inverse design Cp function @pcarruscag (#1311)
  • Fix fixed CL mode when sideslip is not 0 @pcarruscag (#1302)
  • Fix restart logic in python FSI @Nicola-Fonzi (#1295)
  • Fix dual time restarts with UNST_CFL_NUMBER != 0 @pcarruscag (#1272)
  • Fix restart file writing for time convergence and 2nd order time-stepping @ScSteffen (#1237)
  • Fix inlet profile file loading when not restarting unsteady problems @pcarruscag (#1264)
  • Fixes in history output for time-averaged and multizone problems @cvencro (#1259)
  • Fix memory leaks in CHeatSolver @maxaehle (#1256)
  • Fix some reconstruction gradient issues on periodic boundaries (when NUM_METHOD_GRAD != NUM_METHOD_GRAD_RECON)) @pcarruscag (#1249)
  • Small adjoint fixes @pcarruscag (#1224)

🔧 Maintenance

  • Delete dead-code for "nearfield" and "interface" boundaries @pcarruscag (#1351)
  • Updating some dates @WallyMaier (#1339)
  • Another charge against pointer to pointer @pcarruscag (#1312)
  • Class for cubic splines @pcarruscag (#1303)
  • CFVMOutput & Streamwise+spanwise periodic @TobiKattmann (#1290)
  • Add unsteady cht adjoint testcase @TobiKattmann (#1288)
  • New data structure for multidimensional data (+some bugfixes) @maxaehle (#1286)
  • Chore in CHeatSolver.cpp @TobiKattmann (#1281)
  • Chore in discrete adjoint bits @TobiKattmann (#1257)
  • Fixing version numbers @WallyMaier (#1271)
  • Part 2: Make enum -> enum class @TobiKattmann (#1258)
  • Make "enum" : "enum class" thus removing enum numbers @TobiKattmann (#1242)
  • Remove Visual Studio project @pcarruscag (#1247)
  • Some fixes / cleanup of CONV_CRITERIA which has no effect and will be deprecated in 7.2.0 @TobiKattmann (#1238)
  • Cleanup COption duplication @pcarruscag (#1232)
  • Cleanup more pointers @pcarruscag (#1225)
  • Removed CSolver::Convective_Residual @maxaehle (#1222)
8.0 "Harrier" Old version, no longer maintained: 8.0.0 29 August 2023 actual 8.1.0 (2024-09-28)
8.1 "Harrier" Current stable version: 8.1.0 28 September 2024

Experimental Features

  • CoDiPack Update by @jblueh in #2228
  • Improved Tape Statistics by @jblueh in #2235
  • Added gprof profiling option by @EvertBunschoten in #2243
  • Feature new flamelet: addition of preferential diffusion by @EvertBunschoten in #2156
  • Address sanitizer tests in the CI pipeline by @jblueh in #2246
  • Custom inlets via python wrapper by @pcarruscag in #2296
  • Compressibility correction for SST model by @sun5k in #2271
  • Change lower limit of SST variables by @emaberman in #2323
  • Supersonic inlet profile by @pcarruscag in #2327
  • SA 2D axisymmetric source terms by @Corentinthomee in #2197
  • Solid to solid conjugate heat transfer by @EvertBunschoten in #2152
  • [WIP] Update turbo interfaces by @joshkellyjak in #2209
  • Fix marker engine inflow by @BerkeCan97 in #2278
  • Signal handling - SIGTERM will stop calculation and force file saving by @bigfooted in #2110
  • Extending CFL adapt to include species transport by @Cristopher-Morales in #2298
  • Feature turbo interfaces by @joshkellyjak in #2349

Bug Fixes

  • Improved look-up table query scaling with variable count by @EvertBunschoten in #2214
  • Workaround for ASLR/tsan incompatibility by @jblueh in #2242
  • Fix update of dual-time solver for species transport. by @bigfooted in #2260
  • Fix bug in inlet profile writer. by @bigfooted in #2267
  • Update to start volume averaging after StartWindowIteration. by @ShiheJia in #2252
  • Fix SU2_DOT without DV vars by @pcarruscag in #2270
  • Fix CHT boundary problem for flamelet computations by @Cristopher-Morales in #2283
  • Fix Aachen turbine test case by @jblueh in #2293
  • Revert test cases branch by @jblueh in #2314
  • Fixes to turbo monitor by @joshkellyjak in #2320
  • Fix CFL Turbulence reduction option for adaptive cfl by @emaberman in #2295
  • Correction of symmetry plane implementation by @bigfooted in #2194
  • Fix hllc jacobians by @pcarruscag in #2339
  • ASLR fix no longer needed by @jblueh in #2341
  • Show error message when FLUID_MIXTURE is used with KIND_SCALAR_MODEL = NONE by @Cristopher-Morales in #2345
  • Fix loop variable privatization by @jblueh in #2350
  • Corrections to SA implementation by @rois1995 in #2352

Maintenance

  • Bump actions/checkout from 3 to 4 by @dependabot in #2133
  • Update turbomachinery testcases and regression tests by @alecappiello in #2158
  • adding to history output residuals for multizone for species flamelet solver by @Cristopher-Morales in #2269
  • change MPI_QUANTITIES to enum class by @bigfooted in #2279
  • Removing unnecessary variables for CFluidScalar constructor by @Cristopher-Morales in #2357
  • AD tool updates by @jblueh in #2351
Legend:
Old version, not maintained
Old version, still maintained
Latest version
Latest preview version
Future release

License

[edit]

SU2 is free and open source software, released under the GNU General Public License version 3 (SU2 v1.0 and v2.0) and GNU Lesser General Public License version 2.1 (SU2 v2.0.7 and later versions).[7]

Alternative software

[edit]

Free and open-source software

[edit]

Proprietary software

[edit]

References

[edit]
  1. ^ "Release 8.1.0". 28 September 2024. Retrieved 27 October 2024.
  2. ^ F. Palacios, M. R. Colonno, A. C. Aranake, A. Campos, S. R. Copeland, T. D. Economon, A. K. Lonkar, T. W. Lukaczyk, T. W. R. Taylor, and J. J. Alonso, "Stanford University Unstructured (SU2): An open-source integrated computational environment for multi-physics simulation and design", AIAA Paper 2013-0287, 51st AIAA Aerospace Sciences Meeting and Exhibit. January 7th – 10th, 2013. Grapevine, Texas, USA.
  3. ^ SU2 about page
  4. ^ A. Bueno-Orovio, C. Castro, F. Palacios, and E. Zuazua "Continuous Adjoint Approach for the Spalart-Allmaras Model in Aerodynamic Optimization", AIAA Journal Vol. 50, No. 3, March 2012.
  5. ^ SU2 tools list
  6. ^ "SU2-Suit releases". Github.com. Retrieved 25 May 2016.
  7. ^ SU2 Licensing Page
  8. ^ Advanced Simulation Library Homepage
  9. ^ Clawpack homepage
  10. ^ FreeFem++ website
  11. ^ OpenFVM homepage
  12. ^ Palabos homepage
  13. ^ Azore Software, LLC Home Page
  14. ^ FEATool Multiphysics homepage
  15. ^ SimScale company website, Open Source
  16. ^ Software Cradle Co., Ltd. Home Page
  17. ^ SC/Tetra Page
  18. ^ scSTREAM Page Archived 6 March 2015 at the Wayback Machine
  19. ^ Heat Designer Page
[edit]

Official resources

[edit]

Community resources

[edit]

Other resources

[edit]