COMPUTING METHODS FOR ASTROPHYSICS

Course objectives

This course is focused on the most important techniques adopted in order to solve system of ordinary differential equations that describe the physical processes at the base of most of the astrophysical systems. The students, continuosly followed by the professor, have the opportunity to develope, by themselves, numerical codes on C++ in order to test one, or more, numerical schemes described during the lectures.

Channel 1
GIANCARLO DE GASPERIS Lecturers' profile

Program - Frequency - Exams

Course program
Programming Languages: - Fortran & Python from C language - Fortran: from basics to dynamic memory management - Python: numpy, matplotlib, astropy, scipy - Introduction to parallel computing - Distributed memory systems and MPI - openMP and shared memory - Optional: Introduction to GPU computing - Fortran, advanced features, and new standards - Fortran: Types and Modules: writing modular, typed, and easily parallelizable software. Principles of software analysis. - Fortran: Pointers and pointer to functions Algorithms: - Linear systems – Stability and efficiency, Sparse linear system solvers, Iterative methods - LU – Cholesky – SVD – EVD – PCG - Ordinary Differential Equations – Explicit methods and stability - Euler - EP -RK3-4 - PC - Stiff differential equations - Implicit methods - Monte Carlo methods for integration and parameter estimation: - Metropolis-Hastings – GW10 Signal Processing in Astrophysics: - Signal Processing: - Signal Sampling - Sampling Theorem, Convolution, Correlation, and Fourier Transform - Discrete Fourier Transform and Fast Fourier Transform - Introduction to signal analysis on a sphere - Sphere discretization - Numerical decomposition into spherical harmonics - Processing of astronomical images - Spectral estimations – stationary noise and noise color. Introduction to Numerical simulations ◦ N-Body and gravity for large scale dark matter distribution. ◦ Computational Fluiddyamics: Galactic and extragalactic Baryonic distribution ( AMR/Voronoi e SPH schemes). ◦ Radiative Transfer and Feedback: Cosmic Reionization ( Ray tracing and Monte Carlo Methods).
Prerequisites
Basic knowledge of a structured programming language (e.g. modern Fortran, C, C++, and/or Python). Proficiency in using shells and basic UNIX commands.
Books
- Modern Fortran Explained: Incorporating Fortran 2018 (M. Metcalf), Springer - Fortran for Scientists & Engineers (S.J. Chapman) McGraw-Hill - A Student’s Guide to Python for Physical Modeling (J. M. Kinder and P. Nelson), Princeton University Press - A Primer on Scientific Programming with Python (H.P. Langtangen) Springer - An Introduction to Python and Computer Programming (Y. Zhang) Springer - The OpenMP Common Core (Mattson et al.), MIT Press - Using MPI ( W. Gropp et al.), MIT Press Free online resources and materials provided by teachers. - Free online book on Computational Physics: https://courses.physics.ucsd.edu/2017/Spring/physics142/Lectures/Lecture18/Hjorth-JensenLectures2010.pdf - The old Numerical Recipes book has very good discussions on coding and algorithms: https://numerical.recipes/
Frequency
Attendance is optional although strongly recommended.
Exam mode
3/4 projects (mandatory: 1 in Fortran, 1 in Python, 1/2 free) for individual or group work Alternatively: two mandatory projects, individual or group work, to be completed during the course and a project suggested by research groups in the Astrophysics area Exam: personal presentation of a project and oral exam on the course program.
Lesson mode
Theoretical lectures and exercises (possibly including seminars or monographic lessons on specific topics).
  • Lesson code10611919
  • Academic year2025/2026
  • CourseAstrophysics and Cosmology
  • CurriculumSingle curriculum
  • Year2nd year
  • Semester1st semester
  • SSDFIS/05
  • CFU6