Unit COMPUTATIONAL METHODS FOR PHYSICS
- Course
- Physics
- Study-unit Code
- 55A00001
- Curriculum
- In all curricula
- Teacher
- Matteo Duranti
- Teachers
-
- Matteo Duranti
- Hours
- 42 ore - Matteo Duranti
- CFU
- 6
- Course Regulation
- Coorte 2019
- Offered
- 2021/22
- Learning activities
- Affine/integrativa
- Area
- Attività formative affini o integrative
- Academic discipline
- FIS/03
- Type of study-unit
- Opzionale (Optional)
- Type of learning activities
- Attività formativa monodisciplinare
- Language of instruction
- Italian
- Contents
- The course is focused on
• The Linux operative system, common commands and shell environment;
• The C/C++ programming language and the usage of Makefile;
• Techniques and algorithms for the simulation of problems in physics (MonteCarlo)
• Techniques and algorithms for the resolution of problems in physics (numerical integration, resolution of systems of differential equations); - Reference texts
- • W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery, Numerical Recipes: The Art of Scientific Computing, Third Edition (Cambridge University Press, 2007, ISBN-10: 0521880688).
• E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, (Pearson Education, 1994, ISBN: 0201633612, ISBN-13: 9780201633610) - Educational objectives
- Goal of the course is the learning of common computer science techniques and algorithms, applied to the solution of problems common in the physics research. Since the knowledge and competence of the programming and of the computer environment is a fundamental prerequisite for such a goal, the course has, as secondary goal, but preparatory for the main one, the detailed study of the computer science competences.
So the acquired knowledges will be:
• role and meaning of the various steps of the compilation of a C/C++ program;
• the role, the structure and the usage of a Makefile;
• the most relevant random number generators;
• the MonteCarlo technique and its application;
• the most relevant methods for the numerical integration (rectangle, trapeze, Simpson, Gauss, .);
• the most relevant methods for the numerica resolution of differential equation systems (Eulero, punto medio, Runge-Kutta, .);
The acquired abilities:
• compilation of a C/C++ software;
• writing of a Makefile;
• writing a LCG random number generator and usage of the random number generators;
• wiriting of simple MonteCarlo programs;
• writing of simple programs for the numerical integration of functions;
• writing of simple programs for the numerical resolution of differential equations; - Prerequisites
- To understand and being able to apply the techniques described during the lessons, is mandatory to have passed the Laboratorio di Informatica exam. The examples used during the course and in the final practice, in addition, require the ability to solve simple Mechanics and/or Electromagnetism and/or Statistics problems.
- Teaching methods
- • Lessons (theory): 10 lessons of 1 hours each, during the which the techniques will be discussed from a theoretical point of view;
• Practical exercitations with the computer: 10 exercitations of 3 hours each, during the which exercises requiring the implementation of the techniques described from the theoretical point of view, within simple programs, will be solved; - Other information
- Is strongly suggested to attend the lessons
- Learning verification modality
- The final examination is based on a practical test at the computer and on an oral examination.
The practical test foresee the resolution, through the implementation of simple programs, of, at most, 2 simple exercises. The exercises are simple Mechanics and/or Electromagnetism and/or Statistics problems to be solved using the techniques described during the lessons.
The oral examination, during at most 60 minutes, is based on the discussion of a written essay about a project (writing of a software to solve different problematics) given at the end of the course. The discussion of the project will be just the starting point to the verification of the knowledges foreseen to be acquired during the course. - Extended program
- The course aim to provide a solid background level to the usage of the computer science in the field of physics and scientific in general research. This background will be provided through the study and implementation (working with the computer) of some examples of algorithms and solutions, common in the routine research in physics.
The program of the course foresee the detailed study of:
• The Linux operative system, common commands and shell environment;
• The C/C++ programming language and the usage of Makefile;
• Techniques and algorithms for the simulation of problems in physics (MonteCarlo)
• Techniques and algorithms for the resolution of problems in physics (numerical integration, resolution of systems of differential equations);