Astronomy 415: Fall 2016
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 TA: Jialu Li Class: CSS 2428 Lectures: Tuesday and Thursday from 3:30pm to 4:45pm First class: Tue Aug 30 Last class: Thu Dec 08
What's New?
Contact info and Notes
- Office: PSC 1156
- E-mail: ricotti "at" astro "dot" umd "dot" edu
- Phone: (301) 405 5097
- Office hours: Fri 12:00-1:00pm, 2:00-3:00pm (for this second slot please email me in advance), or by appointment
- Class web page: http://www.astro.umd.edu/~ricotti/NEWWEB/teaching/ASTR415-16.html
Course Outline
The Syllabus is available in HTML and PDF format.
Date | Lecture | Reading (NRiC) | Lecture Notes | |
---|---|---|---|---|
#1 | Aug 30 | Introduction to the course | - | - |
#2 | Sept 1 | Computer architecture | Computer architecture | class02.pdf |
#3 | Sept 6 | Introduction to UNIX | tutorial | - |
#4 | Sept 8 | Introduction to C | 1.1-1.2, tutorial | - |
#5 | Sept 13 | Examples in C and debugger | 1.1-1.2, tutorial | GDB.pdf |
#6 | Sept 15 | Parellel Computing (CPU and GPU) | tutorial | - |
#7 | Sept 20 | Data representation | 1.3 | class05.pdf/pres05.pdf |
#8 | Sept 22 | Linear algebra, part 1 (Gauss-Jordan elimination) | 2.0-2.3 | class06.pdf/pres06.pdf |
#9 | Sept 27 | Linear algebra, part 2 (LU & SVD decomposition) | 2.4-2.6 | class07.pdf/pres07.pdf |
#10 | Sept 29 | Root finding in 1-D | 9.0-9.1, 9.4, 9.6 | class08.pdf/pres08.pdf |
#11 | Oct 04 | Root finding in multi-D, and numerical differentiation | 5.7 | class09.pdf/pres09.pdf |
#12 | Oct 06 | Statistics and the K-S test | 14.0-14.3 | class10.pdf/pres10.pdf |
#13 | Oct 11 | Least-squares fitting | 15.0-15.2, 15.4-15.5 | class11.pdf/pres11.pdf |
#14 | Oct 13 | Random numbers and cryptography | 7.0-7.2 | class12.pdf/pres12.pdf | #15 | Oct 18 | Numerical integration | 7.6, 4.0-4.4, 4.6 | class13.pdf/pres13.pdf |
#16 | Oct 20 | Integration of ODEs, part 1 (IVPs) | 16.0-16.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 & 2-pt BVPs) | 16.6, 17.0 | class16.pdf/pres16.pdf |
#19 | Nov 01 | Integration of ODEs, part 4 | - | class17.pdf/pres17.pdf |
#20 | Nov 03 | N-body techniques, part 1 | - | class18.pdf/pres18.pdf |
#21 | Nov 08 | N-body techniques, part 2 (PP) | 19.0, 19.4-19.6 | class19.pdf/pres19.pdf |
#22 | Nov 10 | N-body 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 |
#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 | - | - |
#28 | Dec 06 | Term project presentations | - | - |
#29 | Dec 08 | 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 [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_16_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
|