# GSoC 2026 Application Introduction - Clean multi-step configuration - Shuvro

**URL:** <https://precice.discourse.group/t/gsoc-2026-application-introduction-clean-multi-step-configuration-shuvro/2763>\
**Category:** Google Summer of Code\
**Tags:** gsoc-configuration, gsoc-period-reachout\
**Created:** [February 24, 2026, 8:25pm UTC](https://precice.discourse.group/t/gsoc-2026-application-introduction-clean-multi-step-configuration-shuvro/2763 "2026-02-24T20:25:08Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![shuvro-git](https://yyz2.discourse-cdn.com/free1/user_avatar/precice.discourse.group/shuvro-git/32/3299_2.png) [@shuvro-git](https://precice.discourse.group/u/shuvro-git)\
**Post date:** [February 24, 2026, 8:25pm UTC](https://precice.discourse.group/t/gsoc-2026-application-introduction-clean-multi-step-configuration-shuvro/2763/1 "2026-02-24T20:25:08Z")

</div>

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
