Astronomy 415: Fall 2022
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 TA: Haoying Dai Class: ATL 2428 Lectures: Tuesday and Thursday from 2:00pm to 2:15pm First class: Tue Aug 30 Last class: Thu Dec 08
What's New?
Contact info and Notes
 Office: PSC 1156
 Email: ricotti "at" astro "dot" umd "dot" edu
 Phone: (301) 405 5097
 Office hours: Friday 11am12pm or by appointment
 Class web page: http://www.astro.umd.edu/~ricotti/NEWWEB/teaching/ASTR415_22.html
Course Outline
The Syllabus is available on ELMS and here: Syllabus.
Date  Lecture  Reading (NRiC)  Lecture Notes  Homework  

#1  Aug 30  Introduction to the course      Intro Architecture 
#2  Sept 1  Computer architecture  Computer architecture  class02.pdf  
#3  Sept 6  Introduction to UNIX  tutorial    Intro Programs 
#4  Sept 8  Introduction to C  1.11.2, tutorial    
#5  Sept 13  Examples in C and debugger  1.11.2, tutorial  GDB.pdf  
#6  Sept 15  Parellel Computing (CPU and GPU)  tutorial    
#7  Sept 20  Data representation  1.3  class05.pdf/pres05.pdf  HW1 due 
#8  Sept 22  Linear algebra, part 1 (GaussJordan elimination)  2.02.3  class06.pdf/pres06.pdf  
#9  Sept 27  Linear algebra, part 2 (LU & SVD decomposition)  2.42.6  class07.pdf/pres07.pdf  
#10  Sept 29  Root finding in 1D  9.09.1, 9.4, 9.6  class08.pdf/pres08.pdf  
#11  Oct 04  Root finding in multiD, and numerical differentiation  5.7  class09.pdf/pres09.pdf  HW2 due 
#12  Oct 06  Statistics and the KS test  14.014.3  class10.pdf/pres10.pdf  
#13  Oct 11  Leastsquares fitting  15.015.2, 15.415.5  class11.pdf/pres11.pdf  
#14  Oct 13  Random numbers and cryptography  7.07.2  class12.pdf/pres12.pdf  
#15  Oct 18  Numerical integration  7.6, 4.04.4, 4.6  class13.pdf/pres13.pdf  HW3 due 
#16  Oct 20  Integration of ODEs, part 1 (IVPs)  16.016.1  class14.pdfi/pres14.pdf  
#17  Oct 25  Integration of ODEs, part 2 (leapfrog)    class15.pdf/pres15.pdf  
#18  Oct 27  Integration of ODEs, part 3 (stiff ODEs & 2pt BVPs)  16.6, 17.0  class16.pdf/pres16.pdf  HW4 due 
#19  Nov 01  Integration of ODEs, part 4    class17.pdf/pres17.pdf  
#20  Nov 03  Nbody techniques, part 1    class18.pdf/pres18.pdf  
#21  Nov 08  Nbody techniques, part 2 (PP)  19.0, 19.419.6  class19.pdf/pres19.pdf  HW5 due 
#22  Nov 10  Nbody techniques, part 3 and 4 (PM)    class20.pdf/pres20.pdf class21.pdf/pres21.pdf  
#23  Nov 15  Integration of PDEs, part 1 (ell & hyp)  19.2  class22.pdf/pres22.pdf  
#24  Nov 17  Integration of PDEs, part 2 (hyp & par)  19.2  class23.pdf/pres23.pdf  HW6 due 
#25  Nov 22  Fluid dynamics, part 1 (eqns)  19.3  class24.pdf/pres24.pdf  
  Nov 24  no class Thanksgiving      
#26  Nov 29  Fluid dynamics, part 2 (methods)    class25.pdf/pres25.pdf  
#27  Dec 01  Term project presentations      Term Project Due 
#28  Dec 06  Term project presentations      
#29  Dec 08  Term project presentations      
  Likely not covered  Fourier transform, part 1 (intro)  12.012.1, 19.4  class26.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 
Textbooks
 There are no required textbooks
 Recommended:
 Numerical recipes [3rd Edition], by Press, W.H. et al.
Course Grading
 Homework 80%
 Term Project 20%
The homework is the most important part of the class. In class participation is strongly encouraged.
Class Survey
Survey on Computer ProficiencyHomework
Homework will be assigned every week or every other week and posted on ELMS. 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 (also posted on ELMS) 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.
Homework assigned: posted on ELMS
You can turn in your homework either by email or using Dropbox. If you do not have yet a Dropbox account please open one using this link: Dropbox personal referral link (using this link we will both get extra free storage). Once you have dropbox account create a directory within Dropbox named ASTR415_22_Lastname, and share it with me using the following email (mricotti at gmail.com).
Tutorials

Old Class Notes

Useful Links
Tutorial on Python: PYTHON TUTORIAL Numpy: Numpy reference Matplotlib: Matplotlib reference Tutorial on Pointers: 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
