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);
Condividi su