Astronomy 615: Spring 2014

Computational Astrophysics

Milky Way in CDM and WDM (Polisensky & Ricotti 2011) 

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.


    Instructor:  Massimo Ricotti
    Class:       CSS 0201
    Lectures:    Tuesday and Thursday from 12:30pm to 1:45pm
    First class: Tu Jan 28 
    Last  class: Tu May 13

What's New?

April 29: Problem Set #6 posted (the last one!).
April 15: Problem Set #5 posted.
March 27: Problem Set #4 posted.
March 13: MIDTERM
March 6: Problem Set #3 posted (due March 25th).
Feb 20: Problem Set #2 posted (due March 4th).
Feb 18: Tutorial on GNU's GDB Debugger and Pointers.
Feb 13: Play with C examples.
Feb 11: Problem Set #1 posted (due Feb 18th).
Jan 30: Survey result posted.
Jan 28: First class

Contact info and Notes

Course Outline

The Syllabus is available in HTML and PDF format.

DateLectureReading (NRiC)Lecture Notes

#1Jan 28Introduction to the course--
#2Jan 30Computer architectureComputer architectureclass02.pdf
#3Feb 04Introduction to UNIXtutorial-
#4Feb 06Introduction to C1.1-1.2, tutorial-
#5Feb 11Introduction to C (cont.)1.1-1.2, tutorial-
#6Feb 13Introduction to visualizationtutorialclass05.pdf
#7Feb 18Data representation1.3class05.pdf
#8Feb 20Linear algebra, part 1 (Gauss-Jordan elimination)2.0-2.3class06.pdf
#9Feb 25Linear 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 04Root finding in multi-D, and numerical differentiation5.7class09.pdf
#12Mar 06Statistics and the K-S test14.0-14.3class10.pdf
#13Mar 11Least-squares fitting15.0-15.2, 15.4-15.5class11.pdf
--Mar 13MIDTERM----
-Mar 18no class Spring Break--
-Mar 20no class Spring Break--
#14Mar 25Random numbers and cryptography7.0-7.2class12.pdf
#15Apr 01Numerical integration7.6, 4.0-4.4, 4.6class13.pdf
#16Apr 03Integration of ODEs, part 1 (IVPs)16.0-16.1class14.pdf
#17Apr 08Integration of ODEs, part 2 (leapfrog)-class15.pdf
#18Apr 10Integration of ODEs, part 3 (stiff ODEs & 2-pt BVPs)16.6, 17.0class16.pdf
#19Apr 15Integration of ODEs, part 4-class17.pdf
#20Apr 17N-body techniques, part 1 -class18.pdf
#21Apr 22N-body techniques, part 2 (PP)19.0, 19.4-19.6class19.pdf
#22Apr 24N-body techniques, part 3 and 4 (PM)-class20.pdfclass21.pdf<
#23Apr 29Integration of PDEs, part 1 (ell & hyp) 19.2class22.pdf
#24May 01 Integration of PDEs, part 2 (hyp & par)19.2class23.pdf
#26May 06Fluid dynamics, part 1 (eqns)19.3class24.pdf
#27May 08Fluid dynamics, part 2 (methods)-class25.pdf
#28May 13Parallel Computing (CPU and GPU)--
-Likely not coveredFourier transform, part 1 (intro)12.0-12.1, 19.4class26.pdf
-Likely not coveredFourier transform, part 2 (FFT)12.2, 13.0-13.2, 13.4class27.pdf
-Likely not coveredOther topics-class28.pdf


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

Course Grading

Note that the homework is the most important part of the class. However, because this is a graduate class, there will be 2 questions in the qualifyer exam concerning this class. So, midterm and final are a necessary evil to prepare you for the qualifyer. In class participation is strongly encouraged.

Class Survey Results

The starting level of computer and programming competence of the students in this class (measured the first day of class) is "Novice" 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 should entertain even the most 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 include nr.h header file and nrutil.c and nrutil.h to use vectors and matrices. You can find these files here.

Problem setDateProblem SetExtras
#1Feb 11Feb 18HTML/PDF 
#2Feb 20Mar 4HTML/PDF 
#3March 6March 25HTML/PDFdata
#4March 27April 10HTML/PDF 
#5April 15April 24HTML/PDF 
#6April 29May 13HTML/PDF 


Old Class Notes

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

Useful Links


Debugger's Links: Using GNU's GDB Debugger Debugging Floating Point Exceptions

OpenMP links: OpenMP Tutorial

Wiki OpenMP

CUDA and GPU computing: Nvidia webpage with examples to download Wiki OpenCL Wiki CUDA

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