su2code/SU2

MAJOR ISSUES / DEVELOPMENT AREAS

Opened this issue · 1 comments

[WIP]

Because we can only pin up to 3 issues in GitHub, I'm creating this one to track major aspects we need to fix or implement in SU2.
This issue shall only contain the list and a brief description, with links to associated issues and pull requests.
To propose major issues / development areas please use discussion #1486

The purpose of this list is two fold:

  • Direct the efforts of the SU2 Foundation towards addressing these issues, by efforts I mean funds (as they become available).
  • Try to enlist help from the community to start addressing these issues, as much as possible we will try to break these down into "bite sized" chunks.

To be clear, all contributions are welcome, even if they do not fit in one of the categories below.
The main objective here is consolidation, making SU2 do more things well (v&v'd, unit-tested, documented, etc.)

Documentation

Turbulence models

  • Precise documentation of fluid and turbulence models as implemented in SU2, i.e. link to an authoritative reference and highlighting any deviation from it. #1364 #1551
  • Code refactoring to simplify adding turbulence model variants. #1413
  • V&V
  • Scale resolving methods #1120
  • Transition (documentation, tutorial, implementation of additional models) #1496
  • Wall functions (documentation, tutorial testcase) #1204

Validation and Verification

  • V&V of features that lack coverage (i.e. a particular fluid model, design variable, etc.), followed by regression test and ideally tutorial #581
  • Put the V&V cases under regression to ensure they are up to date (similar to what is done with tutorials).

Testing and test cases

  • More unit tests #698
  • Cleanup of TestCases to make them "Minimum working examples" (no redundant options, no duplication of descriptions from the config template, etc.).
  • "Obscure" features ("things that SU2 does" to some extent but are: incomplete, not validated / regression-tested, not documented) cleanup obsolete examples in TestCases, and identify features lacking test coverage, decide what to do with those features.

Code maintenance

  • Better support / documentation for building SU2 directly on Windows. #1468
  • Replacing the legacy output #1316
  • General C++ cleanup #1218
  • Deprecate legacy build system.

Robust convergence

  • Multigrid issues on unstructured grids and less robust with MPI in general e.g. #1362 #1549
  • Reduced stability of fluid-fluid interfaces #1414
  • Reduced stability of periodic boundary conditions #1467
  • Convergence in poor quality meshes, or anisotropically adapted.

Customization

  • More flexible outputs (user-defined #1478, consistent SCREEN and HISTORY #1493, file output frequency #1539)
  • Python wrapper: expose more inputs to allow e.g. time-dependent boundary conditions; tutorials.

Optimization

  • Add SU2_DOT to python wrapper, refactor to use CMeshSolver #1300
  • Allowing more inputs as design variables.
  • Overhaul the entire optimization framework #733
  • Try to use FADO in more cases to assess the impact of removing the existing shape_optimization.py
  • Improve mesh deformation method (maintain quality, prevent intersections, etc.)

Completely new development areas

  • Overset meshes.
  • GPU.
  • Polygonal meshes.
  • Adaptive mesh refinement (some external possibilities possible, e.g. #948).

V&V

Now we have a regression script dedicated to the V&V examples see #1538
I have added a high-lift case to the website (here, and here).
I think that to avoid the issue of outdated files in V&V repo, the best strategy is to add only meshes and documentation to the V&V repo (without duplicating the website). Then anything needed to run the case should be put under regression (via the TestCases and SU2 repos as usual).
If the meshes are too large for GitHub, and are not publicly available elsewhere, we can use the SU2 Foundation Google drive. The config files can be forced to remain updated by running them in --dry_run mode in the V&V regressions.

So I think the next steps would be:

  • Revive the configs of the other V&V cases and put them under regression.
  • Add V&V for other areas.

So if you have ever done any V&V of an SU2 feature not covered yet please consider adding the data to the V&V repo, the results to the website, and creating a minimal regression test for it. If you have never done any V&V, please consider reviving one of the existing ones.