Docente
|
DE MICHELE CRISTIANO
(programma)
Il corso è dedicato allo studio di sistemi a molti corpi classici attraverso tecniche di simulazione numerica al calcolatore. Verranno discusse le simulazioni di dinamica molecolare (MD) e quelle Monte Carlo (MC) nell'ambito di un paradigma di programmazione oggetti, con particolare rifermento al linguaggio C++. Gli argomenti proposti durante il corso includono i seguenti:
- paradigma a oggetti: incapsulamento, ereditarietà, overloading e programmazione generica
- introduzione al linguaggio di programmazione C++
- scrittura di un codice di simulazioni in C++
- linguaggio Python: uno strumento efficace per analizzare i dati di simulazioni numeriche
- richiami di meccanica statistica classica
- potenziali di interazione tipici
- risoluzione delle equazioni del moto con algoritmi simplettici
- integratori con passi di integrazione multipli
- algoritmi per il controllo della temperatura e pressione
- algoritmi per la trattazione dei vincoli olonomi
- dinamica dei corpi rigidi
- dinamica browniana
- dinamica event-driven
- metodi Monte Carlo
- metodi per il calcolo della energia libera
- umbrella sampling ed eventi rari
Teoria
---------
- Understanding Molecular Simulation, D. Frenkel and B. Smit, Academic Press
- Computer Simulation of Liquids, M. P. Allen and D. J. Tildesley, Clarendon Press - Oxford
- The Art of Molecular Dynamics Simulation, D. C. Rapapaport, Cambridge University Press
- Theory of Simple Liquids, J.-P. Hansen and I. R. McDonald, Academic Press
- Statistical Mechanics: Theory and Molecular Simulation, Mark Tuckerman, Oxford Graduate Press - Oxford
Libri sul C++
----------------
- C++ How to program (5th edition), H. Deitel and P. Deitel, Prentice Hall
[Libro introduttivo, adegauto per che è alle prime armi con C++]
- The C++ Programming Language (4th edition), Bjarne Stroustrup, Addison-Wesley Professional
[Libro di riferimento, è l'equivalente del libro di Kernighan-Ritchie per il linguaggio C]
- Effective Modern C++, Scott Meyers, O'Reilly Media
[Per chi conosce già il C++03 e vuole passare agli standard C++11 e C++14]
|