Astronomy 415: Spring 2007

"Computational Astrophysics"

This course will provide the astronomy student with a basic knowledge of numerical methods in astrophysics. By the end of the course students should be comfortable working in a Unix environment, compiling and running codes, and employing a variety of visualization techniques to analyze the results. This process will be motivated by concrete examples of modern problems in astrophysics that demand numerical approaches.

The exact details of the material covered will depend on the existing level of computer sophistication among the class participants. However, in broad outline the major course topics will include linear algebra, root finding, least-square fitting, Monte Carlo methods, numerical integration, N-body methods, fluid dynamics, FFTs and time-series analysis.

Most of the material in this class and the web resources have been developed by Derek C. Richardson.Thanks Derek!


    Instructor:  Massimo Ricotti
    Class:       room CSS 2428
    Lectures:    Tuesday and Thursday from 12:30pm to 13:45pm
    First class: Th Jan 25 
    Last  class: Th May 10

What's New?

May 1: Problem Set #5 solutions posted.
May 1: Online course evaluation open Apr 27-May 4 - please participate!
Apr 26: Problem Set #6 posted.
Apr 23: Problem Set #4 solutions posted.
Apr 12: Data files for the Term Project posted.
Apr 12: Problem Set #5 posted.
Apr 04: Problem Set #3 solutions posted.
Apr 04: Problem Set #4 posted.
Mar 08: Term project assignment posted.
Mar 06: Problem Set #2 solutions posted.
Mar 06: Problem Set #3 posted It is long, start early!
Feb 20: Problem Set #1 solutions posted.
Feb 20: Problem Set #2 posted.
Feb 03: Intro to C tutorial examples posted.
Feb 03: Survey results posted.
Feb 01: Problem Set #1 posted.

Contact info and Notes

This Course has been taught in previous years by Derek Richardson (currently on sabbatical leave). I plan to follow rather closely the syllabus and material (including notes and homework assignments) developed by Derek. My "native" programming language is the old FORTRAN77, but to make this course more young and exciting I will refresh my C knowledge and pretend I know how to program in C. Along the way I may complement the lectures with power point presentations available on the web on computational astrophysics. I will try to keep this webpage updated and link all the course material here.

Course Outline

The Syllabus is available in HTML and PDF format.

DateLectureReading (NRiC)Lecture Notes

#1Jan 25Introduction to the course--
#2Jan 30Computer architecture-class02.pdf
#3Feb 01Introduction to UNIXtutorial-
#4Feb 06Introduction to C1.1-1.2, tutorial-
#5Feb 08Introduction to C (cont.)1.1-1.2, tutorial-
#6Feb 13Introduction to visualizationtutorialclass05.pdf
#7Feb 15Data representation1.3class05.pdf
#8Feb 20Linear algebra, part 1 (Gauss-Jordan elimination)2.0-2.3class06.pdf
#9Feb 22Linear algebra, part 2 (LU & SVD decomposition)2.4-2.6class07.pdf
#10Feb 27 Root finding in 1-D9.0-9.1, 9.4, 9.6class08.pdf
#11Mar 01Root finding in multi-D, and numerical differentiation5.7class09.pdf
#12Mar 06Statistics and the K-S test14.0-14.3class10.pdf
#13Mar 08Least-squares fitting15.0-15.2, 15.4-15.5class11.pdf
#14Mar 13Random numbers and cryptography7.0-7.2class12.pdf
#15Mar 15Numerical integration7.6, 4.0-4.4, 4.6class13.pdf
-Mar 20no class (Spring break)--
-Mar 22no class (Spring break)--
#16Mar 27Integration of ODEs, part 1 (IVPs)16.0-16.1class14.pdf
#17Mar 29Integration of ODEs, part 2 (leapfrog)-class15.pdf
#18Apr 03Integration of ODEs, part 3 (stiff ODEs & 2-pt BVPs)16.6, 17.0class16.pdf
#19Apr 05N-body techniques, part 1-class17.pdf
#20Apr 10N-body techniques, part 2 (PP)-class18.pdf
#21Apr 12N-body techniques, part 3 (PM)19.0, 19.4-19.6class19.pdf
#22Apr 17N-body techniques, part 4 (tree)-class20.pdf
#23Apr 19 Integration of PDEs, part 1 (ell & hyp)19.0-19.1class21.pdf
#24Apr 24 Integration of PDEs, part 2 (hyp & par)19.2class22.pdf
#25Apr 26Fluid dynamics, part 1 (eqns)-class23.pdf
#26May 01Fluid dynamics, part 2 (methods)19.3class24.pdf
#27May 03Miscellaneous topics--
#28May 08Term project presentation--
#29May 10Term project presentation--


There are no required textbooks
Numerical recipes in Fortran [or in C], by Press, W.H. et al.

Course Grading

There are no exams for this course. Class participation is strongly encouraged.

Class Survey Results

The level of computer and programming competence of the students in this class (measured the first day of class) is very heterogeneous as indicated by the result of the class survey. The survey results are available in HTML and PDF format. I will start the lectures with simple and, for some of you, obvious concepts and finish with more complex and challenging topics that may entertain the more experienced students in the class.


Homework will be assigned every week or every other week. Their due dates will be announced at the time they are assigned. On the due date the students will be expected to turn in their homework in class. The homework turned in will be graded and returned to the students. I will provide solutions and discuss them in class.

Link to Numerical Recipes sources in C and in Fortran: it is preferable to compile the recipes as separate files rather than cut and paste the functions into your source code.

Note that in order to use NRiC routines the easiest way is to nclude nr.h header file and nrutil.c and nrutil.h to use vectors and matrices. You can find these files here.

Problem setDateProblem SetSolutionsExtras
#6Apr 26May 16HTML/PDF/PSHTML/PDF/PSmovie

Term Project
AssignedDue dateData
HTML/PDF /PSMar 08 May 08K-H instability/Jet(hdf4) /K-H(hdf5)/Shock/Bondi
The following data files are in HDF4 format. "K-H" is a 3D simulation of Kelvin-Helmoltz instability in 3D (Cartesian grid: 100x100x100). "Jet" is a simulation of a Jet in a Galaxy cluster (made by John Vernaleo) using a spherical grid 200x200x100. The files have density, internal energy, and v1, v2, v3 along with the axis values in them. Both simulations are performed using ZeusMPv.1.5 (see John Vernaleo's homepage. I posted only one snapshot but I have about 200 of them if you like to make a movie.

IMPORTANT UPDATE: I did not manage to convert HDF4 files into HDF5 format. I have posted 2 other files in NETCDF format. "Shock" is a simulation of an oblique shock in Cartesian coordinates (100x100x100) and "Bondi" is a simulation of Bondi accretion onto a moving point mass in spherical coordinates (200x100x100). Both simulations were created using a parallel version of VH1. I have also some tools to convert HDF4 files into text files or IFRIT file format. If you think you need these tools I can e-mail them upon request.


Old Class Notes

    These notes were part of the "first edition" of this course (ASTR688N) in Spring 2001.

Useful Links

Check out the UMD Astronomy Computing Wiki!

(In the listings below, a "W" link indicates a Wikipedia entry on the topic is available.)

Online Tutorials Free Software General Stuff