Astronomy 415: Fall 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 2428 Lectures: Wednesday and Friday from 2:00pm to 3:15pm First class: Wed Sept 3 Last class: Fri Dec 12
What's New?
Dec 1st: Online course evaluation open Dec 1-Dec 14 - please participate. |
Nov 21: Problem Set #6 posted (the last one! due Dec 3rd). |
Nov 12: Problem Set #5 posted (due Nov 21st). |
Nov 5: Term projects posted (due Dec 5th). |
Oct 31: Problem Set #4 posted (due Nov 7th). |
Oct 17: Problem Set #3 posted (due Oct 29th). |
Oct 3: Problem Set #2 posted (due Oct 15th). |
Sept 26: Tutorial on GNU's GDB Debugger and Pointers. |
Sept 24: Play with C examples. |
Sept 19: Problem Set #1 posted (due Oct 1st). |
Sept 5: Survey result posted. |
Sept 3: First class |
Contact info and Notes
- Office: PSC 1156
- E-mail: ricotti "at" astro "dot" umd "dot" edu
- Phone: (301) 405 5097
- Office hours: Thu at 3pm or by appointment
- Class web page: http://www.astro.umd.edu/~ricotti/NEWWEB/teaching/ASTR415-14.html
Course Outline
The Syllabus is available in HTML and PDF format.
Date | Lecture | Reading (NRiC) | Lecture Notes | |
---|---|---|---|---|
#1 | Sept 3 | Introduction to the course | - | - |
#2 | Sept 5 | Computer architecture | Computer architecture | class02.pdf |
#3 | Sept 10 | Introduction to UNIX | tutorial | - |
#4 | Sept 12 | Introduction to C | 1.1-1.2, tutorial | - |
#5 | Sept 17 | Examples in C and debugging | 1.1-1.2, tutorial | - |
#6 | Sept 19 | Parellel Computing (CPU and GPU) | tutorial | - |
#7 | Sept 24 | Data representation | 1.3 | class05.pdf |
#8 | Sept 26 | Linear algebra, part 1 (Gauss-Jordan elimination) | 2.0-2.3 | class06.pdf |
#9 | Oct 01 | Linear algebra, part 2 (LU & SVD decomposition) | 2.4-2.6 | class07.pdf |
#10 | Oct 03 | Root finding in 1-D | 9.0-9.1, 9.4, 9.6 | class08.pdf |
#11 | Oct 08 | Root finding in multi-D, and numerical differentiation | 5.7 | class09.pdf |
#12 | Oct 10 | Statistics and the K-S test | 14.0-14.3 | class10.pdf |
#13 | Oct 15 | Least-squares fitting | 15.0-15.2, 15.4-15.5 | class11.pdf |
#14 | Oct 17 | Random numbers and cryptography | 7.0-7.2 | class12.pdf | #15 | Oct 22 | Numerical integration | 7.6, 4.0-4.4, 4.6 | class13.pdf |
#16 | Oct 24 | Integration of ODEs, part 1 (IVPs) | 16.0-16.1 | class14.pdf |
#17 | Oct 29 | Integration of ODEs, part 2 (leapfrog) | - | class15.pdf |
#18 | Oct 31 | Integration of ODEs, part 3 (stiff ODEs & 2-pt BVPs) | 16.6, 17.0 | class16.pdf |
#19 | Nov 05 | Integration of ODEs, part 4 | - | class17.pdf |
#20 | Nov 07 | N-body techniques, part 1 | - | class18.pdf |
#21 | Nov 12 | N-body techniques, part 2 (PP) | 19.0, 19.4-19.6 | class19.pdf |
#22 | Nov 14 | N-body techniques, part 3 and 4 (PM) | - | class20.pdf class21.pdf |
#23 | Nov 19 | Integration of PDEs, part 1 (ell & hyp) | 19.2 | class22.pdf |
#24 | Nov 21 | Integration of PDEs, part 2 (hyp & par) | 19.2 | class23.pdf |
#25 | Nov 26 | Fluid dynamics, part 1 (eqns) | 19.3 | class24.pdf |
- | Nov 28 | no class Thanksgiving | - | - |
#26 | Dec 03 | Fluid dynamics, part 2 (methods) | - | class25.pdf |
#27 | Dec 05 | Term project presentations | - | - |
#28 | Dec 10 | Term project presentations | - | - |
#29 | Dec 12 | Term project presentations | - | - |
- | 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 70%
- Term Project 30%
The homework is the most important part of the class. 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 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 | Sep 19 | Oct 1 | HTML/PDF | |
#2 | Oct 3 | Oct 15 | HTML/PDF | |
#3 | Oct 17 | Oct 29 | HTML/PDF | data |
#4 | Oct 31 | Nov 7 | HTML/PDF | |
TERM PROJECT | Nov 5 | Dec 5 | HTML/PDF | |
#5 | Nov 12 | Nov 21 | HTML/PDF | |
#6 | Nov 21 | Dec 3rd | 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
|