Astronomy 415: Fall 2024

Computational Astrophysics

Milky Way in CDM and WDM (Polisensky & Ricotti 2011) 

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

Course Outline

The Syllabus is available on ELMS and here: Syllabus.

DateLectureReading (NRiC)Lecture NotesHomework

#1Aug 27Introduction to the course--Intro Architecture
#2Aug 29Computer architectureComputer architectureclass02.pdf
#3Sept 3Introduction to UNIXtutorial-Intro Programs
#4Sept 5Introduction to C1.1-1.2, tutorial-
#5Sept 10Examples in C and debugger 1.1-1.2, tutorialGDB.pdf
#6Sept 12Parellel Computing (CPU and GPU)tutorial-
#7Sept 17Data representation1.3class05.pdf/pres05.pdfHW1 due
#8Sept 19Linear algebra, part 1 (Gauss-Jordan elimination)2.0-2.3class06.pdf/pres06.pdf
#9Sept 24Linear algebra, part 2 (LU & SVD decomposition)2.4-2.6class07.pdf/pres07.pdf
#10Sept 26 Root finding in 1-D9.0-9.1, 9.4, 9.6class08.pdf/pres08.pdf
#11Oct 1Root finding in multi-D, and numerical differentiation5.7class09.pdf/pres09.pdfHW2 due
#12Oct 3Statistics and the K-S test14.0-14.3class10.pdf/pres10.pdf
#13Oct 8Least-squares fitting15.0-15.2, 15.4-15.5class11.pdf/pres11.pdf
#14Oct 10Random numbers and cryptography7.0-7.2class12.pdf/pres12.pdf
#15Oct 15Numerical integration7.6, 4.0-4.4, 4.6class13.pdf/pres13.pdfHW3 due
#16Oct 17Integration of ODEs, part 1 (IVPs)16.0-16.1class14.pdfi/pres14.pdf
#17Oct 22Integration of ODEs, part 2 (leapfrog)-class15.pdf/pres15.pdf
#18Oct 24Integration of ODEs, part 3 (stiff ODEs & 2-pt BVPs)16.6, 17.0class16.pdf/pres16.pdfHW4 due
#19Oct 29Integration of ODEs, part 4-class17.pdf/pres17.pdf
#20Oct 31N-body techniques, part 1 -class18.pdf/pres18.pdf
#21Nov 5N-body techniques, part 2 (PP)19.0, 19.4-19.6class19.pdf/pres19.pdfHW5 due
#22Nov 7N-body techniques, part 3 and 4 (PM)-class20.pdf/pres20.pdf class21.pdf/pres21.pdf
#23Nov 12Integration of PDEs, part 1 (ell & hyp) 19.2class22.pdf/pres22.pdf
#24Nov 14 Integration of PDEs, part 2 (hyp & par)19.2class23.pdf/pres23.pdfHW6 due
#25Nov 19Fluid dynamics, part 1 (eqns)19.3class24.pdf/pres24.pdf
#26Nov 21Fluid dynamics, part 2 (methods)-class25.pdf/pres25.pdf
#27Nov 26(TBD: Term project presentations or catch up)--Term Project Due
-Nov 28no class Thanksgiving--
#28Dec 3 Term project presentations--
#29Dec 5 Term project presentations--
-Likely not coveredFourier transform, part 1 (intro)12.0-12.1, 19.4class26.pdf
-Likely not coveredFourier transform, part 2 (FFT)12.2, 13.0-13.2, 13.4class27.pdf
-Likely not coveredOther topics-class28.pdf

Textbooks

There are no required textbooks
Recommended:
Numerical recipes [3rd Edition], by Press, W.H. et al.

Course Grading

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

    These notes were part of the "first edition" of this course (ASTR688N) in Spring 2001.

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 OpenMP

CUDA 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 Free Software General Stuff