Welcome to Computational Modeling of Nanosystems!
This course will take you on a journey through the quantum, classical, and statistical foundations of molecular science. Together, we’ll explore how atoms and molecules move, interact, and transform — and how we can capture these processes with the powerful tools of modern computation.
Across lectures, tutorials, and practical sessions, you’ll gain not only the theoretical background but also hands-on experience: from coding simple molecular dynamics in Python, to exploring stochastic processes and neural networks, to understanding the role of quantum chemistry and statistical mechanics in real materials and reactions.
It’s a challenging path, but one designed to build both intuition and technical skill. By the end, you’ll see how the mathematics, physics, and chemistry we cover connect into a single framework for modeling nanoscale systems — and you’ll be equipped to use these methods in your own research.
Let’s get started.
— Mario Barbatti
Course program
The Computational Modeling of Nanosystems course is organized into three main parts:
- Quantum Mechanics
- Classical Mechanics
- Statistical Mechanics
Each part consists of four masterclasses, followed by tutorials and practical work sessions that put the concepts into practice.
Masterclasses and tutorials will be taught by Prof. Mario Barbatti, while the practical sessions will be supervised by Dr. Vijay Chilkuri.
Evaluation
Your performance in this course will be assessed through a combination of continuous evaluation during tutorials (TD), practical works (TP), and a final exam:
- Written tests (25%)
Short written tests will be given during tutorials TD1 to TD7. They will check your understanding of the core concepts covered in recent lectures.. - Molecular dynamics coding project (25%)
During TP3, TP4, and TP5 you will code an analytical potential energy surface in Python and run both microcanonical and canonical dynamics. Evaluation will focus on the quality of the code, documentation of the notebook, and the insight gained from analyzing your results. - Final exam (50%)
A conventional written exam covering the entire course. The exam will emphasize conceptual understanding of the main ideas developed in lectures.
Course Schedule
| Date | Morning | Afternoon |
|---|---|---|
| Part I | ||
| 21/9 | Lecture QM1 | Practical work TP1 |
| 28/9 | Lecture QM2 | Practical work TP2 |
| 02/10 | Lecture QM3 | |
| 05/10 | Tutorial TD1 Test 1: QM1 & QM2 |
|
| 12/10 | Lecture QM4 | Tutorial TD2 Test 2: QM3 |
| Part II | ||
| 19/10 | Lecture CM1 | Tutorial TD3 Test 3: QM4 |
| 23/10 | Lecture CM2 | |
| 02/11 | Practical work TP3 | |
| 09/11 | Lecture CM3 | Tutorial TD4 Test 4: CM1 & CM2 |
| 16/11 | Lecture CM4 | Practical work TP4 |
| Part III | ||
| 23/11 | Lecture SM1 | Tutorial TD5 Test 5: CM3 & CM4 |
| 30/11 | Lecture SM2 | Tutorial TD6 Test 6: SM 1 |
| 04/12 | Lecture SM3 | |
| 07/12 | Practical work TP5 | |
| 14/12 | Lecture SM4 | Tutorial TD7 Test 7: SM2, SM3 & SM4 |
| 11/01 | Final exam |
Program of the Masterclasses
| I - QUANTUM MECHANICS |
| QM1 - The basis of quantum mechanics |
| QM2 - Born-Oppenheimer approximation & Quantum chemistry |
| QM3 - Beyond the adiabatic approximation & Nonadiabatic dynamics |
| QM4 - From quantum to classical |
| II - CLASSICAL MECHANICS |
| CM1 - Newton’s laws |
| CM2 - Molecular mechanics: harmonic approximation and model potentials |
| CM3 - Molecular dynamics |
| CM4 - Mixed quantum–classical dynamics and other formulations |
| III - STATISTICAL MECHANICS |
| SM1 - Boltzman picture, Gibbs ensembles, and thermostats |
| SM2 - Monte Carlo algorithms, sampling techniques, and rates |
| SM3 - Monte Carlo spectrum simulations and statistical analysis |
| SM4 - Machine learning |
Content of the Tutorials
| Tutorials |
| TD1 - Basic mathematics of quantum mechanics |
| TD2 - Introduction to DFT |
| TD3 - Using DFT |
| TD4 - Excercises of quantum chemistry |
| TD5 - Excercises of classical mechanics / Excercises of statistical mechanics |
| TD6 - Excercises of statistical mechanics / Stochastic processes coding |
| TD7 - Machine learning Tutorial |
Info about the Practical Works
| Practical works |
| TP1 – Python workshop 1 |
| TP2 – Python workshop 2 |
| TP3 – PES coding |
| TP4 – MD coding |
| TP5 – Thermostat coding |
TP1 & TP2 – Python workshops
In these practicals, you will learn the basics of Python coding.
TP3, TP4, and TP5 – Molecular dynamics coding
In this series of practicals, you will code an analytical potential energy surface in Python and run both microcanonical and canonical molecular dynamics on it. The work will be carried out in a Jupyter Notebook or Google Colab Notebook.
Your notebook should be:
- Well documented: clear explanations so that another student can easily follow your code.
- Functional: it must run smoothly from start to finish without errors.
You are encouraged to discuss and exchange ideas with colleagues, but each student must submit their own notebook. Submissions must not be identical.
Evaluation criteria
- Quality of coding.
- Quality and clarity of documentation.
- Depth of analysis and insight from the results.
Resources for preparation
Submission
Share your notebook with Dr. Chilkuri.
- If you use Jupyter, send the
file directly..ipynb - If you use Google Colab, send the link and make sure the notebook is accessible to anyone with the link. (For more information on sharing in Colab, see this short video.)
Final exam
The final exam covers all topics discussed in class. You can prepare yourself for it by working on the lists of questions and exercises discussed in the tutorials.
Literature and textbooks
The course does not follow a single source, but it references many books, papers, and internet material like essays and videos. The references are given during the lectures.
Other resources
This is a short list of videos and light texts that may help you with several topics in the course.
Linear algebra, from vectors to eigenvectors
This playlist is useful if you would like to review the mathematical basis of the course. I recommend it even if you are already reasonably comfortable with these concepts.
Mathematical concepts in quantum mechanics
These videos provide a very useful bridge between linear algebra and quantum mechanics.
- Math of Quantum Mechanics by Quantum Sense. I recommend watching all 14 videos in the series.
Hilbert space
Hilbert space is one of the central mathematical objects behind quantum mechanics. It can look abstract at first, but this video gives a helpful conceptual introduction.
Quantum mechanics in chemistry
Now we finally move toward molecules.
- Quantum Mechanics by Via Science: I recommend watching videos 11a to 11f in this series. If you would like a broader refresher on quantum mechanics, it may also be worth going through the full series.
- Why the empty atom picture misunderstands quantum theory | Aeon Essays: This is my own take on how we should think about the molecular wavefunction.
- Even when it fails, the Born-Oppenheimer approximation is still the heart of molecular and material sciences. I explain the reason in this essay.
Decoherence
After the basics, these videos and texts introduce the concept of decoherence, which will help with some of the more advanced discussions later in the course.
- Quantum superposition of states and decoherence by La Physique Autrement: A clear introduction to the basic concepts.
- Sabine Hossenfelder’s take on decoherence : A more phenomenological view, including the connection with dephasing.
- The quantum view of reality might not be so weird after all | Aeon Essays: Philip Ball’s discussion of decoherence and quantum Darwinism.
Machine learning
Once more, 3Blue1Brown is and exceptional resource with this playlist on neural networks.