Starting My GSoC Journey with RADIS
Getting Started
A month has passed since the GSoC results came out, and honestly, and the excitement still hasn’t quite settled. That announcement day was pretty intense, my mind was racing, second-guessing everything. But wow, things worked out even better than I’d hoped.
The community bonding period hit right during my final exams, which was tricky timing. So I focused on what mattered most, getting to know my mentors, joining the weekly calls, and really wrapping my head around the project from a theoretical standpoint.
What I’m Working On
I’m working on something called “Electronic Spectra for RADIS.” Basically, RADIS is this awesome library for modeling rovibrational spectra, but it’s missing one key piece; electronic transitions. That’s where I come in! I want to add that missing functionality and make RADIS even more powerful.
Even though I already knew RADIS pretty well, I spent time going through everything again to make sure I really understood what needed to be done. No point in reinventing the wheel, right? My mentor Nicolas helped me put together a solid plan that actually makes sense.
Breaking It Down
Here’s how I’m breaking it down into four main chunks:
First up is OH Electronic Spectra Calculation — I’m starting with OH molecules as my test case and building the ability to manually tweak electronic band intensities when things are not in equilibrium as suggested by Nicolas in the project idea, “starting with non-equilibrium spectra of atomic species makes sense since the physics is slightly easier than for molecules.”
Then comes Electronic Temperature Support — this is where I’ll add calculations for electronic state populations, assuming the electronic temperature is different from the other temperatures.
Third is Equilibrium OH Spectrum — putting together everything from the earlier steps to calculate OH spectra when things are in equilibrium.
Finally, Extension to ExoMol Molecules — taking what I’ve built and making it work for all ExoMol molecules.
This approach builds on what RADIS already does well while systematically adding the electronic transition stuff, all within the GSoC timeline.
The Technical Stuff
Working with Data Files

To kick off the first milestone, I’m using the .states file from ExoMol for OH molecules, which has all the electronic state info and quantum numbers. RADIS already has a read_states() function in exomolapi.py that can parse this format, but right now it only extracts:
- i: State counting number
- E: State energy
- g: State degeneracy
- J: Total angular momentum
I’ll modify this to additionally extract the electronic-specific parameters:
- State: Electronic state label (e.g., X(²Π))
- Λ: Electronic angular momentum quantum number
- Σ: Spin angular momentum quantum number
- Ω: Total electronic angular momentum quantum number
- Type: State type (e.g., Ma for main)
This will be the foundation for getting electronic transitions working in RADIS.
Making the Calculations Work
For the population calculations, I’ll be working with the existing partfunc.py file. I'm planning to create a new ElectronicPartitionFunction class and implement the Boltzmann distribution for electronic states. Nicolas referenced a formula from his thesis (Chapter 1, Section 1.1) that’s relevant to what I’m implementing.

All of this will eventually get integrated into SpectrumFactory to compute electronic spectra in SpectrumFactory.non_eq_spectrum(). I'll be adding an electronic temperature (Telec) parameter and thinking about using the overpopulation parameter for manually adjusting electronic band intensities.
What’s Next
I’m planning to work on all this over the next few weeks to nail the first milestone. I’m genuinely excited to be part of this project and can’t wait to learn tons and build something really cool. This is going to be an amazing journey!