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