Astronomy 415: Fall 2010

"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.


    Instructor:  Massimo Ricotti
    Class:       room CSS 2428
    Lectures:    Tuesday and Thursday from 12:30pm to 13:45pm
    First class: Tue Aug 31 
    Last  class: Thu Dec 9

What's New?

Dec 7: Problem Set #4 solutions posted.
Dec 2: Problem Set #6 posted.
Nov 30: Online course evaluation open Nov 29-Dec 12 - please participate. If we reach 70\% response rate I will bring cookies or cake in class!!
Nov 23: Term project assignment posted.
Nov 18: Problem Set #5 posted.
Nov 16: Problem Set #3 solutions posted.
Nov 2: Problem Set #4 posted.
Nov 2: Problem Set #2 solutions posted.
Oct 19: Problem Set #3 posted It is long, start early!
Oct 12: Problem Set #1 solutions posted.
Oct 5: Problem Set #2 posted.
Sept 21: Problem Set #1 posted.
Sept 13: Play with C examples and "Makefile mistery".
Sept 02: Survey results posted.

Contact info and Notes

Course Outline

The Syllabus is available in HTML and PDF format.

DateLectureReading (NRiC)Lecture Notes

#1Aug 31Introduction to the course--
#2Sep 02Computer architecture-class02.pdf
#3Sep 07Introduction to UNIXtutorial-
#4Sep 09Introduction to C1.1-1.2, tutorial-
#5Sep 14Introduction to C (cont.)1.1-1.2, tutorial-
#6Sep 16Introduction to visualizationtutorialclass05.pdf
#7Sep 21Data representation1.3class05.pdf
#8Sep 23Linear algebra, part 1 (Gauss-Jordan elimination)2.0-2.3class06.pdf
#9Sep 28Linear algebra, part 2 (LU & SVD decomposition)2.4-2.6class07.pdf
#10Sep 30 Root finding in 1-D9.0-9.1, 9.4, 9.6class08.pdf
#11Oct 05Root finding in multi-D, and numerical differentiation5.7class09.pdf
#12Oct 07Statistics and the K-S test14.0-14.3class10.pdf
#13Oct 12Least-squares fitting15.0-15.2, 15.4-15.5class11.pdf
#14Oct 14Random numbers and cryptography7.0-7.2class12.pdf
#15Oct 19Numerical integration7.6, 4.0-4.4, 4.6class13.pdf
#16Oct 21Integration of ODEs, part 1 (IVPs)16.0-16.1class14.pdf
#17Oct 26Integration of ODEs, part 2 (leapfrog)-class15.pdf
#18Oct 28Integration of ODEs, part 3 (stiff ODEs & 2-pt BVPs)16.6, 17.0class16.pdf
#19Nov 02Integration of ODEs, part 4-class17.pdf
#20Nov 04N-body techniques, part 1 -class18.pdf
#21Nov 09N-body techniques, part 2 (PP)19.0, 19.4-19.6class19.pdf
#22Nov 11N-body techniques, part 3 (PM)-class20.pdf
#23Nov 16N-body techniques, part 4 (tree)-class21.pdf
#24Nov 18 Integration of PDEs, part 1 (ell & hyp)19.2class22.pdf
#25Nov 23Integration of PDEs, part 2 (hyp & par)-class23.pdf
-Nov 25no class (Thanksgiving)--
#26Nov 30Fluid dynamics, part 1 (eqns)19.3class24.pdf
#27Dec 02Fluid dynamics, part 2 (methods)-class25.pdf
#28Dec 07Term project presentation--
#29Dec 09Term project presentation--
-Not coveredFourier transform, part 1 (intro)12.0-12.1, 19.4class26.pdf
-Not coveredFourier transform, part 2 (FFT)12.2, 13.0-13.2, 13.4class27.pdf
-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

There are no exams for this course. 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/Beginner" 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 SetSolutionsExtras
#1Sept 21Sept 30HTML/PDFHTML/PDF 
#2Oct 5Oct 19HTML/PDFHTML/PDFdata
#3Oct 19Nov 2HTML/PDFHTML/PDFdata
#4Nov 2Nov 16 (deadline extended)HTML/PDFHTML/PDF 
Term ProjectNov 23Dec 9HTML/PDF
#6Dec 2Dec 9HTML/PDFHTML/PDFmovie


Old Class Notes

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

Useful Links

OpenMP links: 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