Astronomy 615: Fall 2015
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: CSS 0201 Lectures: Monday and Wednesday from 2:00pm to 3:15pm First class: Mon Aug 31 Last class: Wed Dec 09
What's New?
Dec 16th: Final  Wed Dec 16th from 10:30am12:30pm in CSS 0201  (nonofficial date agreed upon by all students) 
Dec 10: Sample Final exam posted. 
Nov 30: Online course evaluation open Nov 30Dec 13  please participate. 
Nov 18: Problem Set #6 posted (the last one! due Dec 7). 
Nov 4: Problem Set #5 posted (due Nov 18). 
Oct 26: Problem Set #4 posted (due Nov 4). 
Oct 14: MIDTERM 
Oct 7: Sample Midterm exams posted. 
Oct 7: Problem Set #3 posted (due Oct 21). 
Sept 23: Problem Set #2 posted (due Oct 5th). 
Sept 23: Tutorial on GNU's GDB Debugger and Pointers. 
Sep 14: Play with C examples. 
Sep 14: Problem Set #1 posted (due Sep 23rd). 
Sep 02: Survey result posted. 
Aug 31: First class 
Contact info and Notes
 Office: PSC 1156
 Email: ricotti "at" astro "dot" umd "dot" edu
 Phone: (301) 405 5097
 Office hours: Fridays at 11am or by appointment
 Class web page: http://www.astro.umd.edu/~ricotti/NEWWEB/teaching/current.html
Course Outline
The Syllabus is available in PDF format.
Textbooks
 There are no required textbooks
 Recommended:
 Numerical recipes in FORTRAN [or in C], by Press, W.H. et al.
Course Grading
 Homework 50%
 Midterm 20%
 Final 30%
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.
Sample of Past Midterm Exams
Sample of Past Final Exams
Class Survey
Survey resultsHomework
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.
Date  Lecture  Reading (NRiC)  Lecture Notes  

#1  Aug 31  Introduction to the course and survey     
#2  Sep 02  Computer architecture  Computer architecture  class02.pdf 
  Sep 07  no class Labor Day     
#3  Sep 09  Introduction to UNIX  tutorial   
#4  Sep 14  Introduction to C  1.11.2, tutorial   
#5  Sep 16  Examples in C and debugger  1.11.2, tutorial  GDB.pdf 
#6  Sep 21  Examples in C and debugger (cont)  1.11.2, tutorial   
#7  Sep 23  Data representation  1.3  class05.pdf/pres05.pdf 
#8  Sep 28  Linear algebra, part 1 (GaussJordan elimination)  2.02.3  class06.pdf/pres06.pdf 
#9  Sep 30  Linear algebra, part 2 (LU & SVD decomposition)  2.42.6  class07.pdf/pres07.pdf 
#10  Oct 05  Root finding in 1D  9.09.1, 9.4, 9.6  class08.pdf/pres08.pdf 
#11  Oct 07  Root finding in multiD, and numerical differentiation  5.7  class09.pdf/pres09.pdf 
#12  Oct 12  Statistics and the KS test  14.014.3  class10.pdf/pres10.pdf 
  Oct 14  MIDTERM     
#13  Oct 19  Leastsquares fitting  15.015.2, 15.415.5  class11.pdf/pres11.pdf 
#14  Oct 21  Random numbers and cryptography  7.07.2  class12.pdf/pres12.pdf 
#15  Oct 26  Numerical integration  7.6, 4.04.4, 4.6  class13.pdf/pres13.pdf 
#16  Oct 28  Integration of ODEs, part 1 (IVPs)  16.016.1  class14.pdf/pres14.pdf 
#17  Nov 02  Integration of ODEs, part 2 (leapfrog)    class15.pdf/pres15.pdf 
#18  Nov 04  Integration of ODEs, part 3 (stiff ODEs & 2pt BVPs)  16.6, 17.0  class16.pdf/pres16.pdf 
#19  Nov 09  Integration of ODEs, part 4    class17.pdf/pres17.pdf 
#20  Nov 11  Nbody techniques, part 1    class18.pdf/pres18.pdf 
#21  Nov 16  Nbody techniques, part 2 (PP)  19.0, 19.419.6  class19.pdf/pres19.pdf 
#22  Nov 18  Nbody techniques, cont     
#23  Nov 23  Nbody techniques, part 3 (PM)    class20.pdf/pres20.pdf 
#24  Nov 25  Nbody techniques, part 4 (Tree)    class21.pdf/pres21.pdf 
#25  Nov 30  Integration of PDEs, part 1 (ell & hyp)  19.2  class22.pdf/pres22.pdf 
#26  Dec 02  Integration of PDEs, part 2 (hyp & par)  19.2  class23.pdf/pres23.pdf 
#27  Dec 07  Fluid dynamics, part 1 (eqns)  19.3  class24.pdf/pres24.pdf 
#28  Dec 09  Fluid dynamics, part 2 (methods)    class25.pdf/pres25.pdf 
  Likely not covered  Fourier transform, part 2 (FFT)  12.2, 13.013.2, 13.4  class27.pdf 
  Likely not covered  Other topics    class28.pdf 
  Dec 16  FINAL (10:30am12:30pm)     
Problem set  Date  Problem Set  Extras  
Assigned  Due  
#1  Sep 14  Sep 23  HTML/PDF  
#2  Sept 23  Oct 5  HTML/PDF  
#3  Oct 7  Oct 21  HTML/PDF  data 
#4  Oct 26  Nov 4  HTML/PDF  
#5  Nov 4  Nov 18  HTML/PDF  
#6  Nov 18  Dec 7  HTML/PDF 
Tutorials

Old Class Notes

Useful Links
Tutorial on Pointer: TUTORIAL ON POINTERS AND ARRAYS IN C Debugger's Links: Using GNU's GDB Debugger Debugging Floating Point Exceptions OpenMP links: OpenMP.org OpenMP Tutorial Wiki OpenMPCUDA 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
