User Tools

Site Tools


ideas_page

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ideas_page [2017/01/27 11:26]
unoebauer [Expanding the Integration-Testing Framework]
ideas_page [2017/02/09 15:00] (current)
unoebauer [Handling nuclear decay in TARDIS]
Line 25: Line 25:
 In the TARDIS collaboration we first establish a detailed plan on implementing new features before starting the actual work. This is an important step that ensures that the entire TARDIS collaboration is informed about the development efforts and that the team members can help shape the ideas during the discussion phase. We call these documents TEP - TARDIS Enhancement Proposals. We already have a great list of ideas at https://​github.com/​tardis-sn/​tep that we need help with. Some of these we have specially selected for GSoC 2017 and are listed with specific "​warm-up"​ tasks below. But feel free to propose your own TEP and make a PR on that.  In the TARDIS collaboration we first establish a detailed plan on implementing new features before starting the actual work. This is an important step that ensures that the entire TARDIS collaboration is informed about the development efforts and that the team members can help shape the ideas during the discussion phase. We call these documents TEP - TARDIS Enhancement Proposals. We already have a great list of ideas at https://​github.com/​tardis-sn/​tep that we need help with. Some of these we have specially selected for GSoC 2017 and are listed with specific "​warm-up"​ tasks below. But feel free to propose your own TEP and make a PR on that. 
  
