Programma
Linguaggi di programmazione
- Linguaggi di programmazione: Fortran & Python dal linguaggio C
- Fortran: dalle basi fino alla gestione dinamica della memoria
- Python: numpy matplotlib astropy scipy
- Introduzione al calcolo parallelo (Graziani)
- Sistemi a memoria distribuita e MPI
- openMP e memoria condivisa
- opzionale: introduzione a GPU computing
- Fortran, caratteristiche avanzate e nuovi standard (Graziani)
- Fortran: Tipi e Moduli: scrittura di software modulare, tipizzato e facilmente parallelizzabile. Principi di analisi del software.
- Fortran: Puntatori e puntatori a funzioni
Algoritmi
- Sistemi lineari – Stabilità ed efficienza, Soluzione di sistemi lineari sparsi, metodi iterativi
- LU – Choleski – SVD – EVD – PCG
- Equazioni differenziali ordinarie – metodi espliciti e stabilità
- Eulero - EP -RK3-4 - PC
- Equazioni differenziali stiff
- Metodi impliciti
Metodi Montecarlo per integrazione e stima di parametri:
- Metropolis-Hastings – GW10
Elaborazione e di segnali in astrofisica
- Elaborazione del Segnale:
- Campionamento del Segnale - Teorema del campionamento, la convoluzione, la correlazione e la trasformata di Fourier
- Discrete Fourier Transform e Fast Fourier Transform
- Introduzione all’analisi di segnali su una sfera
- Discretizzazione della sfera
- Decomposizione numerica in armoniche sferiche
- Elaborazioni di immagini astronomiche
Stime spettrali
– rumore stazionario e colore del rumore
Introduzione alle simulazioni numeriche in astrofisica galattica ed extragalattica
- Distribuzione di larga scala della materia oscura (N-Corpi e Gravità).
- Fluidodinamica Astrofisica: Effetti locali in ISM e di larga scala per la formazione e evoluzione delle galassie (schemi AMR/Voronoi e SPH).
- Equazione del trasporto radiativo, feedback radiativo e Reionizzazione cosmica (Metodi Monte Carlo e Ray tracing).
Prerequisiti
Conoscenza elementare di un linguaggio di programmazione strutturata (come fortran moderno, linguaggio C, C++ e/o Python). Capacità di uso delle shell e comandi base UNIX.
Testi di riferimento
- 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
Risorse libere online e materiale fornito dai docenti:
- Un buon libro online di fisica computazionale: https://courses.physics.ucsd.edu/2017/Spring/physics142/Lectures/Lecture18/Hjorth-JensenLectures2010.pdf
- Il vecchio NR, ha buone discussioni su codici, algoritmi e referenze classiche: https://numerical.recipes/
Frequenza
Frequenza facoltativa, ma fortemente consigliata
Modalità di esame
3/4 progetti (vincolati: 1 in Fortran, 1 Python, 1/2 liberi) singoli o di gruppo
o In alternativa:
- due progetti vincolati, singoli o di gruppo, da svolgere durante il corso e
- un progetto suggerito dai gruppi di ricerca dell’area Astrofisica
o Esame: presentazione personale di un progetto ed esame orale sul programma del corso
Modalità di erogazione
Lezioni teoriche ed esercitazioni (eventualmente con seminari o lezioni monografiche su argomenti specifici)