This is a collection of lecture notes and programming exercises carried out as part of the Computational Physics 2 course at Yachay Tech University from August to December 2023.
Wladimir E. Banda Barragán
This is an advanced course on object-oriented programming for physics. It is the second module of the computational physics series taught at Yachay Tech. The course focuses on introducing advanced numerical methods and simulation techniques used in physics, and provides an overview of recent progress made in several areas of scientific computing. The course includes detailed step-by-step examples of how to design software and use parallel programming to solve problems in physics. Topics range from advanced data analysis, through ordinary and partial differential equations, nonlinear dynamics and chaos, to basic thermodynamic and fluid simulations. Each section of the course includes practical examples on different areas of science and technology in which computational physics and high-performance computing have played a major role in the recent years.
-
Ordinary differential equations, and initial value problems
-
Euler methods, Runge-Kutta methods, and applications
-
Boundary value problems, shooting and finite difference methods, applications
-
Software design using object oriented programming
-
Message Passage Interface (MPI) and parallel computing
-
High-performance computing (HPC)
-
Partial differential equations, generalities and classification
-
Methods of solving partial differential equations
-
Applications to electromagnetism, heat flow, and quantum mechanics
-
Discretisation, meshing and conservation in computational fluid dynamics
-
Advection, shocks and solitons
-
Introduction to hydrodynamics and computational fluid dynamics (CFD) applications
-
Thermodynamic simulations and introduction to molecular dynamics
-
Nonlinear dynamics, chaotic systems, fractals and statistical growth
-
Introduction to machine learning
The full course syllabus and programme can be found here:
https://github.com/wbandabarragan/computational-physics-2/blob/main/Course-Syllabus.pdf
https://github.com/wbandabarragan/computational-physics-2/blob/main/Course-Programme.pdf
Ideally, to take this class, you should have already taken and approved Computational Physics 1.
-
Formative Evaluation (2 Homework): 20%
-
Laboratory (2 Classwork): 20%
-
Midterm Exam: 30%
-
Final Exam: 30%
There will be neither make-up assignments nor make-up exams. Please do your best in every assignment.
Late assignments without appropriate justification will receive a penalisation according to the following criteria:
-
0-1 day late: -25%
-
1-2 days late: -50%
-
2-3 days late: -75%
-
+3 days late: no marks
Late assignments accompanied by appropriate justification (e.g. a medical certificate, etc.) will receive no penalisation.
The assignment deadlines and exam dates will be discussed and agreed upon in class. Once fixed, all deadlines are hard deadlines.
If you have questions on the material, you can find me in the office:
-
On Tuesdays: 15:00 – 16:00
-
On Thursdays: 17:00 – 18:00
-
Students are responsible for ensuring the academic integrity of their submitted assignments and exams.
-
Cheating in exams, plagiarising, and copying code or solutions from the Internet, from AI platforms (like chatGPT), from other students, or from previous years' solutions are all breaches of academic integrity.
-
Academic misconduct will be penalised according to the University’s regulations. Any assignments that infringe academic integrity (even partially) will receive zero marks.