-If you use one of our TEPs, you can definitely add more detail to the implementation,​ but what we really want to see is a detailed timeline with milestones that shows us that you have thought about how to implement the feature in three months. For any questions about the projects, please ask on our mailing list [[https://​groups.google.com/​forum/#​!forum/​tardis-gsoc-sn-2017|tardis-sn-gsoc-2017@googlegroups.com]] or on [[https://​gitter.im/​tardis-sn/​tardis|Gitter]]. ​+If you use one of our TEPs, you can definitely add more detail to the implementation,​ but what we really want to see is a detailed timeline with milestones that shows us that you have thought about how to implement the feature in three months. For any questions about the projects, please ask on our mailing list [[https://​groups.google.com/​forum/#​!forum/​tardis-sn-gsoc2017|tardis-sn-gsoc2017@googlegroups.com]] or on [[https://​gitter.im/​tardis-sn/​gsoc2017|Gitter]]. ​
  
 Putting in a Pull Request with the First objective is essential for each proposal to allow to see how you work.  Putting in a Pull Request with the First objective is essential for each proposal to allow to see how you work. 
Line 43: Line 43:
 **Related TEP:** [[https://​github.com/​tardis-sn/​tep/​blob/​master/​TEP001_extensive_test_suite.rst|TEP001]] **Related TEP:** [[https://​github.com/​tardis-sn/​tep/​blob/​master/​TEP001_extensive_test_suite.rst|TEP001]]
  
-**GSoC Application Tag:** testing+**GSoC Application Tag:​** ​integration-testing
  
 **Description:​** Testing a scientific code like TARDIS is very important. We need to ensure that the scientific insights we gain using the code are not based on bugs. Open collaboration with GitHub is great, but the more people work on the code the more opportunities there are to introduce bugs. Making sure that the code doesn'​t change or only changes as we expect it, is thus an important part of TARDIS development. ​ **Description:​** Testing a scientific code like TARDIS is very important. We need to ensure that the scientific insights we gain using the code are not based on bugs. Open collaboration with GitHub is great, but the more people work on the code the more opportunities there are to introduce bugs. Making sure that the code doesn'​t change or only changes as we expect it, is thus an important part of TARDIS development. ​
Line 73: Line 73:
 **Description:​** ​ **Description:​** ​
  
 +One important piece of TARDIS is the calculation of the plasma state. That means that it is also crucial to ensure that the results from these calculations do not change unexpectedly. For this purpose we use unit tests of isolated parts of the plasma state calculations and compare the results to pre-computed reference data. Naturally, whenever we improve, expand or alter the implemented physics underlying the calculation,​ we have to also modify the reference data. This project aims at making it easy for us to generate and update reference and to automate this process. ​
  
-**Your first objective if you choose to accept the mission:​** ​+ 
 +**Your first objective if you choose to accept the mission:​** ​Look at the function '​test_partition_function.py'​ and try to replace the comparison values there and replace them with one loaded from a file. 
  
 ---- ----
Line 88: Line 90:
 **Programming skills:** Python **Programming skills:** Python
  
-**Related TEP:** [[https://​github.com/​tardis-sn/​tep/​blob/​master/​tep014_model_from_file.rst|TEP014]]+**Related TEP:** [[https://​github.com/​tardis-sn/​tep/​blob/​a1661c6b508b5aed341a2627e03a7ad9c3942f12/​tep014_model_from_file.rst|TEP014]]
  
 **GSoC Application Tag:** reading simulation **GSoC Application Tag:** reading simulation
  
-**Description:​** TARDIS studies how light travels through a supernova and how it ultimately appears to us. We are researching this process and thus are interested in analyzing TARDIS outputs in great deal. This means that we aim at capturing the full state of a TARDIS calculation in more detail. TEP002 implemented the functionality to store important data to a file. The next step, TEP014 describes how to restore a fully functional Simulation object from the saved data.+**Description:​** TARDIS studies how light travels through a supernova and how it ultimately appears to us. We are researching this process and thus are interested in analyzing TARDIS outputs in great deal. This means that we aim at capturing the full state of a TARDIS calculation in more detail. TEP002 implemented the functionality to store important data to a HDF5 file. 
  
-**Your first objective if you choose to accept the mission:** Use `tardis_example.yml` to generate a Simulation object and save it to file. Then write a script reading `Radial1DModel.time_explosion`. Hint: Have a look at `pandas.HDFStore`.+The next step, which this project is all about, is to read the data again from the HDF5 and to restore a fully functional TARDIS simulation object.  
 + 
 + 
 +**Your first objective if you choose to accept the mission:** Use `tardis_example.yml` to generate a Simulation object ​(see the Quickstart guide on our documentation) ​and save it to an HDF5 file. Then write a script reading `Radial1DModel.time_explosion`. Hint: Have a look at `pandas.HDFStore`.
  
 **Bonus objective**:​ Read all attributes of `Radial1DModel` and create a model identical to the one from the `tardis_example.yml`. **Bonus objective**:​ Read all attributes of `Radial1DModel` and create a model identical to the one from the `tardis_example.yml`.
Line 108: Line 113:
 **Mentors:​** @lukeshingles,​ @shaching **Mentors:​** @lukeshingles,​ @shaching
  
-**Programming skills**: Python, Parsing, Databases ​(SQLAlchemy ​experience would be great)+**Programming skills**: Python, Parsing, DatabasesSQLAlchemy
  
 **Related TEP:** [[https://​github.com/​tardis-sn/​tep/​blob/​master/​TEP004_tardisatomic_restructure.rst|TEP004]] **Related TEP:** [[https://​github.com/​tardis-sn/​tep/​blob/​master/​TEP004_tardisatomic_restructure.rst|TEP004]]
Line 122: Line 127:
 For this project you would help us make parsers for a variety of formats from a collection of atomic data sources (see the TEP) and in the second part put this into a database. The assembled database will not only be very interesting for us, but also for many other fields of astronomy that do rely on atomic data. A useful resource of understanding atomic structure description can be found in http://​www.physics.byu.edu/​faculty/​bergeson/​physics571/​notes/​L27spectnotation.pdf. For this project you would help us make parsers for a variety of formats from a collection of atomic data sources (see the TEP) and in the second part put this into a database. The assembled database will not only be very interesting for us, but also for many other fields of astronomy that do rely on atomic data. A useful resource of understanding atomic structure description can be found in http://​www.physics.byu.edu/​faculty/​bergeson/​physics571/​notes/​L27spectnotation.pdf.
  
-**Your first objective if you choose to accept the mission:​** ​Write a download function to download ​the atomic weights and symbols and so on from this page  http://physics.nist.gov/cgi-bin/Compositions/stand_alone.pl?​ele=&​all=all&​ascii=html. Then build a simple sqlalchemy database with one table and put it in there. "Bonus objective":​ Write a parser for (http://kurucz.harvard.edu/atoms/​1401/​gf1401.gamusing pyparsing.+In GSoC 2016 we created a package that compiles all of this information into a database named Carsus (see http://​carsus.readthedocs.io/​en/​latest/​). For this year we aim to strengthen the link between Carsus and TARDIS and also include more atomic data into Carsus. 
 + 
 +**Your first objective if you choose to accept the mission:​** ​Use the script (https://github.com/tardis-sn/carsus-db/blob/master/scripts/create_hdfstore.pyto generate an HDF store - then implement a meta table in the HDF file that stores the units of the columns
  
 ---- ----
Line 130: Line 137:
 **Difficulty:​** Hard **Difficulty:​** Hard
  
-**Astronomy knowledge needed:** Medium+**Astronomy knowledge needed:** Medium/High
  
 **Mentors:​** @unoebauer, @chvogl **Mentors:​** @unoebauer, @chvogl
Line 146: Line 153:
 {{::​lucy1999_formal_vs_mc.png?​600|}} {{::​lucy1999_formal_vs_mc.png?​600|}}
  
-A first implementation of this method ​in TARDIS ​has been performed ​during ​the ESA Summer of Code in Space (SOCIS). ​The goal of this project ​is to extend ​the current scheme to include ​electron scattering and to  +A first basic Python ​implementation of this method has been realised ​during ESA'​s ​Summer of Code in Space 2016 program ​(SOCIS ​2016). In this year, we aim at porting the scheme to the C-part ​of TARDIS. Furthermore,​ the Formal Integral method should be completed during ​this project ​by incorporating ​the effect of electron scattering and by interfacing ​the technique with the Macro Atom-based ​line interactions ​treatment ​of TARDIS (c.f. [[http://​www.aanda.org/​articles/​aa/​ref/​2002/​11/​aa1428/​aa1428.html|Lucy 2002]])For this project ​we think that firm physics ​or astrophysics background will be advantageous.
-allow the treatment of line interactions ​with the macro atom scheme ​of [[http://​www.aanda.org/​articles/​aa/​ref/​2002/​11/​aa1428/​aa1428.html|Lucy 2002]]. ​The macro atom scheme constitutes a more sophisticated approach to line interactions than the currently used downbranch scheme. +
-This project ​requires ​bit of physics ​knowledge.+
  
-**Your first objective if you choose to accept the mission:** Implement the calculation of the source function in C. The current implementation is done in python with pandas. Assume the following function declaration with att_S_ul as the output:+**Your first objective if you choose to accept the mission:** Implement the calculation of the source function in C. The current implementation is done in python with pandas. Assume the following function declaration with att_S_ul as the output ​and the storage structure as the input:
  
-''​void integrate_source_function (..., double *att_S_ul);''​+''​void integrate_source_function (storage_model_t *storage, double *att_S_ul);''​
  
 **Hints:​** ​   ​ **Hints:​** ​   ​
Line 185: Line 190:
  
  
-**Your first objective if you choose to accept the mission:** Make a Pandas DataFrame with columns atomic_number,​ mass_number,​ mass - then use PYNE [[http://​pyne.io/​|PYNE]] to write a function that takes this table decays it for 100 days and returns a table with the decayed masses. ​+**Your first objective if you choose to accept the mission:** Make a Pandas DataFrame with columns atomic_number,​ mass_number,​ mass - then use [[http://​pyne.io/​|PYNE]] to write a function that takes this table decays it for 100 days and returns a table with the decayed masses. ​
  
  
ideas_page.1485512765.txt.gz · Last modified: 2017/01/27 11:26 by unoebauer