“Hi everyone! I’m Ishan Sharma, a 2nd-year Mechanical Engineering student at NIT Hamirpur. I’ve been diving into the code lately (specifically working on issues #2511, #2537, and #2529) and I’m excited to propose a GSoC project focused on Clean multi-step configuration. Looking forward to contributing more!”
1 Like
Hi Makis and preCICE team,
Following up on my proposal submission for the Clean Multi-step Configuration project. After a deep dive into the current XMLTag handling logic, I’ve refined my architectural approach to move beyond ‘eager’ side-effect actions during parsing.
My proposed strategy focuses on a two-pass parsing pipeline:
- Pass 1 (AST Generation): I plan to implement a hierarchical ConfigNode base class to map the XML structure into a typed Abstract Syntax Tree (AST). This allows us to capture the configuration metadata, including line numbers from libxml2, before any preCICE objects are instantiated.
Pass 2 (The Execution Pass): By utilizing a Visitor Pattern to traverse the AST, we can initialize objects (Data, Participants, and Coupling Schemes) in the mathematically required order, regardless of their position in the precice-config.xml.
I’ve also focused on Semantic Validation, aiming to implement a layer that catches logical inconsistencies—like circular dependencies—before solver initialization. I believe this decoupled registration will directly resolve the bottlenecks identified in Issue.