Nuova ricerca

Guido GOLDONI

Professore Ordinario
Dipartimento di Scienze Fisiche, Informatiche e Matematiche sede ex-Fisica

Insegnamento: Laboratorio di fisica computazionale

Fisica (Offerta formativa 2022)

Obiettivi formativi

Introdurre gli studenti alla Fisica Computazionale attraverso l'esposizione di un panorama di algoritmi numerici e di almeno un linguaggio di programmazione specifico.

Selezionare e sviluppare autonomamente approcci numerici per la modellizzazione di processi fisici semplici, utilizzare codici di calcolo pre-esistenti di simulazione di sistemi fisici.

Sviluppare la capacità di stendere in modo chiaro, rigoroso e conciso, il report di una modellizzazione numerica al computer.

Porre le basi per approfondire, in modo autonomo, le problematiche relative all'utilizzo degli algoritmi numerici trattati e per affrontare lo studio di approcci di modellizzazione alternativi.

Prerequisiti

Conoscenze di base di analisi matematica, fisica generale meccanica quantistica e calcolo numerico acquisite nei corsi del primo biennio.

Programma del corso

Nella prima parte del corso sono affrontate le tecniche di programmazione e gli aspetti teorici degli algoritmi numerici più rilevanti:
[16 ore] Introduzione alla programmazione scientifica con Python e Git;
[2 ore] Metodologie di sviluppo software per calcolo scientifico a alte prestazioni;
[6 ore] Formule di quadratura per il calcolo di integrali, trasformata di Fourier discreta (DFT) e veloce (FFT);
[4 ore] Generazione numeri random uniformemente/normalmente distribuiti.
[4 ore] Metodi di diagonalizzazione, ricerca autovalori e autovettori;
[4 ore] Integrazione numerica di equazioni differenziali dipendenti dal tempo, stabilita' delle soluzioni numeriche;

Nella seconda parte è prevista l'attività di laboratorio numerico durante il quale sono presentate e sviluppate alcune applicazioni di modellizzazione numerica dei fenomeni fisici:
[6 ore] Soluzione delle equazioni del moto di Newton per sistemi di N particelle interagenti. Opzioni: orbite chiuse nel sistema solare(a), dinamica molecolare del modello di Fermi-Pasta-Ulam (b) e del fluido Lennard-Jones(c);
[6 ore] Importance sampling Monte Carlo per il calcolo degli integrali multidimensionali in meccanica quantistica;
[6 ore] Determinazione delle autoenergie e delle autofunzioni per sistemi quantistici modello;
[6 ore] Soluzione di equazioni differenziali alle derivate parziali con condizioni al contorno. Metodi iterativi per soluzioni stazionarie e metodi spettrali per la dinamica di pacchetti d'onda.

Metodi didattici

Lezioni frontali con possibile utilizzo di supporti multimediali ed esercitazioni numeriche in laboratorio informatico, con supporto DataCamp. La frequenza non è obbligatoria ma fortemente consigliata. Tutte le informazioni tecniche e organizzative, il materiale didattico e supporto saranno disponibili su piattaforma informatica di e-learning.

Testi di riferimento

Materiale didattico fornito dai docenti e capitoli selezionati dai seguenti libri di testo:
- P. O. J. Scherer "Computational Physics. Simulation of Classical and Quantum Systems", (Springer, 2010)
- D. Frenkel and B. Smit, "Understanding Molecular Simulation - Second Edition", (Academic Press, 2002)
- R. Landau, M. J. Páez and C. C. Bordeianu, "A Survey of Computational Physics, Introductory Computational Science" (Princeton University Press, 2015)

Verifica dell'apprendimento

Relazioni scritte di laboratorio sugli esperimenti computazionali eseguiti durante lo svolgimento delle lezioni. Discussione dello svolgimento del progetto scelto per l'esame nella prova finale orale della durata indicativa di un'ora.

Risultati attesi

Al termine del corso lo studente avrà acquisito e/o sviluppato

1. Conoscenza e capacità di comprensione:
conoscenza del linguaggio di programmazione Python
conoscenza degli algoritmi di differenziazione e integrazione numerica alle differenze finite
conoscenza di metodi iterativi e di utilizzo di numeri aleatori
comprensione dei metodi numerici di base di fisica computazionale

2. Conoscenza e capacità di comprensione applicate:
abilità di base di programmazione scientifica per sviluppare ed eseguire su un computer codici basati su algoritmi numerici

3. Autonomia di giudizio:
capacità di analisi per scegliere autonomamente le metodiche numeriche appropriate per la modellizzazione delle classi di sistemi fisici affrontati nel corso

4. Abilità comunicative:
capacità di scrittura di report scientifici e di comunicazione orale nel relazionare i risultati di modellizzazioni numeriche

5. Capacità di apprendimento:
capacità di approfondire e apprendere, in modo autonomo, lo studio di approcci di modellizzazione avanzata di fisica computazionale.