PHYS710 : Simulation et modélisation en physique
[[Futur lien vers le projet choisi]]
Le but de ce cours est d'initier les étudiants au développement d'un logiciel de simulation ou de modélisation en physique. Ce logiciel sera modulaire et composé de sous-ensembles interagissant entre eux. Chaque module ou sous-ensemble sera développé par un binôme qui en aura la responsabilité. Le but sous-jacent est l'initiation à un travail collaboratif.
Dans cet esprit, la première séance consistera en une introduction succinte à l'environnement de développement et au langage choisis, en l'occurence ROOT et le C/C++. Les séances suivantes, espacées de 2 à 3 semaines seront des occasions de faire le point, chaque binôme expliquant aux autres l'évolution de leur travail et les points d'accès pour que tous puissent faire des tests entre les modules. Entre temps, les étudiants communiqueront avec l'enseignant et leurs camarades à travers un ensemble d'outils tels cette page wiki et une liste de diffusion. L'enseignant collectera les contributions (et suggérera/demandera éventuellement des modifications) de telle sorte qu'elles soient disponibles pour tous.
Autant que faire se peut, on envisagera une utilisation ultérieure du logiciel, soit dans le cadre des exercices "WIMS" de première année, soit pour servir de point de départ aux projets des années suivantes.
Outils de développement
Environnement
On utilisera ROOT.
- Rappel de quelques commandes Unix (si nécessaire)
- Utilisation de ROOT
- Compilation d'un petit code C
- Compilation d'un code intégrant des fonctionnalités ROOT
Langage
Nous utiliserons le C/C++. Les notions générales de C seront supposées connues (petit rappel rapide). On introduira les notions suivantes avec à chaque fois l'analyse de petits exemples de macros ROOT.
- Rappels de C : variables, fonctions, structures de contrôle, exemple de programme complet
- Pointeurs
- Le préprocesseur
- Allocation dynamique en C
- Le langage C++
- Classes, objets
- Héritage
- Constructeurs, destructeurs
- Encapsulation
- Allocation dynamique en C++
En règle générale, on donnera les informations nécessaires pour comprendre les macros ROOT présentées. Il reste beaucoup d'auto-formation à faire de la part des étudiants !
Bibliothèques
gsl, modules ROOT, bibliothèques trouvées ou produites par les étudiants
Outils de travail collaboratif
Ce wiki : Pour réaliser des pages sur ce wiki, il faut utiliser la syntaxe habituelle des wikis ce qui inclut des formules LaTeX encadrées par <math>...</math>
Liste de diffusion : en cours de mise au point
Outil de gestion de versions : cvs ou svn. Accessible seulement à l'enseignant.
Sujets proposés
Evolution d'une galaxie
Système mécanique composé
...