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).