Hi preCICE team,
My name is Shuvro, and I am very excited to apply for GSoC 2026. I am particularly interested in the “Clean multi-step configuration” project. Below are my details and motivation:
Motivation for GSoC: I am deeply passionate about scientific computing and software architecture. Instead of a traditional internship, I want to spend my summer contributing to an open-source project like preCICE because it allows me to work on high-impact code that solves real-world multiphysics problems. GSoC provides the perfect structured environment to learn from world-class mentors.
Interests in preCICE: I am fascinated by how preCICE handles the complexity of coupling different solvers. The “Clean multi-step configuration” project caught my eye because I enjoy refactoring and architectural challenges. Moving from a rigid XML parsing structure to a structured AST (Abstract Syntax Tree) is a sophisticated way to improve code maintainability and user experience.
Commitments: I will be fully committed to this project over the summer. I have no other study or work commitments during the GSoC period and plan to dedicate 30–35 hours per week to reach the 175h goal.
Technical Experience:
-
C++: I have a solid foundation in C++ and am comfortable navigating large codebases. I enjoy the logic involved in structural refactoring.
-
Git/GitHub: I am proficient with Git (branching, merging, diffing) and the GitHub workflow.
Entry Test Results: To familiarize myself with the configuration logic, I completed the entry task by identifying a cryptic error message and improving it. I modified src/mesh/config/MeshConfiguration.cpp so that users receive actionable advice when a data name is used by a mesh but not defined.
I have verified the fix by building the library and running the elastic-tube-1d tutorial with a broken configuration.
My git diff for this change:
--- a/src/mesh/config/MeshConfiguration.cpp
+++ b/src/mesh/config/MeshConfiguration.cpp
@@ -81,8 +81,10 @@ void MeshConfiguration::xmlTagCallback(
}
PRECICE_CHECK(found,
"Data with name \"{}\" used by mesh \"{}\" is not defined. "
- "Please define a data tag with name=\"{}\".",
- name, _meshes.back()->getName(), name);
+ "Check your configuration file: every <use-data> tag inside a <mesh> "
+ "must have a corresponding <data:scalar> or <data:vector> defined "
+ "at the top of the file.",
+ name, _meshes.back()->getName());
}
}
Next Step: I’ve completed this improvement to the error reporting. Should I submit this as a formal Pull Request on GitHub to show my workflow, or is providing the diff here sufficient for the entry test?
I look forward to discussing the AST refactoring further with Frédéric Simonis!
Best regards,
Shuvro