Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
7d1a6bb
Added tutorial for data-driven equation of state
EvertBunschoten Jan 13, 2026
811285d
Added PT diagram of the training data
EvertBunschoten Jan 14, 2026
9363f6b
TFC python (#191)
bigfooted Jan 14, 2026
de5783e
Merge branch 'master' of https://github.com/su2code/su2code.github.io…
EvertBunschoten Jan 15, 2026
7c168ef
Added training history plot
EvertBunschoten Jan 15, 2026
de9e064
Added plot showing comparison between reference and predicted compres…
EvertBunschoten Jan 15, 2026
afc6836
Added illustration of computational mesh
EvertBunschoten Jan 15, 2026
42382f9
Added SU2 convergence plot
EvertBunschoten Jan 15, 2026
c3a1097
Added plot of the Mach number and compressibility contours of the SU2…
EvertBunschoten Jan 15, 2026
3e37639
Updated tutorial documentation
EvertBunschoten Jan 15, 2026
3f0ddcd
Urban city simulation (#195)
bigfooted Jan 15, 2026
6477a5d
Apply suggestion from @bigfooted
bigfooted Jan 15, 2026
9f7317f
Tutorial for NICFD with physics-informed, data-driven equation of sta…
EvertBunschoten Jan 15, 2026
a9a7672
Revert "Tutorial for NICFD with physics-informed, data-driven equatio…
bigfooted Jan 15, 2026
94cbc76
Merge branch 'master' into feature_NICFD
bigfooted Jan 15, 2026
88ac99f
Update tutorial title for clarity
bigfooted Jan 15, 2026
58ba6a5
Update resource links to use 'develop' branch (#198)
bigfooted Jan 20, 2026
a311b46
Update resource links in Inc_Urban_City.md (#199)
bigfooted Jan 20, 2026
59bed6e
Fix tutorial link in NICFD nozzle documentation (#200)
bigfooted Jan 20, 2026
34a792f
fix links (#201)
bigfooted Jan 20, 2026
13ecc00
Feature gsoc (#202)
bigfooted Jan 21, 2026
5e49936
Revise GSOC 2026 ideas list with updates and formatting (#203)
bigfooted Jan 21, 2026
acf22ec
add gsoc (#204)
bigfooted Jan 21, 2026
2aeb327
add gsoc (#205)
bigfooted Jan 22, 2026
bbc1cb0
Add project CMPLX for performance optimization in SU2 (#206)
joshkellyjak Jan 24, 2026
1c1b070
Added GSOC project (#207)
EvertBunschoten Jan 28, 2026
c57b9bd
Revise title and enhance GSOC participation info (#208)
bigfooted Feb 8, 2026
825350f
Revise GSOC 2026 introduction and project details (#209)
bigfooted Feb 13, 2026
97e82a4
Update Introduction.md
ozdemirh Feb 18, 2026
edee96f
Merge pull request #210 from su2code/ozdemirh-patch-1
pcarruscag Feb 18, 2026
0d42dd1
Revise GSoC project mentor information (#211)
joshkellyjak Feb 20, 2026
73db2e6
Merge pull request #213 from su2code/develop
pcarruscag Apr 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ bootwatch: yeti
# Build settings
markdown: kramdown
highlighter: rouge
gems:
plugins:
- jekyll-feed
- jekyll-redirect-from
- jekyll-seo-tag
Expand Down Expand Up @@ -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/
Expand All @@ -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
Expand Down
11 changes: 11 additions & 0 deletions _data/gsoc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
- title: GSOC
gsoc:
- Introduction

- title: Participation
gsoc:
- Participation

- title: Assignments
gsoc:
- Assignments
8 changes: 6 additions & 2 deletions _data/tutorials.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
- Unsteady_NACA0012
- UQ_NACA0012
- NICFD_nozzle
- NICFD_nozzle_datadriven
- Aachen_Turbine
- Actuator_Disk

- title: Incompressible Flow
tutorials:
Expand All @@ -32,22 +34,24 @@
- Inc_Species_Transport_Composition_Dependent_Model
- Inc_Von_Karman
- Inc_Turbulent_Bend
- Inc_Urban_City

- title: Structural Mechanics
tutorials:
- Linear_Elasticity
- Linear_Dynamics
- Nonlinear_Elasticity
- Multiple_Material

- title: Multiphysics
tutorials:
- Static_FSI
- Dynamic_FSI_Python
- Static_CHT
- Inc_Heated_Cylinders_Unsteady
- SS_CR_CHT
- Inc_Combustion
- Inc_Combustion
- TFC_python

- title: Design Features
tutorials:
Expand Down
41 changes: 41 additions & 0 deletions _gsoc/Assignments.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
title: Student Assignments
permalink: /gsoc/Assignments/
---

**Welcome to SU2 - GSOC!**
What is Google Summer of Code?

[Google Summer of Code](https://summerofcode.withgoogle.com/)


## SU2 introduction assignments

To help newcomers start with SU2 and to help GSOC mentors with evaluating the level of students who would like to participate in Google Summer of Code, we have prepared a couple of introduction assignments. These assignments have to be made in the order they are given. These assignments give us an indication of your familiarity with SU2 and the SU2 code. These assignments, together with your active participation in the SU2 community, will be taken into account when deciding on GSOC projects.

## Assignment 1: Compile SU2

- Clone SU2 from github [SU2](https://github.com/su2code/SU2) on your system and compile it [compile instructions](https://su2code.github.io/docs_v7/Build-SU2-Linux-MacOS/) with different options, and run some tutorials [Tutorials](https://su2code.github.io/tutorials/home/). Get a proper understanding of the input and output of SU2.
- Deliverable: None

## Assignment 2: Set up a test case from scratch

- Generate a 2D mesh for an axisymmetric, steady-state, turbulent jet case (for instance with [gmsh](https://gmsh.info/)), setup the configuration file, run the simulation, and extract results.
- Deliverable: Testcase and small report (markdown) describing motivation for set-up, configuration options, convergence history, comparison with experimental values.
Reference paper that could be used for comparison [report](https://www.researchgate.net/publication/254224677_Investigation_of_the_Mixing_Process_in_an_Axisymmetric_Turbulent_Jet_Using_PIV_and_LIF)

## Assignment 3: Python wrapper test case

- Set up a problem in the python wrapper (compile with python support) and run a test case.
Testcase for the python wrapper: [flatplate](https://github.com/su2code/SU2/blob/master/TestCases/py_wrapper/flatPlate_unsteady_CHT/launch_unsteady_CHT_FlatPlate.py)
- Deliverable: Testcase and small report describing the test case and showing the results.

## Assignment 4: Modification of the python wrapper setup

- Enable a spatially varying wall temperature for a steady-state compressible turbulent flat plate testcase.
- Deliverable: Testcase and small report describing the results.

## Assignment 5: Addition of new volume output:

- Add the local speed of sound as computed by SU2 in the volume output (paraview files) and the screen output. Run the turbulent test case from point 2 with this new volume and screen output enabled.
- Deliverable: explain implementation, show the history output of the new screen output and show some image with the volume output.
62 changes: 62 additions & 0 deletions _gsoc/Introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
title: Ideas List for SU2 Google Summer of Code
permalink: /gsoc/Introduction/
---

**Welcome to SU2 - GSOC!**

This is the updated ideas list for GSOC 2026. If you are interested in participating in [Google Summer of Code](https://summerofcode.withgoogle.com/about) with the SU2 team, then please read the page on [participation](https://su2code.github.io/gsoc/Participation/). The projects listed below have been tuned to fit within the google summer of code program and they have mentors assigned to them. We can also accept personal ideas beyond the ones presented below but you need to convince one of the mentors to support you. We also need you to be proficient in SU2 and have some kind of technical background beyond general computer science (studying physics, mechanical engineering, aerospace engineering,...).

## 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: **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: **medium**

## Project CMPLX: Performance Optimization of Complex Arithmetic in SU2
Project Description (max. 5 Sentences)
Complex arithmetic operations currently cause significant performance degradation in SU2 when features requiring complex numbers are enabled. This limitation affects the efficiency of certain solver capabilities and restricts their practical application in industrial-scale problems. Preliminary observations suggest that complex arithmetic is a primary bottleneck, but systematic profiling is needed to confirm and quantify these losses. The project's objective is to profile the solver to identify performance hotspots, validate that complex arithmetic is the root cause, and develop a custom complex arithmetic library optimised for SU2's specific use cases. This work will enable more efficient execution of complex-number-dependent features without compromising computational performance.
Expected Outcome (deliverables): Performance profiling report, custom complex arithmetic library (if validated as necessary), benchmark comparisons demonstrating speedup, integration into SU2 codebase, and documentation with usage guidelines.
- Skills Required: C++
- Possible Mentors: Joshua A. Kelly (lead), Harsh Mishra
- Expected Project Size (90 hrs/ small , 175 hrs/medium, 350 hrs/large): 175 hrs (medium)
- Difficulty rating: **medium**

## Project PIML: Towards physics-informed machine learning with SU2
Project Description (max. 5 Sentences)
SU2 uses algorithmic differentiation (AD) for the adjoint solver and has the ability to use multi-layer perceptrons in data-driven equation of state models through the [MLPCpp](https://github.com/EvertBunschoten/MLPCpp.git) submodule. The aim of this project is to combine these two functionalities to enable physics-informed machine learning (PIML) in SU2 by updating the weights and biases of multi-layer perceptrons using AD for sensitivity calculation. PIML would enable data-driven turbulence modeling, solving partial differential equations without a mesh, and open the door to many other interesting research opportunities.
Expected Outcome (deliverables): Demonstration of training a MLP for a reference data set within SU2 and comparison, MLP training library including at least one commonly used training algorithm (e.g. Adam), and documentation explaining usage.
- Skills Required: C++, experience with machine learning
- Possible Mentors: Evert Bunschoten (lead)
- Expected Project Size (90 hrs/ small , 175 hrs/medium, 350 hrs/large): 175 hrs (medium)
- Difficulty rating: **medium-hard**

## Project FWH: Generalizing FWH-Based Aeroacoustic Noise Prediction
This project aims to generalize a Python tool that implements Farassat’s 1A formulation of the Ffowcs Williams-Hawkings (FWH) equation for far-field noise prediction. While originally developed for tandem cylinder test cases and recently extended to airfoils, the current implementation is limited by case-specific logic. The primary objective is to refactor the codebase into a robust, geometry-agnostic framework capable of handling diverse and complex flow configurations. Test cases should be included in the regression tests.
Expected Outcome (deliverables): A stand-alone Python code.
- Skills Required: Python
- Possible Mentors: Huseyin Ozdemir, (lead) Nijso Beishuizen
- Expected Project Size (90 hrs/ small, 175 hrs/medium, 350 hrs/large): 175 hrs (medium)
- Difficulty rating: **medium**
-
39 changes: 39 additions & 0 deletions _gsoc/Participation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: Student Participation
permalink: /gsoc/Participation/
---

**Welcome to SU2 - GSOC!**

## What is Google Summer of Code?

[Google Summer of Code](https://summerofcode.withgoogle.com/)

Google Summer of Code is a program sponsored by Google to let students interested in Open Source work on cool and challenging open source projects. The basic idea is that you will work together with a mentor on a project. We have selected a couple of main topics for you but it is up to you to write a more complete project proposal. If you have ideas of your own, that is fine too but you will need to find a mentor to supervise such a project.

If you would like to apply, please make sure that you have subscribed to [CFD-online](https://www.cfd-online.com/Forums/su2/) and github, and additionally join the developers team on slack (see our main website [su2code](https://su2code.github.io/). In that way you can stay informed about SU2, and our GSOC involvement.

If you are interested in applying for GSOC with an SU2 project, please do the following:
1. send an application email to gsoc@su2foundation.org with some personal details, education background and motivation.
2. become a member of our slack channel and subscribe to the **general** and **gsoc** subchannel of SU2. Please introduce yourself :-)

## To Apply:
To be considered as a GSOC student for an SU2 project, it is not sufficient to simply write a proposal and send it to the google website. We will not accept students who never contacted us or did not finish the assignments. We encourage students to participate in code development by fixing bugs or working on features. The minimum requirements to get accepted by the SU2 team for a GSOC project are:

- Create a brief resume with your contact details, your education and code experience. If we cannot contact you, *we will not contact you*.
- Briefly write about your experience and interests in Computational Fluid Dynamics and SU2, and the specific project you would like to work on (if you know this already)
- Briefly write about your current work schedule: are you studying/working, how will you manage the time, etc..
- Send it to gsoc@su2foundation.org
- Make the assignments on the assignment page and send us your github page with your results.
- work on fixing things in SU2

Then in the last stage:

- **Together with a mentor** you will create a project proposal and a planning with a timeline containing a breakdown of the project in parts with periodic deliverables/milestones.

## Evaluation
Note that applying does not mean acceptance into the program. We will carefully consider your application to see if you are capable of the job, taking into account your experience and availability. We heavily weigh your participation and visibility in the introduction phase.
Please note that experience with SU2 is required. A merged Pull Request on github is highly recommended experience. A pull request for a tutorial or validation testcase is also acceptable and will count as experience.

## Use of AI
We allow usage of AI tools to *assist* you with your work. However, we do not allow the use of AI in vibe-coding where you let AI generate code that you do not understand. We also do not allow AI for automatic discussions with mentors or other users. AI is your assistant, not your replacement. If you do everything with AI, we might as well do it ourselves without you.
22 changes: 22 additions & 0 deletions _includes/gsoc_nav.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
{% for section in site.data.gsoc %}
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse-{{forloop.index}}" aria-expanded="false" aria-controls="collapse-{{forloop.index}}">
{{ section.title }}
</a>
</h4>
</div>
<div id="collapse-{{forloop.index}}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
<ul class="list-group">
{% for item in section.gsoc %}
{% assign item_url = item | prepend:"/gsoc/" | append:"/" %}
{% assign p = site.gsoc | where:"url", item_url | first %}
<a class="list-group-item {% if item_url == page.url %}active{% endif %}" href="{{ p.url | relative_url }}">{{ p.title }}</a>
{% endfor %}
</ul>
</div>
</div>
{% endfor %}
</div>
52 changes: 52 additions & 0 deletions _includes/gsoc_section_nav.html
Original file line number Diff line number Diff line change
@@ -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 %}
<ul class="pager">
{% if forloop.first %}
<li class="previous disabled">
<a>
<span aria-hidden="true">&larr;</span> Previous
</a>
</li>
{% else %}
{% assign previous = forloop.index0 | minus: 1 %}
{% assign previous_page = gsoc[previous] | prepend:"/gsoc/" | append:"/" %}
<li class="previous">
<a href="{{ previous_page | relative_url }}">
<span aria-hidden="true">&larr;</span> Previous
</a>
</li>
{% endif %}

{% if forloop.last %}
<li class="next disabled">
<a>
Next <span aria-hidden="true">&rarr;</span>
</a>
</li>
{% else %}
{% assign next = forloop.index0 | plus: 1 %}
{% assign next_page = gsoc[next] | prepend:"/gsoc/" | append:"/" %}
<li class="next">
<a href="{{ next_page | relative_url }}">
Next <span aria-hidden="true">&rarr;</span>
</a>
</li>
{% endif %}
</div>
<div class="clear"></div>
{% break %}
{% endif %}
{% endfor %}
3 changes: 2 additions & 1 deletion _includes/topnav.html
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@
<li {% if page.sectionid=='tutorials' %} class="active" {% endif %}><a href="{{ "/tutorials/home/" | relative_url }}">Tutorials</a></li>
<li {% if page.sectionid=='vandv' %} class="active" {% endif %}><a href="{{ "/vandv/home/" | relative_url }}">V&V</a></li>
<li {% if page.sectionid=='forum' %} class="active" {% endif %}><a href="{{ "https://www.cfd-online.com/Forums/su2/" }}">User Forum</a></li>
<li {% if page.sectionid=='slack' %} class="active" {% endif %}><a href="{{ "https://join.slack.com/t/su2devteam/shared_invite/zt-af0uuqf8-8XNExKMV9G~UVsnkvi5uVA" }}">Dev Team Slack</a></li>
<li {% if page.sectionid=='slack' %} class="active" {% endif %}><a href="{{ "https://join.slack.com/t/su2devteam/shared_invite/zt-af0uuqf8-8XNExKMV9G~UVsnkvi5uVA" }}">Slack</a></li>
<li {% if page.sectionid=='develop' %} class="active" {% endif %}><a href="{{ "/develop.html" relative_url }}">Develop</a></li>
<li {% if page.sectionid=='su2gui' %} class="active" {% endif %}><a href="{{ "/su2gui/Introduction" relative_url }}">GUI</a></li>
<li {% if page.sectionid=='gsoc' %} class="active" {% endif %}><a href="{{ "/gsoc/Introduction" relative_url }}">GSOC</a></li>
</ul>
<div class="navbar-right">
<ul class="nav navbar-nav">
Expand Down
Loading
Loading