COMPUTATIONAL PHYSICS

Anno accademico
2025/2026 Programmi anni precedenti
Titolo corso in inglese
COMPUTATIONAL PHYSICS
Codice insegnamento
CM0648 (AF:599071 AR:291834)
Lingua di insegnamento
Inglese
Modalità
In presenza
Crediti formativi universitari
6
Livello laurea
Laurea magistrale (DM270)
Settore scientifico disciplinare
FIS/03
Periodo
I Semestre
Anno corso
2
Sede
VENEZIA
Spazio Moodle
Link allo spazio del corso
La fisica computazionale è un ramo della fisica che utilizza metodi computazionali per risolvere problemi fisici complessi che altrimenti sarebbero irrisolvibili con tecniche analitiche. Basandosi su simulazioni numeriche e/o tecniche di analisi dei “big data”, la fisica computazionale è un complemento essenziale sia per la fisica teorica che per quella sperimentale fornendo preziose rilsultati per una vasta gamma di sistemi e fenomeni, sia classici che quantistici. Recentemente, con l'avvento dei computer quantistici, la fisica computazionale ha iniziato a integrare l'uso di metodi di calcolo quantistico per risolvere problemi che sono generalmente ritenuti intrattabili per i computer classici.
L'obiettivo del corso è fornire agli studenti sia le conoscenze di base che le competenze pratiche necessarie per eseguire simulazioni al computer di sistemi complessi, 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 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.

Chi dovrebbe scegliere il corso?
Studenti interessati alla computazione classica e quantistica e/o alla fisica. In particolare, il corso è fortemente consigliato a coloro che intendono svolgere una tesi di laurea che preveda simulazioni numeriche di sistemi complessi (anche oltre la fisica), sistemi quantistici, materia soffice (per esempio, cristalli liquidi, molecole biologiche etc.) o materiali allo stato solido.

1. Conoscenza e capacità di comprensione
• 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.
Si richiede una conoscenza di metodi matematici, fisica classica e meccanica quantistica al livello di una laurea scientifica triennale.
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.
1. Introduzione alla fisica computazionale.
2. Programmazione in Python per fisici.
3. Sistemi dinamici discreti. Introduzione alla dinamica caotica.
4. Simulazione di sistemi fisici classici. Soluzione numerica dell’equazione del moto di Newton per sistemi smorzati e forzati, inclusa la dinamica non lineare.
5. Elettrostatica ed elettrodinamica classica. Soluzione numerica dell’equazione di Laplace/Poisson e delle equazioni di Maxwell.
6. Simulazione numerica dei processi di diffusione.
7. Moto aleatorio.
8. Formazione di cluster (es. aggregazione limitata dalla diffusione).
9. Frattali.
10. Introduzione ai metodi Monte Carlo per sistemi a molti corpi classici. Applicazione al modello di Ising.
11. Introduzione alle simulazioni di dinamica molecolare. Esempi di applicazione a sistemi modello (es. transizione liquido-solido indotta dalla pressione per un sistema di atomi di Ar interagenti).
12. Soluzione numerica dell’equazione di Schrödinger indipendente dal tempo.
13. Soluzione numerica dell’equazione di Schrödinger dipendente dal tempo per la dinamica quantistica.
14. Diagonalizzazione esatta di sistemi quantistici a molti corpi.
15. Metodo di rinormalizzazione della matrice densità e introduzione alle reti tensoriali per sistemi quantistici a molti corpi.
16. Introduzione al calcolo quantistico con il software development kit Qiskit.
17. Variational Quantum Eigensolver (algoritmo quantistico) per sistemi quantistici a molti corpi.

Argomenti potenziali aggiuntivi (da trattare se il tempo lo permette):
- Analisi di Fourier.
- Algoritmo genetico.
- Introduzione alle reti neurali.
R. H. Landau, M.J. Paez, and C.C. Bordeianu, Computational Physics (4th edition) (Wiley, 2024)
N.J. Giordano and H. Nakanishi, Computational Physics (Pearson, 2006)
M.E. Newman, Computational Physics (revisited and expanded version) (Cambridge University Press, 2013).

Materiale on-line suggerito dal docente al termine di ciascuna lezione.
L'esame è composto da vari esercizi da svolgere a casa e da un esame orale:

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.
orale
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.
I problemi e le equazioni fondamentali rilevanti per ogni parte del corso saranno introdotti utilizzando un approccio tradizionale, con tutti i calcoli eseguiti su una lavagna. L'implementazione nei programmi Python sarà condotta passo dopo passo dal docente, proiettando lo schermo del suo computer in modo che gli studenti possano seguire facilmente ogni operazione e ripeterla sui loro computer. Piccoli esercizi saranno assegnati durante ogni lezione per permettere agli studenti di esercitarsi nell'implementazione o nella modifica di alcuni dei metodi spiegati. Small exercises will be assigned during each class to allow students to practice implementing or modifying some of the explained methods.
Programma definitivo.
Data ultima modifica programma: 05/03/2025