COMPUTATIONAL PHYSICS

Academic year
2024/2025 Syllabus of previous years
Official course title
COMPUTATIONAL PHYSICS
Course code
CM0648 (AF:520835 AR:291828)
Modality
On campus classes
ECTS credits
6
Degree level
Master's Degree Programme (DM270)
Educational sector code
FIS/03
Period
2nd Semester
Course year
2
Computational physics is a branch of physics that utilizes computational methods to solve complex physical problems that are otherwise unsolvable using analytical techniques. It serves as a crucial complement to both theoretical and experimental physics, providing valuable insights for a wide range of systems and phenomena by using numerical simulations and big data analysis techniques. Recently, given the advent of quantum computers, computational physics have also been embracing the use of quantum computing methods to solve problems that have been considered nearly intractable for classical computers.
The objective of the course is to provide students with both foundational knowledge and practical skills necessary to carry out computer simulations for both classical and quantum systems, as well as to perform data analyses effectively.
The course will introduce computational physics, with examples and exercises in the Python programming language. Specifically, students will learn to:
- Study classical systems by numerically solving the Newton’s equation of motion simulating classical dynamics beyond the limits of the approximations used for analytical solutions.
- Study many-body systems involving interactions among multiple particles.
- Solve the Schrödinger equation for quantum systems relevant to nanoscience and materials science, numerically calculating observables and simulating quantum dynamics.
Additionally, the course will provide a brief introduction to some practical applications of machine learning and quantum computing in the study of physical systems.
The course complements other physics and mathematics courses in the Quantum Science and Technology master's program. It provides a hands-on approach to studying problems encountered in Statistical Mechanics, Physics of Complex Systems, and Modern Condensed Matter Physics. Rather than delving into the details of algorithms already covered in the Numerical Methods and Quantum Computation courses, students will learn how to implement these methods, using existing libraries and tools, and finally apply them to interesting physical problems.
By the end of the course, students will be able to:
• Develop their own Python programs to simulate various classical and quantum physical systems.
• Select the appropriate numerical techniques, libraries, and data visualization tools.
• Have a basic understanding of computational methods commonly used in research across different areas of physics.
• Infer basic physics results from numerical simulations.
• Present the results in graphs and figures according to the current research practice.
To enroll in this course, students are required to have knowledge of Mathematical Methods, Classical Physics, and Quantum Mechanics at the level covered in a three-year scientific degree program.
Although the course will consider some problems and systems encountered in Statistical Mechanics, Physics of Complex Systems, and Modern Condensed Matter Physics, the course does not formally require having passed these previous courses. All the information about the systems relevant for the Computational Physics course will be re-introduced during the lectures.
1. Introduction to computational physics.
2. Python programming for physicists.
3. Graphics and visualization.
4. Simulation of classical systems. Solution of the Newton’s equation of motion for damped and driven systems, including non-linear dynamics.
5. Introduction to Monte Carlo methods for classical many-body systems. Application to the Ising model.
6. Solution of the time-independent Schrödinger. Calculation of the band structure of graphene nanoribbons and carbon nanotubes.
7. Brief introduction about quantum Monte Carlo techniques for many-body quantum systems, with a more detailed study of Variational Monte Carlo.
8. Brief mention of methods for strongly correlated lattice systems.
9. Solution of the time-dependent Schrödinger equation for quantum dynamics.
10. Introduction to machine learning with Python.
11. Introduction to quantum computing with the Qiskit software development kit.
12. Variational quantum eigensolver.
Mark E. Newman, Computational Physics (revisited and expanded version) (Cambridge University Press, 2013).
On-line resources indicated by the teacher during each lecture.
Homework assignments and final oral exam; maximum grade 30/30.
At the end of some lectures, the students will be given homework consisting of short computational tasks to practice the methods and computational tools covered during the lecture. There will be approximately six exercises in total. All homework must be submitted by the specified deadline; otherwise, students will not be allowed to take the oral exam. Any delay in submission will result in a penalty in terms of points. The time available for each homework assignment is approximately two weeks.
The final grade will be an average of the oral exam (which accounts for 30%) and the average of the grades received on the homework assignments given during the course.
The problems and fundamental equations relevant to each part of the course will be introduced using a traditional approach, with all calculations done on a black/whiteboard. The implementation in the Python programs will be conducted step by step by the lecturer, projecting the computer screen so that students can easily follow and replicate each operation on their computers.
English
oral
This programme is provisional and there could still be changes in its contents.
Last update of the programme: 27/06/2024