Astronomy 615: Spring 2014
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.
Schedule
Instructor: Massimo Ricotti Class: CSS 0201 Lectures: Tuesday and Thursday from 12:30pm to 1:45pm First class: Tu Jan 28 Last class: Tu May 13
What's New?
April 29: Problem Set #6 posted (the last one!). |
April 15: Problem Set #5 posted. |
March 27: Problem Set #4 posted. |
March 13: MIDTERM |
March 6: Problem Set #3 posted (due March 25th). |
Feb 20: Problem Set #2 posted (due March 4th). |
Feb 18: Tutorial on GNU's GDB Debugger and Pointers. |
Feb 13: Play with C examples. |
Feb 11: Problem Set #1 posted (due Feb 18th). |
Jan 30: Survey result posted. |
Jan 28: First class |
Contact info and Notes
- Office: PSC 1156
- E-mail: ricotti "at" astro "dot" umd "dot" edu
- Phone: (301) 405 5097
- Office hours: TBD 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 28 | Introduction to the course | - | - |
#2 | Jan 30 | Computer architecture | Computer architecture | class02.pdf |
#3 | Feb 04 | Introduction to UNIX | tutorial | - |
#4 | Feb 06 | Introduction to C | 1.1-1.2, tutorial | - |
#5 | Feb 11 | Introduction to C (cont.) | 1.1-1.2, tutorial | - |
#6 | Feb 13 | Introduction to visualization | tutorial | class05.pdf |
#7 | Feb 18 | Data representation | 1.3 | class05.pdf |
#8 | Feb 20 | Linear algebra, part 1 (Gauss-Jordan elimination) | 2.0-2.3 | class06.pdf |
#9 | Feb 25 | Linear algebra, part 2 (LU & SVD decomposition) | 2.4-2.6 | class07.pdf |
#10 | Feb 27 | Root finding in 1-D | 9.0-9.1, 9.4, 9.6 | class08.pdf |
#11 | Mar 04 | Root finding in multi-D, and numerical differentiation | 5.7 | class09.pdf |
#12 | Mar 06 | Statistics and the K-S test | 14.0-14.3 | class10.pdf |
#13 | Mar 11 | Least-squares fitting | 15.0-15.2, 15.4-15.5 | class11.pdf |
-- | Mar 13 | MIDTERM | -- | -- | - | Mar 18 | no class Spring Break | - | - |
- | Mar 20 | no class Spring Break | - | - |
#14 | Mar 25 | Random numbers and cryptography | 7.0-7.2 | class12.pdf | #15 | Apr 01 | Numerical integration | 7.6, 4.0-4.4, 4.6 | class13.pdf |
#16 | Apr 03 | Integration of ODEs, part 1 (IVPs) | 16.0-16.1 | class14.pdf |
#17 | Apr 08 | Integration of ODEs, part 2 (leapfrog) | - | class15.pdf |
#18 | Apr 10 | Integration of ODEs, part 3 (stiff ODEs & 2-pt BVPs) | 16.6, 17.0 | class16.pdf |
#19 | Apr 15 | Integration of ODEs, part 4 | - | class17.pdf |
#20 | Apr 17 | N-body techniques, part 1 | - | class18.pdf |
#21 | Apr 22 | N-body techniques, part 2 (PP) | 19.0, 19.4-19.6 | class19.pdf |
#22 | Apr 24 | N-body techniques, part 3 and 4 (PM) | - | class20.pdfclass21.pdf< |
#23 | Apr 29 | Integration of PDEs, part 1 (ell & hyp) | 19.2 | class22.pdf |
#24 | May 01 | Integration of PDEs, part 2 (hyp & par) | 19.2 | class23.pdf |
#26 | May 06 | Fluid dynamics, part 1 (eqns) | 19.3 | class24.pdf |
#27 | May 08 | Fluid dynamics, part 2 (methods) | - | class25.pdf |
#28 | May 13 | Parallel Computing (CPU and GPU) | - | - |
- | Likely not covered | Fourier transform, part 1 (intro) | 12.0-12.1, 19.4 | class26.pdf |
- | Likely not covered | Fourier transform, part 2 (FFT) | 12.2, 13.0-13.2, 13.4 | class27.pdf |
- | Likely 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 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.
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" 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.
Problem set | Date | Problem Set | Extras | |
Assigned | Due | |||
#1 | Feb 11 | Feb 18 | HTML/PDF | |
#2 | Feb 20 | Mar 4 | HTML/PDF | |
#3 | March 6 | March 25 | HTML/PDF | data |
#4 | March 27 | April 10 | HTML/PDF | |
#5 | April 15 | April 24 | HTML/PDF | |
#6 | April 29 | May 13 | 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
|