Hello everyone,
My name is Kartik Singh and I am currently a second-year B.Tech student from India. I’m interested in contributing to preCICE for Google Summer of Code 2026, mainly focusing on the System Tests Improvements project.
Over the past few days I have been exploring the preCICE ecosystem and trying to understand how the different repositories work together, especially the tutorials repository and the system testing infrastructure.
I have already started contributing to the tutorials repository with a couple of small documentation improvements:
• PR #752 – Show watchpoint at tip in quickstart tutorial
• PR #753 – Add runtime estimate to elastic-tube-1d tutorial
While exploring the ecosystem I also started looking into issue #189 in the Micro Manager repository related to VTU export behavior when dynamic load balancing is enabled. I have been discussing the issue to better understand how the export mechanism works and where the limitation currently comes from.
What interests me most about the System Tests Improvements project is how it connects different parts of the ecosystem. The system tests run full simulations inside Docker containers and verify results automatically, which seems like a very important part of maintaining reliability across multiple coupled solvers.
Over the next few days I plan to:
• run the system tests locally
• understand how tutorials are integrated into the testing pipeline
• attempt the entry task by adding another tutorial to the system tests
My main programming experience is in Python, and I’m comfortable with Git and GitHub workflows. I am also currently learning more about Docker and CI systems since they are central to the system testing infrastructure.
I’m looking forward to learning more about the project and contributing further.
Best regards,
Kartik Singh
GitHub: https://github.com/k4rtikx
Quick progress update:
I successfully set up the development environment using WSL and ran the elastic-tube-1d tutorial with the Python solvers.
To explore the configuration error handling, I intentionally modified the precice-config.xml file by renaming the data tag from “Pressure” to “PressureWrong”. This triggered a configuration error during startup:
ERROR: Mesh “Fluid-Nodes-Mesh” with data “Pressure” not defined.
I traced this error in the preCICE source code and found it originates from src/cplscheme/config/CouplingSchemeConfiguration.cpp — it is triggered during XML configuration parsing when an exchange tag references data not defined on the mesh.
Currently exploring how configuration validation is implemented in the parsing stage.
Next I plan to:
- explore the existing test infrastructure
- attempt adding a tutorial to the system tests
Quick progress update:
I set up the environment using WSL and successfully ran the elastic-tube-1d tutorial with the Python solvers.
To explore configuration validation, I modified the precice-config.xml by renaming the data tag from “Pressure” to “PressureWrong”, which triggered a configuration error during startup.
I traced the error to CouplingSchemeConfiguration::xmlTagCallback() in the TAG_EXCHANGE branch, where preCICE validates that the referenced data exists on the specified mesh using _meshConfig->getMesh(meshName)->hasDataName(dataName). The check fails because the data name no longer matches the definitions parsed earlier.
This error occurs during XML configuration parsing before the simulation begins.
Next steps:
- Explore the test infrastructure in the repository
- Try adding or modifying a system test
Quick update:
I implemented a small prototype improvement for failure diagnostics in system tests. It captures docker execution output and provides structured error summaries instead of raw failures.
Example:
SYSTEM TEST FAILED
Reason: Configuration error (missing data)
Branch: