next up previous
Next: About this document ...

Astronomy 415 - Spring 2007
``Computational Astrophysics''
cm Instructor

Prof. Massimo Ricotti
Office: CSS 0213
Phone: (301) 405 5097
Office hours: Tu 2:30-3:30
Class web page:$\sim$ricotti/NEWWEB/teaching/ASTR415.html

Class Schedule

Lectures on Tuesday and Thursday from 12:30pm to 13:45pm
Room CSS 2428


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 the webpage updated and link all the course material there.

Course Description

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.

Recommended Texts

There is no required text for this course. The following recommendations may be helpful to you. Note that much of the course material will follow, Numerical Recipes, which is available online. Most in-class programming examples will be in Fortran77, but you are free to chose from any suitable languages for completing the assignments.

Aarseth, S. J. 2003, ``Gravitational -body Simulations: Tools and Algorithms,'' Cambridge Univ. Press.

Hockney, R. W., and J. W. Eastwood 1988, ``Computer Simulation Using Particles,'' Hilger. [Out of print?]

Kernigan, B. W., and D. M. Ritchie 1988, ``The C Programming Language'' (2nd ed.), Prentice-Hall.

Peek, J. D., et al. 1997, ``Learning the Unix Operating System (Nutshell Handbook)'' (4th ed.), O'Reilly.

Prata, S. 1998, ``The Waite Group's C Primer Plus'' (3rd ed.), Howard W. Sams & Co.

Press, W.H. et al. 1992, ``Numerical Recipes in Fortran [or C or C++]'' (2nd ed.), Cambridge Univ Press - visit the website at

Yee, H.C. 1989, ``A class of High-resolution Explicit and Implicit Shock-Capturing Methods'', Tech. Report Lecture Series 1989-04, von Karman Institute of Fluid Dynamics [difficult to find?]

Course Grading

A 87.5% and above
B 75 to below 87.5%
C 62.5 to below 75%
D 50 to below 62.5%
F below 50%

There will be no exams in this course. Grades will be determined by homework assignments plus one term paper. The assignments will be worth 80% of your final grade; the term paper will be 20%.

There will be no curve on the final grades. There may need to be some adjustment to scores depending on the class average; however, any adjustment will be to lower the percentages given above, never to raise them.


Most assignments involve programming exercises. To make evaluating your work easier, you must e-mail me a single ``stand-alone'' file containing all your work by the start of class on the day the assignment is due. The file (e.g., a gizp tar archive or a zip file) must contain a suitable formatted response (e.g., PDF, Poscript, Word document, etc) to the questions posed in the assignment, along with a description of the remaining contents of the file, including, as needed, instructions on compiling and running any source code. Ideally a Makefile should be provided. Any static graphical output (plots, etc.) should be embedded in the response document.

I will compile and run your code with a set of test parameters to ensure correct functionality and error handling. I will also consider your coding style when evaluating your work. I discourage the use of any programming language other than Fortran77, Fortran90, C and C++.

Assignments that are late will automatically incur a 20% penalty unless there are extenuating circumstances. Late assignments must be completed before the solutions are posted on the web to get any credit.

You may work in groups to discuss programming strategy, but you must submit your own solution to each assignment. Note that, just as for written prose, it is necessary to cite the source of any algorithms you use in completing assignments. This includes Numerical Recipes routines that you use.

Students with Special Needs

Students with a documented disability who wish to discuss academic accommodations should contact me as soon as possible.

Tentative Course Outline

Date Lecture Reading (NRiC)
#1 Jan 25 Introduction to the course and survey -
#2 Jan 30 Computer architecture, part 1 -
#3 Feb 01 Computer architecture, part 2 -
#4 Feb 06 Introduction to UNIX tutorial
#5 Feb 08 Introduction to C 1.1-1.2, tutorial
#6 Feb 13 Introduction to visualization tutorial
#7 Feb 15 Data representation 1.3
#8 Feb 20 Linear algebra, part 1 (Gauss-Jordan elimination) 2.0-2.3
#9 Feb 22 Linear algebra, part 2 (LU & SVD decomposition) 2.4-2.6
#10 Feb 27 Root finding in 1-D 9.0-9.1, 9.4, 9.6
#11 Mar 01 Root finding in multi-D, and numerical differentiation 5.7
#12 Mar 06 Statistics and the K-S test 14.0-14.3
#13 Mar 08 Least-squares fitting 15.0-15.2, 15.4-15.5
#14 Mar 13 Random numbers and cryptography 7.0-7.2
#15 Mar 15 Numerical integration 7.6, 4.0-4.4, 4.6
- Mar 20 no class (Spring break) -
- Mar 22 no class (Spring break) -
#16 Mar 27 Integration of ODEs, part 1 (IVPs) 16.0-16.1
#17 Mar 29 Integration of ODEs, part 2 (leapfrog) -
#18 Apr 03 Integration of ODEs, part 3 (stiff ODEs & 2-pt BVPs) 16.6, 17.0
#19 Apr 05 N-body techniques, part 1 -
#20 Apr 10 N-body techniques, part 2 (PP) -
#21 Apr 12 N-body techniques, part 3 (PM) 19.0, 19.4-19.6
#22 Apr 17 N-body techniques, part 4 (tree) -
#23 Apr 19 Integration of PDEs, part 1 (ell & hyp) 19.0-19.1
#24 Apr 24 Integration of PDEs, part 2 (hyp & par) 19.2
#25 Apr 26 Fluid dynamics, part 1 (eqns) -
#26 May 01 Fluid dynamics, part 2 (methods) 19.3
#27 May 03 Miscellaneous topics -
#28 May 08 Term project presentation -
#29 May 10 Term project presentation -

Note: check online the for the updated Course outline.

next up previous
Next: About this document ...
Massimo Ricotti 2007-02-05