From 88ac99fab2727b203b8950066bfe7e03b3b01a6d Mon Sep 17 00:00:00 2001 From: Nijso Date: Thu, 15 Jan 2026 23:38:58 +0100 Subject: [PATCH 01/15] Update tutorial title for clarity --- _tutorials/incompressible_flow/Inc_Urban_City/Inc_Urban_City.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_tutorials/incompressible_flow/Inc_Urban_City/Inc_Urban_City.md b/_tutorials/incompressible_flow/Inc_Urban_City/Inc_Urban_City.md index 353bef12..86196417 100644 --- a/_tutorials/incompressible_flow/Inc_Urban_City/Inc_Urban_City.md +++ b/_tutorials/incompressible_flow/Inc_Urban_City/Inc_Urban_City.md @@ -1,5 +1,5 @@ --- -title: unsteady pollutant dispersion in a city +title: Wind velocity and pollutant dispersion in a city permalink: /tutorials/Inc_Urban_City/ written_by: Nijso Beishuizen for_version: 8.4.0 From 58ba6a5807524eaf08d1e6751a65437e2e8a2190 Mon Sep 17 00:00:00 2001 From: Nijso Date: Tue, 20 Jan 2026 20:06:57 +0100 Subject: [PATCH 02/15] Update resource links to use 'develop' branch (#198) --- _tutorials/multiphysics/TFC_python/TFC_python.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_tutorials/multiphysics/TFC_python/TFC_python.md b/_tutorials/multiphysics/TFC_python/TFC_python.md index 819403b5..c68c858b 100644 --- a/_tutorials/multiphysics/TFC_python/TFC_python.md +++ b/_tutorials/multiphysics/TFC_python/TFC_python.md @@ -27,7 +27,7 @@ In this tutorial we will touch upon the following aspects: ## Resources -The resources for this tutorial can be found in the [TFC_python](https://github.com/su2code/Tutorials/tree/master/multiphysics/TFC_python) directory in the [tutorial repository](https://github.com/su2code/Tutorials). You will need the configuration file ([psi.cfg](https://github.com/su2code/Tutorials/tree/master/multiphysics/TFC_python/adiabatic/psi.cfg)) and the mesh file ([psi.su2](https://github.com/su2code/Tutorials/tree/master/multiphysics/TFC_python/adiabatic/psi.su2)). Additionally, the Gmsh geometry is also provided so you can recreate the mesh yourself: [psi.geo](https://github.com/su2code/Tutorials/tree/master/multiphysics/TFC_python/psi.geo). Files for the non-adiabatic case are in the folder [enthalpy](https://github.com/su2code/Tutorials/tree/master/multiphysics/TFC_python/enthalpy) and files for the case with source term quenching and custom wall boundary conditions are in the folder [quench](https://github.com/su2code/Tutorials/tree/master/multiphysics/TFC_python/quench) +The resources for this tutorial can be found in the [TFC_python](https://github.com/su2code/Tutorials/tree/develop/multiphysics/TFC_python) directory in the [tutorial repository](https://github.com/su2code/Tutorials). You will need the configuration file ([psi.cfg](https://github.com/su2code/Tutorials/tree/develop/multiphysics/TFC_python/adiabatic/psi.cfg)) and the mesh file ([psi.su2](https://github.com/su2code/Tutorials/tree/develop/multiphysics/TFC_python/adiabatic/psi.su2)). Additionally, the Gmsh geometry is also provided so you can recreate the mesh yourself: [psi.geo](https://github.com/su2code/Tutorials/tree/develop/multiphysics/TFC_python/psi.geo). Files for the non-adiabatic case are in the folder [enthalpy](https://github.com/su2code/Tutorials/tree/develop/multiphysics/TFC_python/enthalpy) and files for the case with source term quenching and custom wall boundary conditions are in the folder [quench](https://github.com/su2code/Tutorials/tree/develop/multiphysics/TFC_python/quench) ### Background @@ -55,7 +55,7 @@ Note that the python wrapper (or your python setup) might need additional python The geometry of this testcase is provided as a gmsh file and matches the of the experimental setup of Griebel et al (2007), [doi](https://doi.org/10.1016/j.proci.2006.07.042). -The mesh consists of a a coarse structured mesh with 16.3k cells and 16.6k points. The mesh was created using Gmsh and the configuration file to create the mesh can be found here: [psi.geo](https://github.com/su2code/Tutorials/tree/master/multiphysics/TFC_python/psi.geo). The only thing you need to do to create a mesh from the geometry is start Gmsh, and then load the .geo file. You will then see the geometry in the Gmsh visualization window. If you click on *Mesh->2D* the 2D mesh will be generated. You can then export the mesh as a .su2 file by choosing *File->Export*. The mesh will automatically be saved in su2 format when the filename has been given the extension .su2. In general, you should not choose *save all elements* because this will also save additional points that were used to construct the geometry but are not part of the final mesh, like for example the center of a circle. +The mesh consists of a a coarse structured mesh with 16.3k cells and 16.6k points. The mesh was created using Gmsh and the configuration file to create the mesh can be found here: [psi.geo](https://github.com/su2code/Tutorials/tree/develop/multiphysics/TFC_python/psi.geo). The only thing you need to do to create a mesh from the geometry is start Gmsh, and then load the .geo file. You will then see the geometry in the Gmsh visualization window. If you click on *Mesh->2D* the 2D mesh will be generated. You can then export the mesh as a .su2 file by choosing *File->Export*. The mesh will automatically be saved in su2 format when the filename has been given the extension .su2. In general, you should not choose *save all elements* because this will also save additional points that were used to construct the geometry but are not part of the final mesh, like for example the center of a circle. ### Configuration File Options From a311b464cf183ff1502920fb1e564ff51251cdaf Mon Sep 17 00:00:00 2001 From: Nijso Date: Tue, 20 Jan 2026 20:08:36 +0100 Subject: [PATCH 03/15] Update resource links in Inc_Urban_City.md (#199) --- _tutorials/incompressible_flow/Inc_Urban_City/Inc_Urban_City.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_tutorials/incompressible_flow/Inc_Urban_City/Inc_Urban_City.md b/_tutorials/incompressible_flow/Inc_Urban_City/Inc_Urban_City.md index 86196417..78a43d65 100644 --- a/_tutorials/incompressible_flow/Inc_Urban_City/Inc_Urban_City.md +++ b/_tutorials/incompressible_flow/Inc_Urban_City/Inc_Urban_City.md @@ -26,7 +26,7 @@ In this tutorial we will look at the modeling of wind speed and pollutant disper ## Resources -The resources for this tutorial can be found in the [incompressible_flow/Inc_Urban_City](https://github.com/su2code/Tutorials/tree/master/incompressible_flow/Inc_Urban_City) directory in the [tutorial repository](https://github.com/su2code/Tutorials). +The resources for this tutorial can be found in the [incompressible_flow/Inc_Urban_City](https://github.com/su2code/Tutorials/tree/develop/incompressible_flow/Inc_Urban_City) directory in the [tutorial repository](https://github.com/su2code/Tutorials). ### Background From 59bed6e902529b612258dc0ee08f0689dd6956ae Mon Sep 17 00:00:00 2001 From: Nijso Date: Tue, 20 Jan 2026 20:10:34 +0100 Subject: [PATCH 04/15] Fix tutorial link in NICFD nozzle documentation (#200) Updated the tutorial link to point to the correct URL for the NICFD nozzle tutorial. --- .../compressible_flow/NICFD_nozzle/NICFD_nozzle_datadriven.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_tutorials/compressible_flow/NICFD_nozzle/NICFD_nozzle_datadriven.md b/_tutorials/compressible_flow/NICFD_nozzle/NICFD_nozzle_datadriven.md index 62c23885..6bac3dcf 100644 --- a/_tutorials/compressible_flow/NICFD_nozzle/NICFD_nozzle_datadriven.md +++ b/_tutorials/compressible_flow/NICFD_nozzle/NICFD_nozzle_datadriven.md @@ -11,7 +11,7 @@ follows: ## Goals -Upon completing this tutorial, the user will be familiar with performing simulations of nonideal compressible fluids through the use of physics-informed neural networks. The flow is simulated through the same supersonic convergent-divergent nozzle as in the [tutorial](NICFD_nozzle.md) for nonideal compressible fluid flows. +Upon completing this tutorial, the user will be familiar with performing simulations of nonideal compressible fluids through the use of physics-informed neural networks. The flow is simulated through the same supersonic convergent-divergent nozzle as in the [tutorial](https://su2code.github.io/tutorials/NICFD_nozzle/) for nonideal compressible fluid flows. The following capabilities of will be showcased in this tutorial: - Using [SU2 DataMiner](https://github.com/EvertBunschoten/SU2_DataMiner.git) to train physics-informed neural networks for fluid simulations. - Data-driven equation of state with multi-layer perceptrons. From 34a792f827cc6e7afca4d72feb8dede9cbf08798 Mon Sep 17 00:00:00 2001 From: Nijso Date: Tue, 20 Jan 2026 21:07:08 +0100 Subject: [PATCH 05/15] fix links (#201) --- _data/tutorials.yml | 1 + .../ActuatorDisk_VariableLoad.md | 28 +++++++++---------- _tutorials/index.md | 2 ++ 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/_data/tutorials.yml b/_data/tutorials.yml index 069c9300..873857e1 100644 --- a/_data/tutorials.yml +++ b/_data/tutorials.yml @@ -19,6 +19,7 @@ - NICFD_nozzle - NICFD_nozzle_datadriven - Aachen_Turbine + - Actuator_Disk - title: Incompressible Flow tutorials: diff --git a/_tutorials/compressible_flow/ActuatorDisk_VariableLoad/ActuatorDisk_VariableLoad.md b/_tutorials/compressible_flow/ActuatorDisk_VariableLoad/ActuatorDisk_VariableLoad.md index f532d610..c1f7c967 100644 --- a/_tutorials/compressible_flow/ActuatorDisk_VariableLoad/ActuatorDisk_VariableLoad.md +++ b/_tutorials/compressible_flow/ActuatorDisk_VariableLoad/ActuatorDisk_VariableLoad.md @@ -55,8 +55,8 @@ The global propeller data are: - Advance Ratio = 2.81487 - Radius = 2.5146 m -The thrust coefficient is defined using the "Renard" definition: the reference force is , where *n* are the propeller rounds per second and *D* is the propeller diameter -The advance ratio is defined as . +The thrust coefficient is defined using the "Renard" definition: the reference force is $$\rho n^2D^4$$, where *n* are the propeller rounds per second and *D* is the propeller diameter +The advance ratio is defined as $$J=\frac{V_\infty}{nD}$$. ### Mesh Description @@ -167,16 +167,16 @@ The `MARKER_ACTDISK` option, as the same for the configuration file, is used to The `CENTER` option contains the coordinates of the actuator disk center, expressed in the grid reference system. The `AXIS` option contains the components of the unit vector normal to the actuator disk surface. The `RADIUS` option is used to specify the actuator disk radius. -The `ADV_RATIO` option contains the advance ratio of the propeller defined as , where *n* are the propeller rounds per second and *D* is the propeller diameter. +The `ADV_RATIO` option contains the advance ratio of the propeller defined as $$J=\frac{V_\infty}{nD}$$, where *n* are the propeller rounds per second and *D* is the propeller diameter. The `NROW` option isused to indicate the number of radial stations of the actuator disk in which we assign the load distribution. The next row is a dummy row, so it is skipped. Then there are 4 columns containing respectively: -- The non dimensional radial station -- The thrust coefficient distribution -- The power coefficient distribution -- The radial force coefficient distribution +- The non dimensional radial station $$\overline{r}=\frac{r}{R}$ +- The thrust coefficient distribution $$\frac{\mathrm{d}C_T}{\mathrm{d}\overline{r}}$$ +- The power coefficient distribution $$\frac{\mathrm{d}C_P}{\mathrm{d}\overline{r}}$ +- The radial force coefficient distribution $$\frac{\mathrm{d}C_R}{\mathrm{d}\overline{r}}$$ -These coefficients are defined using the "Renard" definition: the reference force is , while the reference power is reference force is +These coefficients are defined using the "Renard" definition: the reference force is $$\rho n^2D^4$$, while the reference power is reference force is $$\rho n^3D^5$$ *It is possible to append other propellers data at the end of the input file. Note that the order and the format of the options should not be changed.* @@ -195,13 +195,13 @@ This script allows the user to use the `VARIABLE_LOAD` actuator disk type also w The input is interactive, and requires the following data: 1. Number of radial stations (where local data should be generated). -2. CT: the total thrust coefficient defined using the "Renard" definition. -3. R: The propeller radius expressed in meters. -4. r_hub: the hub radius expressed in meters. -5. J: the advance ratio. -6. Vinf: the free-stream velocity expressed in m/s. +2. $$CT$$: the total thrust coefficient defined using the "Renard" definition. +3. $$R$$: The propeller radius expressed in meters. +4. $$r_{\textrm{hub}}$$: the hub radius expressed in meters. +5. $$J$$: the advance ratio. +6. $$V_{\textrm{inf}}$$: the free-stream velocity expressed in m/s. 7. Here, the script asks if you want to use the tip loss Prandtl correction (*yes* is the default choise). -8. N: if you chose yes in the previous stage, it requires also the number of propeller blades. +8. $$N$$: if you chose yes in the previous stage, it requires also the number of propeller blades. Once the input is given, the script provides 3 plots showing the tip loss Prandtl correction function, the axial and rotational interference factors and the thrust and power coefficients distributions along the non dimentional radius. The script also provides 2 files: diff --git a/_tutorials/index.md b/_tutorials/index.md index 0fa54c5a..0a0c86f1 100644 --- a/_tutorials/index.md +++ b/_tutorials/index.md @@ -54,6 +54,8 @@ Simulation of compressible flow in a nozzle using non-ideal thermodynamic models Demonstration of data-driven equation of state using a physics-informed neural network. * [Turbomachinery: Aachen Turbine stage with mixing plane](/tutorials/Aachen_Turbine/) Simulation of compressible flow of the Aachen turbine demonstrating turbomachinery application. +* [Actuator Disk with Variable Load](/tutorials/ActuatorDisk_VariableLoad/) +Simulation of an actuator disk with variable load. #### Incompressible Flow From 13ecc00ed6a484b7f66a0214e8a85537ced0b140 Mon Sep 17 00:00:00 2001 From: Nijso Date: Wed, 21 Jan 2026 09:04:05 +0100 Subject: [PATCH 06/15] Feature gsoc (#202) * add gsoc --- _config.yml | 12 +++++++ _data/gsoc.yml | 12 +++++++ _gsoc/Introduction.md | 36 +++++++++++++++++++++ _includes/gsoc_nav.html | 22 +++++++++++++ _includes/gsoc_section_nav.html | 52 +++++++++++++++++++++++++++++++ _includes/topnav.html | 1 + _layouts/gsoc.html | 55 +++++++++++++++++++++++++++++++++ 7 files changed, 190 insertions(+) create mode 100644 _data/gsoc.yml create mode 100644 _gsoc/Introduction.md create mode 100644 _includes/gsoc_nav.html create mode 100644 _includes/gsoc_section_nav.html create mode 100644 _layouts/gsoc.html diff --git a/_config.yml b/_config.yml index 0f60842f..e63bd734 100644 --- a/_config.yml +++ b/_config.yml @@ -86,6 +86,15 @@ defaults: seo: type: "WebPage" +- scope: + path: _gsoc + type: gsoc + values: + layout: gsoc + sectionid: gsoc + seo: + type: "WebPage" + collections: docs: permalink: /:collection/:path/ @@ -102,6 +111,9 @@ collections: su2gui: permalink: /:collection/:path/ output: true + gsoc: + permalink: /:collection/:path/ + output: true posts: permalink: /blog/:year/:month/:day/:title/ output: true diff --git a/_data/gsoc.yml b/_data/gsoc.yml new file mode 100644 index 00000000..cf2a70da --- /dev/null +++ b/_data/gsoc.yml @@ -0,0 +1,12 @@ +- title: GSOC + gsoc: + - Introduction + - Quick-Start + +- title: Participation + gsoc: + - Participation + +- title: Mentors + gsoc: + - Mentors diff --git a/_gsoc/Introduction.md b/_gsoc/Introduction.md new file mode 100644 index 00000000..df5897a5 --- /dev/null +++ b/_gsoc/Introduction.md @@ -0,0 +1,36 @@ +--- +title: Welcome to the SU2 Google Summer of Code Page +permalink: /gsoc/Introduction/ +--- + +**Welcome to SU2 - GSOC!** + +This is the ideas list for GSOC 2026. + +## Project BP: Adding pressure-based solver +Project Description (max. 5 Sentences) +The pressure-based solver has been requested for a long time. This solver is an important addition to the CFD solvers, especially for low Mach and incompressible flows. People have worked on it (detailed documentation available), and there is a branch that contains a working version, but this was never finalized and added to the main SU2 branch. Hence, the project's objective is to evaluate the current status of attempts, and propose a strategy for getting the pressure-based solver in the latest version of SU2. +Expected Outcome (deliverables): Finalize pressure-based solver, validate with test cases, tutorial and merge the PR. +Skills Required: C++, experience with CFD and numerical methods +Possible Mentors: Nitish Anand and Edwin van der Weide +Expected Project Size: 175 hrs/medium +Difficulty rating: medium-hard (needs experience with Computational Fluid Dynamics) + +## Project GPU: Continuation of GPU acceleration in SU2 +Project Description (max. 5 Sentences) +The SU2 code relies heavily on sparse linear algebra. In this area, there is significant speed-up potential with the adoption of GPU-based processing, as was demonstrated in the GSOC 24 project that applied CUDA to sparse matrix-vector multiplications in SU2. The objective of this project is to move more linear algebra operations to GPU in order to avoid host-device communication bottlenecks within the sparse linear system solver. +Expected Outcome (deliverables): Make SU2’s sparse linear solver GPU-native, i.e. minimal host-device communication after the initial setup of the system. +Skills Required C++ +Possible Mentors Pedro Gomes (lead), Ole Burghardt +Expected Project Size (90 hrs/ small , 175 hrs/medium, 350 hrs/large): 175 hrs (medium) +Difficulty rating (easy (little experience/background), medium (some experience/background), hard (experienced)): medium + +## Project AMR: Quick Adaptive Mesh refinement for 2D testcases +Project Description (max. 5 Sentences) +Many users have asked for adaptive mesh refinement capabilities. Several research groups are working on this. The aim of this project is to introduce a quick and easy adaptive mesh refinement that simply reads an existing results file and adaptively refines the meshes based on the value of a field. +Expected Outcome (deliverables): SU2_AMR, an added executable that simply splits 2D quad and triangle cells +Skills Required: C++ +Possible Mentors: Nijso Beishuizen (lead) +Expected Project Size (90 hrs/ small , 175 hrs/medium, 350 hrs/large): 175 hrs (medium) +Difficulty rating (easy (little experience/background), medium (some experience/background), hard (experienced)): medium + diff --git a/_includes/gsoc_nav.html b/_includes/gsoc_nav.html new file mode 100644 index 00000000..4065d44b --- /dev/null +++ b/_includes/gsoc_nav.html @@ -0,0 +1,22 @@ +
+{% for section in site.data.gsoc %} +
+ +
+
    + {% for item in section.gsoc %} + {% assign item_url = item | prepend:"/gsoc/" | append:"/" %} + {% assign p = site.gsoc | where:"url", item_url | first %} + {{ p.title }} + {% endfor %} +
+
+
+{% endfor %} +
diff --git a/_includes/gsoc_section_nav.html b/_includes/gsoc_section_nav.html new file mode 100644 index 00000000..f5feadf8 --- /dev/null +++ b/_includes/gsoc_section_nav.html @@ -0,0 +1,52 @@ +{% comment %} +Map grabs the doc sections, giving us an array of arrays. Join, flattens all +the items to a comma delimited string. Split turns it into an array again. +{% endcomment %} +{% assign gsoc = site.data.gsoc | map: 'gsoc' | join: ',' | split: ',' %} + +{% comment %} +Because this is built for every page, lets find where we are in the ordered +document list by comparing url strings. Then if there's something previous or +next, lets build a link to it. +{% endcomment %} + +{% for document in gsoc %} + {% assign document_url = document | prepend:"/gsoc/" | append:"/" %} + {% if document_url == page.url %} +
    + {% if forloop.first %} + + {% else %} + {% assign previous = forloop.index0 | minus: 1 %} + {% assign previous_page = gsoc[previous] | prepend:"/gsoc/" | append:"/" %} + + {% endif %} + + {% if forloop.last %} + + {% else %} + {% assign next = forloop.index0 | plus: 1 %} + {% assign next_page = gsoc[next] | prepend:"/gsoc/" | append:"/" %} + + {% endif %} + +
    + {% break %} + {% endif %} +{% endfor %} diff --git a/_includes/topnav.html b/_includes/topnav.html index 89903b83..0b792f9b 100644 --- a/_includes/topnav.html +++ b/_includes/topnav.html @@ -22,6 +22,7 @@
  • Dev Team Slack
  • Develop
  • GUI
  • +
  • GSOC