Unit COMPUTATIONAL METHODS FOR PHYSICS

Course
Physics
Study-unit Code
55A00001
Location
PERUGIA
Curriculum
In all curricula
Teacher
Stefano Germani
Teachers
  • Stefano Germani
Hours
  • 42 ore - Stefano Germani
CFU
6
Course Regulation
Coorte 2020
Offered
2022/23
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 focuses on:
• The Linux operative system, commands and the shell environment;
• The python programming language and basic notions on C/C++;
• Techniques and algorithms to solve common problems in Physics (numerical integration, system of differential equation, Fourier transform);
• Techniques and algorithms based on the generation of random numbers (Monte Carlo simulations, Monte Carlo Markov Chains);
Reference texts

M. Newman "Computational Physics",
CreateSpace Independent Publishing Platform (November 7, 2012).
ISBN-10 ¿ : ¿ 1480145513
ISBN-13 ¿ : ¿ 978-1480145511
Educational objectives
The main learning goal of the course are the knowledge of the techniques and algorithms commonly used for the solution problems typical of the Physics research.

A secondary learning goal, which is a fundamental prerequisite to reach the main one, is the improvement of the skills of the student both in terms of programming and data management.
Prerequisites

It is mandatory to have passed the Laboratorio di Informatica exam.

The examples used during the course and in the final practice, require the ability to solve simple Mechanics and/or Electromagnetism and/or Statistics problems.
Teaching methods

• Lessons: 12 classes, 1 hour each, where the computational techniques are presented from a theoretical point of view.

• Practical exercises with the computer: 10 practical sessions, 3 hours each, where the techniques introduced from the theoretical point of view are applied to selected Physics problems.
Learning verification modality

The final exam is based on a practical project to be completed and discussed during an oral examination.

The practical project is assigned by the teacher also considering proposals from the student.
Extended program

• Course introduction;
• Basic use of the Linux shell;
• Python basics and the main libraries used for scientific computing (Numpy / SciPy / Matplotlib);
• Comparison between Python and C/C++;
• Computational errors;
• Integrals and derivatives;
• Differential equations ;
• Minimisation;
• Fourier Transforms;
• Random numbers and Monte Carlo techniques;
• Markov Chain Monte Carlo;
• Classes and Objects;
• Computational performance, compilation and C wrappers;
• Advanced and hybrid tools: Jupyter notebook, PyROOT;
Condividi su