COMPUTATIONAL PHYSICS
- Anno accademico
- 2024/2025 Programmi anni precedenti
- Titolo corso in inglese
- COMPUTATIONAL PHYSICS
- Codice insegnamento
- CM0648 (AF:520835 AR:291828)
- Modalità
- In presenza
- Crediti formativi universitari
- 6
- Livello laurea
- Laurea magistrale (DM270)
- Settore scientifico disciplinare
- FIS/03
- Periodo
- II Semestre
- Anno corso
- 2
- Spazio Moodle
- Link allo spazio del corso
Inquadramento dell'insegnamento nel percorso del corso di studio
L'obiettivo del corso è fornire agli studenti sia le conoscenze di base che le competenze pratiche necessarie per eseguire simulazioni al computer di sistemi classici e quantistici, nonché per eseguire analisi dei dati in modo efficace. Il corso introdurrà la fisica computazionale con esempi ed esercizi nel linguaggio di programmazione Python. In particolare, gli studenti impareranno a:
• Studiare sistemi classici risolvendo numericamente l'equazione del moto di Newton, simulando la dinamica classica oltre i limiti delle approssimazioni utilizzate per le soluzioni analitiche.
• Studiare sistemi a molti corpi che coinvolgono interazioni tra più particelle.
• Risolvere l'equazione di Schrödinger per sistemi quantistici rilevanti per la nanoscienza e la scienza dei materiali, calcolando numericamente osservabili e simulando la dinamica quantistica.
Inoltre, il corso fornirà una breve introduzione alle applicazioni pratiche del “machine learning” e del calcolo quantistico nello studio dei sistemi fisici.
Il corso integra altri corsi di fisica e matematica nel programma di laurea magistrale in Quantum Science and Technology. Fornisce un approccio pratico allo studio dei problemi incontrati in Meccanica Statistica, Fisica dei Sistemi Complessi e Fisica della Materia Condensata Moderna. Piuttosto che approfondire i dettagli degli algoritmi già trattati nei corsi di Metodi Numerici e Calcolo Quantistico, gli studenti impareranno come implementare questi metodi, utilizzando librerie e strumenti esistenti, e infine applicarli a problemi fisici di interesse per la ricerca moderna.
Risultati di apprendimento attesi
• Conoscenza di base dei metodi computazionali comunemente utilizzati nella ricerca in diverse aree della fisica.
• Familiarità con il linguaggio di programmazione Python e con varie librerie utili per lo studio di problemi fisici.
2. Capacità di applicare conoscenza e comprensione
• Sviluppare autonomamente programmi in Python per simulare sistemi fisici, sia classici che quantistici.
• Selezionare le tecniche numeriche, le librerie e gli strumenti di visualizzazione dei dati più appropriati per ciascun problema.
• Analizzare criticamente i risultati ottenuti dalle simulazioni numeriche.
3. Autonomia di giudizio
• Identificare e correggere errori attraverso un'analisi critica dei metodi applicati e dei risultati ottenuti.
4. Abilità comunicative
• Comunicare con chiarezza e precisione le conoscenze acquisite, utilizzando una terminologia appropriata sia in forma scritta che orale.
• Presentare i risultati delle simulazioni attraverso grafici e figure conformi agli standard delle pubblicazioni scientifiche.
5. Capacità di apprendimento
• Sviluppare competenze nella presa di appunti, selezionando e organizzando le informazioni in base alla loro importanza e priorità.
• Raggiungere un livello di autonomia sufficiente per individuare e utilizzare strumenti computazionali e software open source utili alla soluzione di problemi fisici.
Prerequisiti
Sebbene il corso tratti di alcuni problemi incontrati in Meccanica Statistica, Fisica dei Sistemi Complessi e Fisica della Materia Condensata Moderna, non è formalmente richiesto aver superato o selezionato questi corsi. Tutte i contenuti rilevanti per il corso di Fisica Computazionale saranno presentati durante le lezioni in una maniera esaustiva e confacente agli obbiettivi del corso.
Contenuti
2. Programmazione in Python per la soluzione di problemi di fisica.
3. Grafica e visualizzazione.
4. Simulazione di sistemi classici. Soluzione dell'equazione del moto di Newton per sistemi smorzati e soggetti a una forza esterna con dinamica non lineare.
5. Introduzione ai metodi Monte Carlo per sistemi a molti corpi classici. Applicazione al modello di Ising.
6. Soluzione dell'equazione di Schrödinger indipendente dal tempo. Calcolo della struttura a bande dei “nanoribbon” di grafene e dei nanotubi di carbonio.
7. Breve introduzione alle tecniche di Monte Carlo quantistico per sistemi quantistici a molti corpi. Studio più dettagliato del Monte Carlo variazionale.
8. Breve menzione dei metodi computazionali per sistemi su reticolo fortemente correlati.
9. Soluzione dell'equazione di Schrödinger dipendente dal tempo per la dinamica quantistica.
10. Introduzione al “machine learning” con Python.
11. Introduzione al calcolo quantistico con il “software development kit” Qiskit.
12. Metodo quantistico di soluzione variazionale degli autovalori (“Variational Quantum Eigensolver”).
Testi di riferimento
Materiale on-line suggerito dal docente al termine di ciascuna lezione.
Modalità di verifica dell'apprendimento
Esercizi a casa: Alla fine di alcune lezioni verranno assegnati esercizi computazionali individuali per utilizzare i metodi e gli strumenti appresi. In totale saranno assegnati quattro esercizi. Tutte le soluzioni, presentate sotto forma di tabelle o grafici, dovranno essere redatte in file Word o LaTeX e inviate al docente attraverso un apposito link in Moodle. In alcuni casi, il docente potrebbe richiedere anche la consegna di parti di codice. Gli esercizi saranno valutati in trentesimi. Gli studenti possono consegnare gli esercizi singolarmente durante il corso oppure tutti insieme alla fine (almeno 4 giorni -96 ore- prima dell'esame orale). L’accesso all’esame orale sarà consentito solo dopo la consegna di tutti gli esercizi e con una media minima di 16/30.
Esame orale (durata dai 30 ai 40 minuti): Durante l’orale, lo studente risponderà a domande di approfondimento sui risultati degli esercizi e sui contenuti del corso, permettendo al docente di valutare la comprensione degli argomenti e delle tecniche apprese.
Valutazione finale:
• Eccellente (27-30/30): L’esame sarà considerato pienamente riuscito se la media degli esercizi sarà uguale o superiore a 25/30 e, durante l’orale, lo studente riuscirà a rispondere in modo chiaro alla maggior parte delle domande, dimostrando una padronanza completa della materia.
• Buono (22-26/30): La valutazione sarà considerata buona se la media degli esercizi sarà uguale o superiore a 20/30 e, durante l’orale, lo studente dimostrerà una buona comprensione dei concetti chiave, mostrando di saper correggere gli errori presenti negli esercizi.
• Sufficiente (18-21/30): L’esame sarà considerato sufficiente se la media degli esercizi sarà uguale o superiore a 16/30 e, durante l’orale, lo studente dimostrerà una conoscenza adeguata delle nozioni principali trattate nel corso, comprendendo anche gli errori più rilevanti commessi.
Esame non superato: L’esame sarà considerato non superato se la media degli esercizi sarà inferiore a 16/30, nel qual caso non sarà possibile accedere all’esame orale, o superiore a 16, ma lo studente dimostrerà una comprensione insufficiente delle nozioni di base trattate nel corso. Il docente assegnerà nuovi esercizi per permettere allo studente di ripetere l’esame.