Course Project#

Note

The final project counts as 1/4 of your total course grade. You are expected to work independently on the project.

The project is due on the last day of class, Thurs. May 4. There will be no extensions, since I need to turn in grades shortly afterwards.

For your final course project, you are to pick an interesting astrophysical problem or algorithm and explore it in some depth, to demonstrate you understand how the numerical method works and how it is used in research. You should pick a topic that interests you—some suggestions are given below but feel free to pick something else.

If you are implementing the algorithm yourself, then you will turn in your own code. If you are using an existing code or library, you will give detailed instructions on what you did, together with any code additions that were necessary.

Important

On the last day of class, each student will git a 5 minute / 1-2 slide summary of their project to the class

You will turn in:#

  1. You code

    • This can be a Jupyter notebook, C++ code, etc. if your wrote your own implementation of a method.

      Make sure I can build your code easily.

    • This may also be detailed instructions on how to obtain, modify, and reproduce your results using an external code if you chose to use that.

  2. A PDF write-up (abstract, introduction, description of what you did / results, figures, references). This is something that you can use for the upper-level writing requirement, if desired.

    This should include:

    • An Explanation of how the algorithm works, referring to the topics we learned in class.

    • A demonstration of converge (if applicable)

    • Some example tests where we know the right behavior (if applicable)

  3. 1-2 slides for the in-class presentation (details will be shared toward the end of the semester).

Some inspiration for projects:#

  • Integrate the pressure and energy for an electron gas (building on the example we did for the degeneracy parameter), and build a table that you can interpolate from.

  • Read more about symplectic integrators and implement a higher order one than we did in class (we did velocity-Verlet).

  • Implement the Barnes-Hut tree algorithm for approximating N-body gravity. https://en.wikipedia.org/wiki/Barnes–Hut_simulation

    Demonstrate that it works by comparing to the direct sum, \(\mathcal{O}(N^2)\) algorithm.

  • Any of the ODE example applications listed here: https://zingale.github.io/computational_astrophysics/ODEs/more-applications.html

  • Extending our linear advection solver to two-dimensions.

  • Reproduce the analysis of any astro paper that has publicly available data.

  • Download an existing simulation code and run some simulations (existing examples or your own sets of initial conditions). Some codes that you might read about include:

  • Read about the smoothed particle hydrodynamics method (SPH) for solving PDEs and implement a simple advection solver using this.

  • Read about some astrophysical applications of machine learning and try to reproduce their results or do some simple classification of astrophysical data on your own.

Rubric for grading#

Project scores will be assigned with the following weighting (out of 25)

  • clearly commented, working code the produces the results in your write-up or clear instructions + additional custom code needed to use an external code / library to reproduce your results. (10 pts.)

  • a thorough write-up that demonstrates that you understand:

    • the basic ideas of the algorithm you are working with

    • the astrophysical applications of your algorithm

    • the connections to the topics we covered in class

    • the limitations of the method

    and also indicates that you spent some time exploring the method in-depth.

    overall (12 pts.)

  • an in-class summary of your project (3 pts.)