Software:SU2 code

From HandWiki
SU2 code
Stanford University Unstructured Logo.png
Initial releaseJanuary 2012; 12 years ago (2012-01)
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,[1] 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

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

The SU2 tools suite solution suite includes[2]

  • 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[3] approach.
  • Adaptive, goal-oriented mesh refinement and deformation.
  • Modularized [4] C++ object-oriented design.
  • Parallelization with MPI.
  • Python scripts for automation.
  • FEATool Multiphysics features built-in GUI and CLI interfaces for SU2.


Release history

Branch Version Releasedate[5] Improvements
1.0 1.0 2013
1.1 2013
2.0 2.0 2013
2.0.1 2013
2.0.2 2013
2.0.3 2013
2.0.4 2013
2.0.5 2013
2.0.6 2013
2.0.7 2013
2.0.8 2013
2.0.10 2013
3.0 "eagle" 3.0.0 2014
  • Major release, along with SU2_EDU
3.1 "eagle" 3.1.0 2014
3.2 "eagle" 3.2.0 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.
3.2.1 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.
3.2.2 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.
3.2.3 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.
3.2.4 2014
3.2.5 2014
3.2.7 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.
3.2.8 2015
3.2.9 2015
4.0 "Cardinal" 4.0.0 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.
4.0.1 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.
4.0.2 2015
4.1 "Cardinal" 4.1.0 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.
4.1.1 2016
4.1.2 2016
4.1.3 2016
4.2 "Cardinal" 4.2.0 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" 4.3.0 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" 5.0.0 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 bezier 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" 6.0.0 2018
7.0 "Blackbird" 7.0.0 2019 actual 7.1.1 (2021-03-02)
7.1 "Blackbird" 7.1.0 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" 7.2.0 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)
{{{2}}}

License

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).[6]

Alternative software

Free and open-source software

Proprietary software

References

External links

Official resources

Community resources

Other resources