Il corso intende fornire agli studenti una introduzione all'arte della simulazione numerica.
Rappresentazione numerica su calcolatore. Precisione finita ed errori di arrotondamento
Implementazione di semplici algoritmi (ricerca di zeri, quadrature)
Algoritmi principali di algebra lineare
Integrazione di equazioni differenziali (Equazioni dinamiche ed introduzione al caos)
Integrazione di equazioni alle derivate parziali (Poisson, Fourier, Fluidi)
Tecniche avanzate di calcolo
Proposte di tesine. E' richiesto lo sviluppo di un codice numerico ed una presentazione dei risultati all'esame orale. Argomenti alternativi di interesse da parte dello studente sono ben accolti.
ODE
1. Equazioni stiff
Integrare numericamente l'equazione ODE non-lineare stiff y'(t) = y^2(t) − y^3(t). Ricercare ed implementare un metodo di integrazione efficace come ad esempio il metodo di Rosenbrock implementato in MATLAB (http://www.cs.berkeley.edu/~wkahan/Math128/ODEsuite.pdf).
Fluidodinamica
1. Equazioni per lo strato limite
Determinare Fare una ricerca sulla teoria dello strato limite di Prandl. Risolvere numericamente l'equazione che emerge dall'approssimazione di Blasius e quella di Falker-Skan. Discutere le soluzioni ed i metodi impiegati.
2. Moto di un fluido con ostacolo rettangolare.
Partendo dal simulatore visto a lezione cercare di modificare i parametri in modo da trattare situazioni in cui il box di simulazione sia rettangolare. Eventualmente generalizzare il solutore per elementi rettangolari. Cercare di raffinare il solutore in modo da eliminare i flussi spuri emergenti dall'ostacolo.
3. slip-slit mediante variabili stream-vorticity
Implementare le equazioni di stream-vorticity a differenze finite nel caso del problema di slip-slit.
4. Metodo delle curve caratteristiche
Analizzare l'articolo
Real time FD games
in cui è presentata una tecnica per la soluzione delle equazioni di N-S che utilizza il metodo delle caratteristiche utilizzato per stabilizzare la soluzione numerica. Discutere ed identificare l'upwind. Reimplementare questi metodi in un codice F95.
5. Generalizzazione del solver a sistemi 3D
Generalizzare il programma visto a lezione a simulazioni tridimensionali. Rivedere ed ottimizzare le strutture dati in modo da mantenere il consumo della memoria limitato. Valutare la convergenza del solver di Thomas. Implementare uno schema di relaxation per facilitare la convergenza della pressure-poisson equation. Eseguire un test applicativo del programma.
Tesine alternative
1. Modello di Ising 2D
Creare un semplice codice di Metropolis Monte Carlo per simulare le proprietà termodinamiche di un modello di Ising e la transizione di fase magnetica del modello.
Vedere capitoli 5 e 15 libro di R. Landau (pdf)
2. Path integrals
Creare un semplice codice di Metropolis Monte Carlo per simulare un Feynman path integral. Determinare la densità di probabilità di una bouncing particle soggetta ad una forza esterna uniforme (e.g. campo gravitazionale o elettrico).
Vedere capitoli 5 e 15 libro di R. Landau (pdf)
Studiare i metodi di dinamica molecolare e familiarizzare con il codice sviluppato durante l'aa 2012-2013.
1. Implementazione di un termostato Noosé-Hover
Per fare in modo che la simulazione dinamica segua la statistica canonica occorre implementare un termostato. Il termostato di NH si realizza aggiungendo una equazione dinamica che simula un bagno termico cui gli atomi si accoppiano. In questa tesina occorre studiare la letteratura corrispondente ed implementare l'equazione dinamica aggiuntiva nonchè verificare che effettivamente la statistica ottenuta riproduce distribuzioni canoniche delle velocità (Maxwell-Boltzmann).
2. Estensione a sistemi biatomici
Estendere il codice MD sviluppato per considerare molecole bi-atomiche.
In questo caso occorre aggiungere una mappa di legami per forzare gli atomi del sistema a rimanere legati a 2 a 2. Supporre un potenziale di legame della forma U=a(r-r0)^2-U0. Gli atomi non legati interagiscono con la forma di Lennard Jones.