Astronomy 415: Spring 2009
"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, leastsquare fitting, Monte Carlo methods, numerical integration, Nbody methods, fluid dynamics, FFTs and timeseries analysis.
Schedule
Instructor: Massimo Ricotti Class: room CSS 2428 Lectures: Tuesday and Thursday from 12:30pm to 13:45pm First class: Tu Jan 27 Last class: Tu May 12
What's New?
Apr 29: Online course evaluation open Apr 28May 13  please participate! 
Apr 28: Problem Set #6 posted. 
Apr 21: Problem Set #4 solutions posted. 
Apr 16: Term project assignment posted. 
Apr 14: Problem Set #5 posted. 
Apr 14: Problem Set #3 solutions posted. 
Mar 31: Problem Set #4 posted. 
Mar 31: Problem Set #2 solutions posted. 
Mar 12: Problem Set #3 posted It is long, start early! 
Feb 19: Problem Set #1 solutions posted. 
Feb 19: Problem Set #2 posted. 
Feb 19: Intro to C tutorial examples posted. 
Feb 05: Problem Set #1 posted. 
Feb 03: Survey results posted. 
Contact info and Notes
 Office: room CSS 0213
 Email: ricotti "at" astro "dot" umd "dot" edu
 Phone: (301) 405 5097
 Office hours: Tuesday 2:303:30 or by appointment
 Class web page: http://www.astro.umd.edu/~ricotti/NEWWEB/teaching/current.html
Course Outline
The Syllabus is available in HTML and PDF format.
Date  Lecture  Reading (NRiC)  Lecture Notes  

#1  Jan 27  Introduction to the course     
#2  Jan 29  Computer architecture    class02.pdf 
#3  Feb 03  Introduction to UNIX  tutorial   
#4  Feb 05  Introduction to C  1.11.2, tutorial   
#5  Feb 10  Introduction to C (cont.)  1.11.2, tutorial   
#6  Feb 12  Introduction to visualization  tutorial  class05.pdf 
#7  Feb 17  Data representation  1.3  class05.pdf 
#8  Feb 19  Linear algebra, part 1 (GaussJordan elimination)  2.02.3  class06.pdf 
#9  Feb 24  Linear algebra, part 2 (LU & SVD decomposition)  2.42.6  class07.pdf 
#10  Feb 26  Root finding in 1D  9.09.1, 9.4, 9.6  class08.pdf 
#11  Mar 03  Root finding in multiD, and numerical differentiation  5.7  class09.pdf 
#12  Mar 05  Statistics and the KS test  14.014.3  class10.pdf 
#13  Mar 10  Leastsquares fitting  15.015.2, 15.415.5  class11.pdf 
#14  Mar 12  Random numbers and cryptography  7.07.2  class12.pdf 
  Mar 17  no class (Spring break)     
  Mar 19  no class (Spring break)     
#15  Mar 24  Numerical integration  7.6, 4.04.4, 4.6  class13.pdf 
#16  Mar 26  Integration of ODEs, part 1 (IVPs)  16.016.1  class14.pdf 
#17  Mar 31  Integration of ODEs, part 2 (leapfrog)    class15.pdf 
#18  Apr 02  Integration of ODEs, part 3 (stiff ODEs & 2pt BVPs)  16.6, 17.0  class16.pdf 
#19  Apr 07  Integration of ODEs, part 4    class17.pdf 
#20  Apr 09  Nbody techniques, part 1    class18.pdf 
#21  Apr 14  Nbody techniques, part 2 (PP)  19.0, 19.419.6  class19.pdf 
#22  Apr 16  Nbody techniques, part 3 (PM)    class20.pdf 
#23  Apr 21  Nbody techniques, part 4 (tree)    class21.pdf 
#24  Apr 23  Integration of PDEs, part 1 (ell & hyp)  19.2  class22.pdf 
#25  Apr 28  Integration of PDEs, part 2 (hyp & par)    class23.pdf 
#26  Apr 30  Fluid dynamics, part 1 (eqns)  19.3  class24.pdf 
#27  May 05  Fluid dynamics, part 2 (methods)    class25.pdf 
#28  May 07  Term project presentation     
#29  May 12  Term project presentation     
  Not covered  Fourier transform, part 1 (intro)  12.012.1, 19.4  class26.pdf 
  Not covered  Fourier transform, part 2 (FFT)  12.2, 13.013.2, 13.4  class27.pdf 
  Not covered  Other topics    class28.pdf 
Textbooks
 There are no required textbooks
 Recommended:
 Numerical recipes in FORTRAN [or in C], by Press, W.H. et al.
Course Grading
 Homework 80%
 Term Project 20%
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 good 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
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.
No homework assigned yet.
Problem set  Date  Problem Set  Solutions  Extras  
Assigned  Due  
#1  Feb 5  Feb 17  HTML/PDF  HTML/PDF  
#2  Feb 19  Mar 5  HTML/PDF  HTML/PDF  data  
#3  Mar 12  Mar 26  HTML/PDF  HTML/PDF  data  
#4  Mar 31  Apr 09  HTML/PDF  HTML/PDF  
#5  Apr 14  Apr 28  HTML/PDF  HTML/PDF  
Term Project  Apr 16  May 7  HTML/PDF  
Alternate Term Project  Apr 16  May 7  HTML/PDF  
#6  Apr 28  May 5  HTML/PDF  HTML/PDF  movie 
Tutorials

Old Class Notes

Useful Links
CUDA link: Nvidia webpage with examples to download 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
