Astronomy 615: Spring 2023
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: ATL 0201 Lectures: Tuesday and Thursday from 12:30pm to 13:45pm First class: Thu Jan 26 Last class: Thu May 11
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: Friday 11am-12pm or by appointment
- Class web page: http://www.astro.umd.edu/~ricotti/NEWWEB/teaching/ASTR615_23.html
Course Outline
The Syllabus is available on ELMS and here: Syllabus.
Date | Lecture | Reading (NRiC) | Lecture Notes | Homework | |
---|---|---|---|---|---|
#1 | Jan 26 | Introduction to the course | - | - | Intro Architecture |
#2 | Jan 31 | Computer architecture | Computer architecture | class02.pdf | |
#3 | Feb 2 | Introduction to UNIX | tutorial | - | Intro Programs |
#4 | Feb 7 | Introduction to C | 1.1-1.2, tutorial | - | |
#5 | Feb 9 | Examples in C and debugger | 1.1-1.2, tutorial | GDB.pdf | |
#6 | Feb 14 | Parellel Computing (CPU and GPU) | tutorial | - | |
#7 | Feb 16 | Data representation | 1.3 | class05.pdf/pres05.pdf | HW1 due |
#8 | Feb 21 | Linear algebra, part 1 (Gauss-Jordan elimination) | 2.0-2.3 | class06.pdf/pres06.pdf | |
#9 | Feb 23 | Linear algebra, part 2 (LU & SVD decomposition) | 2.4-2.6 | class07.pdf/pres07.pdf | |
#10 | Feb 28 | Root finding in 1-D | 9.0-9.1, 9.4, 9.6 | class08.pdf/pres08.pdf | |
#11 | Mar 2 | Root finding in multi-D, and numerical differentiation | 5.7 | class09.pdf/pres09.pdf | HW2 due |
#12 | Mar 7 | Statistics and the K-S test | 14.0-14.3 | class10.pdf/pres10.pdf | |
#13 | Mar 9 | Least-squares fitting | 15.0-15.2, 15.4-15.5 | class11.pdf/pres11.pdf | |
#14 | Mar 14 | Random numbers and cryptography | 7.0-7.2 | class12.pdf/pres12.pdf | #15 | Mar 16 | Numerical integration | 7.6, 4.0-4.4, 4.6 | class13.pdf/pres13.pdf | HW3 due |
-- | Mar 21 | Spring Break | - | ||
-- | Mar 23 | Spring Break | - | ||
#16 | Mar 28 | Integration of ODEs, part 1 (IVPs) | 16.0-16.1 | class14.pdfi/pres14.pdf | |
#17 | Mar 30 | Integration of ODEs, part 2 (leapfrog) | - | class15.pdf/pres15.pdf | |
#18 | Apr 4 | Integration of ODEs, part 3 (stiff ODEs & 2-pt BVPs) | 16.6, 17.0 | class16.pdf/pres16.pdf | HW4 due |
#19 | Apr 6 | Integration of ODEs, part 4 | - | class17.pdf/pres17.pdf | |
#20 | Apr 11 | N-body techniques, part 1 | - | class18.pdf/pres18.pdf | |
#21 | Apr 13 | N-body techniques, part 2 (PP) | 19.0, 19.4-19.6 | class19.pdf/pres19.pdf | HW5 due |
#22 | Apr 18 | N-body techniques, part 3 and 4 (PM) | - | class20.pdf/pres20.pdf class21.pdf/pres21.pdf | |
#23 | Apr 20 | Integration of PDEs, part 1 (ell & hyp) | 19.2 | class22.pdf/pres22.pdf | |
#24 | Apr 25 | Integration of PDEs, part 2 (hyp & par) | 19.2 | class23.pdf/pres23.pdf | HW6 due |
#25 | Apr 27 | Fluid dynamics, part 1 (eqns) | 19.3 | class24.pdf/pres24.pdf | |
#26 | May 2 | Fluid dynamics, part 2 (methods) | - | class25.pdf/pres25.pdf | |
#27 | May 4 | Term project presentations | - | - | Term Project Due |
#28 | May 9 | Term project presentations | - | - | |
#29 | May 11 | 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
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
|