Introduction
« If, in some cataclysm, all of scientific knowledge were to be destroyed, and only one sentence passed on to the next generation of creatures, what statement would contain the most information in the fewest words? I believe it is the atomic hypothesis that all things are made of atoms - little particles that move around in perpetual motion, attracting each other when they are a little distance apart, but repelling upon being squeezed into one another. In that one sentence, you will see, there is an enormous amount of information about the world, if just a little imagination and thinking are applied. »
R. Feynman
Cette citation illustre le potentiel de l'hypothèse atomiste. Dans ce TP, nous allons explorer quelques-unes de ses conséquences pour un système de sphères dures :
-
l'équation d'état des gaz et les transitions de phase,
-
le mouvement brownien d'une macromolécule,
-
l'interaction de déplétion entre deux macromolécules.
Outils utilisés
Programme de dynamique moléculaire
Vous allez utiliser un programme de dynamique moléculaire qui simule l'évolution d'un système de sphères dures. Ces sphères sont comme des boules de billard : elles avancent en ligne droite entre deux collisions. Il est assez compliqué d'écrire un tel programme qui soit efficace en termes de temps de calcul, et vous vous contenterez d'utiliser ce programme.
Ligne de commande
Pour lancer le programme de dynamique moléculaire, mais aussi traiter les résultats et les organiser dans des répertoires, vous utiliserez le terminal et son interpréteur, Bash. Bien que le terminal soit moins avenant que les outils habituels (gestionnaire de fichiers, éditeur de texte plus évolué, etc.), il est plus efficace quand il s'agit de traiter un grand nombre de fichiers ou des fichiers de grande taille, situation que vous allez rencontrer.
Analyse de données avec Jupyter
Pour traiter les données exportées par le programme, vous utiliserez Python dans l'interface Jupyter.
Vous avez besoin de deux modules : Numpy pour les opérations sur les tableaux, et Matplotlib pour tracer des courbes.
En particulier, il sera important d'utiliser les méthodes de Numpy pour traiter les grands tableaux plutôt que des boucles for
, qui sont beaucoup plus lentes.