Week 4: Integration and Testing Begins

Hi readers,

It’s week 4 of my GSoC journey, and this week was all about building bridges — between code and interface, and initial testing. As I move from core algorithm development into integration, things are getting both more exciting and more layered.

What I did this week?

After completing the lsoda driver function last week, I began working on the integration mechanism — i.e., how users will interact with the solver, and how models will be parsed, solved, and tested.

Here’s what I’ve done so far:

  • I implemented the computeChange abstract method which is the go to method for AbstractDESolver for solving the ODE systems. It is the single most important method for the integration mechanism.
  • I created a new test class LSODASystemTest, specifically to validate how LSODA handles various ODE systems and error scenarios in an end-to-end manner.

  • I’ve designed the LSODA solver to work in two different modes:

    1. Direct ODE system input – where users can directly provide an implementation of the DESystem interface. This mimics the libLSODA style API.

    2. SBML-based input – the standard SBSCL way, where the solver receives an SBML model file and integrates it through SBSCL’s internal pipeline.

This makes the solver flexible: researchers familiar with libLSODA can use it in a familiar way, while SBSCL users benefit from seamless integration with SBML models.

Understanding SBML Parsing in SBSCL

While the direct ODE system tests are working well, I’ve hit a bit of a wall in fully understanding how SBSCL handles SBML model parsing and result output using existing solvers.

To address this, I’ve been diving into:

  • SBMLInterpreter – which is responsible for reading and interpreting SBML models.

  • Multitable – which stores and structures the results of a simulation.

Both these classes play a central role in how SBSCL processes models and displays results, so understanding their internals is crucial for proper integration.

Mentor Meeting

  • I had my usual weekly meeting on June 26 2025 where I presented my progress so far followed by a discussion on the dual interface architecture which I decided to use — something my mentors found valuable. I also shared the current challenges in tracing how SBSCL solvers connect with Multitable.

  • Dr. Funahashi shared a detailed presentation on SBML, to help me understand the fundamentals of the markup language and how it represents models and simulations. Dr. Dräger shared a YouTube video that also explains SBML. They also introduced me to SBMLSimulator, another project from the dräger-lab. It has a wide range of SBML simulation examples. Studying this will help me understand how simulations are executed and how the results are stored using Multitable.

That’s all for this week!

Till then,
Bye! 👋

Comments

Popular posts from this blog

Week 7: Events, Exhaustion and Evaluations

My GSoC 2025 Journey Begins

Week 1: Coding Period Begins