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
- Moodle
- Go to Moodle page
Contribution of the course to the overall degree programme goals
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.
Expected learning outcomes
• Basic knowledge of computational methods commonly used in research across various areas of physics.
• Familiarity with the Python programming language and various libraries useful for studying physics problems.
2. Ability to apply knowledge and understanding
• Independently develop Python programs to simulate physical systems, both classical and quantum.
• Select appropriate numerical techniques, libraries, and data visualization tools for each specific problem.
• Critically analyze the results obtained from numerical simulations.
3. Autonomy of judgment
• Identify and correct errors through a critical analysis of the methods applied and the results obtained.
4. Communication skills
• Clearly and precisely communicate acquired knowledge using appropriate terminology, both in written and oral forms.
• Present simulation results using graphs and figures that comply with the standards of scientific publications.
5. Learning skills
• Take notes by selecting and organizing information based on its relevance and priority.
• Achieve sufficient autonomy in identifying and using computational tools and open-source software to solve physics problems.
Pre-requirements
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.
Contents
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 equation. 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.
Referral texts
On-line resources indicated by the teacher during each lecture.
Assessment methods
Take-home exercises: At the end of a few lectures, individual computational exercises will be assigned to practice the methods and tools learned. A total of four exercises will be given. All solutions, presented in the form of tables or graphs, should be compiled in Word or LaTeX files, and submitted to the teacher through Moodle. In some cases, the teacher may also request submission of specific parts of the student’s codes. The exercises will be graded on a 30-point scale. Students may submit exercises individually throughout the course or all at once at the end (at least 4 days -96 hours- before the oral exam). Access to the oral exam will only be permitted once all exercises have been submitted with an average score of at least 16/30.
Oral Exam (30-40 minutes): During the oral exam, the student will answer in-depth questions on the results of the exercises and on the fundamental course content, allowing the teacher to assess the student’s understanding of the topics and techniques covered.
Final Evaluation:
• Excellent (27-30/30): The exam will be considered fully successful if the average score of the exercises is 25/30 or higher, and during the oral exam, the student is able to answer most questions, demonstrating a complete comprehension of the subject matter.
• Good (22-26/30): The exam will be rated as good if the average score of the exercises is 20/30 or higher, and during the oral exam, the student demonstrates a solid understanding of the key methods and tools treated during the course and shows the ability to address and correct errors in the exercises.
• Sufficient (18-21/30): The exam will be considered sufficient if the average score of the exercises is 16/30 or higher, and during the oral exam, the student demonstrates adequate knowledge of the main course concepts, understanding also the more significant errors made in the solution of the exercises.
Failed Exam: The exam will be considered failed if the average score of the exercises is below 16/30, in which case access to the oral exam will not be granted, or above 16, but the student demonstrates very poor understanding of the main methods and tools introduced during the course. The teacher will assign new exercises to allow the student to retake the exam.