Programmazione scientifica. Integrazione numerica di equazioni differenziali ordinarie. Evoluzioni temporali discrete. Biforcazioni, dinamiche regolari e caotiche. Dinamica molecolare e metodi event-driven per sistemi a molti corpi: osservabili, fluttuazioni e distribuzioni di probabilità. Equazioni di reazione-diffusione. Dinamica stocastica: Langevin e Fokker-Planck. Equazione maestra: bilancio dettagliato. Metodo di Monte-Carlo. Ottimizzazione stocastica. Simulazioni quantistiche.
Werner Krauth, Statistical Mechanics: Algorithms and Computations (Oxford Master Series in Statistical, Computational, and Theoretical Physics) (2006)
Harvey Gould, Jan Tobochnik, and Wolfgang Christian, Introduction to Computer Simulation Methods, Addison-Wesley (1995)
Herman J. C. Berendsen, Simulating the Physical World: Hierarchical Modeling from Quantum Mechanics to Fluid Dynamics, Cambridge University Press (2007)
Luciano Maria Barone, Enzo Marinari, Giovanni Organtini, Federico Ricci-Tersenghi, Scientific Programming: C-Language, Algorithms and Models in Science, World Scientific (2013)
Steven H. Strogatz, Nonlinear Dynamics And Chaos: With Applications To Physics, Biology, Chemistry, And Engineering, Westview Press (2001)
M. P. Allen, D. J. Tildesley, Computer Simulation of Liquids, Oxford University Press (1989)
Obiettivi Formativi
Il corso si propone di fornire gli elementi di base della programmazione scientifica nel campo della fisica. Durante il corso si affronteranno problemi di fisica classica e quantistica da un punto di vista computazionale. Si analizzeranno dinamiche deterministiche e stocastiche di sistemi a pochi e molti gradi di libertà.
Chi segue questo corso potrebbe utilmente coniugarlo con: Fisica dei Sistemi Complessi, Fisica Statistica e Teoria dell'Informazione, Informazione quantistica (Curriculum di Fisica della Materia); Meccanica Statistica I e II, Teoria dei Sistemi Dinamici (Curriculum di Fisica Teorica). Inoltre, vi sono forti collegamenti ai corsi di fisica dei solidi, dei liquidi e delle transizioni di fase.
Conoscenze acquisite:
- Sistemi dinamici deterministici e stocastici
- Tecniche Monte-Carlo
- Ottimizzazione stocastica
- Simulazione quantistica.
Capacità acquisite:
- Scrittura di un programma scientifico e sua esecuzione.
- Simulazione numerica di un modello fisico.
- Analisi, visualizzazione ed interpretazione dei dati.
- Comparazione dei risultati numerico con le teorie fisiche.
Prerequisiti
- Conoscenze di base di: analisi matematica ed algebra lineare, fisica classica e quantistica, meccanica statistica.
- Elementi di base della programmazione: linguaggi C e Fortran
- Utilizzo di un sistema operativo
Metodi Didattici
6 CFU, laboratorio con lezioni teoriche.
La teoria verrà solo accennata, si può trovare una trattazione più ampia in altri corsi (per esempio nel corso Fisica Statistica e Teoria dell'Informazione, fruibile via video). Nel laboratorio verranno presentati problemi pratici, dato un esempio di implementazione e verrà richiesto la elaborazione di un programma lavorando in piccoli gruppi.
Altre Informazioni
Ricevimento studenti su appuntamento. Emails: franco.bagnoli@unifi.it,stefano.ruffo@unifi.it. Franco Bagnoli è disponibile anche a ricevimenti via skype/google hangout. Sito web del corso: http://fisico.complexworld.net/teaching. Consultare anche il sistema e-learning d'Ateneo http://e-l.unifi.it.
Modalità di verifica apprendimento
La verifica consiste nella stesura di tre relazioni individuali basate sugli argomenti principali del corso: 1) dinamiche deterministiche, 2) dinamiche stocastiche, 3) Metodi Monte-Carlo. L'ammissione all'esame finale è subordinata ad una valutazione positiva delle relazioni. L'esame finale consiste in un progetto da svolgere in gruppi di 2-3 studenti, che porti ad una relazione scritta, ed in una presentazione orale individuale.
Programma del corso
-Introduzione alla programmazione scientifica. Struttura di un programma. Input e output. Visualizzazione dati con gnuplot.
-Integrazione numerica di equazioni differenziali. Sistemi conservativi (oscillatore armonico, pendolo): metodi simplettici. Sistemi non conservativi (oscillatore smorzato e forzato): metodo di Runge-Kutta. Biforcazioni. Caos: il modello di Lorenz. Esponenti di Lyapunov, entropie, dimensioni frattali.
-Evoluzioni discrete: mappa logistica. Biforcazioni e caos.
-Dinamica molecolare: simulazioni di sistemi a N corpi interagenti tramite il potenziale di Lennard-Jones. Rilassamento all'equilibrio. Calcolo di osservabili: temperatura, pressione, ecc. Fluttuazioni. Funzioni di correlazione.
-Metodi "event-driven": dischi e sfere dure.
-Equazioni di reazione-diffusione. "Pattern formation".
-Dinamica stocastica. Generazione di numeri casuali. Cammini aleatori, equazione di Langevin. Processi di Markov. Equazioni maestra e di Fokker Planck.
-Metodi Monte-Carlo. "Direct sampling" e "importance sampling". Il modello di Ising: transizioni di fase. Correlazioni.
-Ottimizzazione stocastica: "simulated annealing" e algoritmi genetici.