Hi preCICE team,
My name is Ajay Rajera, and I am here to introduce myself for GSoC 2026. I am interested in the “Clean multi-step configuration” project.
Actually, I want to spend my summer contributing to a real-world open-source project that makes a difference in scientific computing. I have contributed to many other organizations and have gained lot of experience from it. GSoC provides the perfect opportunity to work alongside experienced mentors on complex, production-grade C++ code while making a meaningful contribution to the community.
Interest in preCICE :
The “Clean multi-step configuration” project is particularly interesting to me because it involves refactoring the XML parsing pipeline — decoupling parsing from object instantiation by introducing a Configuration AST. This kind of architectural work (AST design, multi-pass validation, dependency-ordered construction) aligns well with my interests in compiler design and software architecture.
Entry Test Results:
-
Build preCICE from source: Installed all dependencies (CMake, Boost, Eigen, libxml2, PETSc) in WSL2 (Ubuntu 22.04) and successfully built preCICE.
-
Ran the elastic tube 1D Tutorial: Successfully ran the elastic tube 1D tutorial.
As only 3 images are allowed so I had to remove the starting part but here is the ending part, it is clear that it is working properly.
- Triggered a config error and improved the error message:
I removed the <participants> tag from the <coupling-scheme:serial-implicit> block in the example config to trigger a missing required subtag error.
The problem: The original error message does not tell the user which parent tag requires the missing subtag, making it hard to locate and fix the issue:
ERROR: Tag was not found but is required to occur at least once.
My fix: Modified XMLTag::areAllSubtagsConfigured() in src/xml/XMLTag.cpp to include the parent tag name (_fullName) in both error paths:
After the fix, the error message now tells the user exactly where to look:
ERROR: Tag <participants> was not found inside <coupling-scheme:serial-implicit> but is required to occur at least once. Please add a <participants> tag as a child of <coupling-scheme:serial-implicit>.
I rebuilt preCICE and verified the improved error message with precice-config-validate. The existing XML tests pass.
I putted image showing the error message, but it said only 3 images are allowed as of now so here is the error message.
I look forward to contributing and interacting with the mentors and other contributions.
Best regards, Ajay Rajera
Github: https://github.com/Gitjay11


