This site is a summary for Google Summer of Code 2021 project built by Yizheng Yu (Jenny) and mentored by James Gillanders, Mark Magee, Jaladh Singhal and Luke Harvey in TARDIS-SN Organization. And this page presents what Jenny has done during this lovely summer.
TARDIS is an open-source software for rapid spectral modelling of supernovae using Monte Carlo methods. To run the simulation, it requires a configuration file to define the initial structure within the model. In GSoC 2021, my task is to develop a widget that allows the user to customize abundances on a graphical interface. After three-month dedication, Custom Abundance Widget comes into TARDIS.
In this report, I'm going to make a brief introduction for the widget and tell what I've done, and will do in the future.
This widget provides a GUI that allows the user to edit the model structure and visualizes the model profile. It is a visualization tool in visualization.widgets subpackage and consists of three parts - plotting part, editing part and outputting part.
As the project progressed, new ideas emerged and various functionality were falling on the ground. Now, the widget is able to do much more than customizing abundances. It can:
Edit abundance & density data either in single shell or in multiple shells
Normalize element abundances within the same shell to 1
Add new element or isotope to the model
Add/Rewrite the shell with given velocity range
Output the new model as a file
Here are the links to PRs about this widget:
#1626: Demo notebook for the widget. Implemented the code for all functionality and generated the prototype of the GUI.
#1751: The module for the widget. Integrated the code in demo notebook to .py module. Added CustomAbundanceWidget, CustomYAML and DensityEditor class and wrote documentation about widget guidelines.
To know more about this widget, please go to the documentation page and see examples of how to use it.
(Merged) #1630: Fixed FileExistsError when saving a Simulation object as a new HDF file
(In progress) #1628: Moved the overlapping code in Plotters (SDECPlotter and InteractionRadiusPlotter) to plot_util.py module and integrated the code into Plotter class.
(Merged) #1597: Added validation to raise ValueError if virtual packet is disabled when plotting in virtual mode.
(Merged) #1498: Added virtual_packet_logging option in run_tardis() method. In this way the user can able/disable virtual packet easily when running TARDIS simulation.
The experience of GSoC 2021 comes to the end but the journey of TARDIS still goes on. In the future, I plan to:
Restructure the code and add WidgetData class to store various data and write tests for restructured code.
Added the visualization tool in TULIPS into the widget.
There are also some other minor changes, which are added on project board in TARDIS repo. This board tells the progress of all the to-dos I mentioned above.
I have received so much kindness and patience in the past three months. I'd like to express my deep gratitude to my mentors first - James, Mark, Jaladh and Luke - for giving me lots of important suggestions and listening to me patiently when I was struggling to express myself. I want to especially thank Jaladh and other GSoC students, Dhruv and Atharva. They helped me a lot on catch-up meeting and I don't think I can achieve this project without their generous help. I also want to say thank you to more people. Thank you Marc Williamson for guiding me in the application period and telling me the way to implement complex functionality in detail. Thank you Wolfgang Kerzendorf for telling me "GSoC student matters", and I do feel that I and my work are valued by you guys.
In TARDIS, everything seems new to me - the work pace, the cooperation pattern and the fantastic astronomy. I know some of these may not affect my life at the moment yet I believe they will have an influence on me in the future. And I respect everyone who devotes themselves into science. Thank you TARDIS and GSoC for allowing an undergraduate to see so much of the world and the universe!