Cours MSEA




Modélisation et simulation à l'échelle atomique

Ce document bla bla bla ...

© G. Landa, LAAS - CNRS

<georges.landa@laas.fr>

Modélisation et simulation à l'échelle atomique

Introduction

Ces pages constituent l'introduction d'un cours sur la modélisation et la simulation à l'échelle atomique donné aux étudiants du Master 2 de Physique de l'Université Paul Sabatier de Toulouse et aux étudiants de 5ème année de l'INSA de Toulouse pendant plusieurs années.

Seule la partie "Introduction générale" que j'ai assurée est décrite ici.

Quest-ce qu'un chercheur ?



Qui utilise la modélisation ?
les chercheurs ...

Modélisation et Simulation : comment utiliser un ordinateur ...



Comment mesurer la hauteur d'un bâtiment avec un ordinateur et un chronomètre ?

Plan du cours

  • Introduction générale (G. Landa, LAAS)
  • Calculs ab-initio de la structure électronique des matériaux (L. Calmels, CEMES)
  • Monte-carlo, croissance, interfaces organiques/inorganiques (M. Djafari-Rouhani, A. Estève, LAAS)
  • Application de la simulation atomistique à la science des surfaces (H. Tang, CEMES)

Quelles sont les motivations ?

  • éliminer les approximations souvent nécessaires au traitement analytique d'un problème, lorsqu'il y a une solution ...
  • systèmes complexes : comportement, on peut aller bien au-delà des possibilités analytiques
  • possibilité de confrontation de modèles à l'expérience
  • remplir le "gap" entre théorie et expérience : certaines quantités peuvent être difficilement
    mesurables, on peut les calculer par simulation

Point de départ : ingrédients

Important ! Bien prendre en compte les processus physiques sous-jacents lors de la simulation.


Méthode :
  • Il faut toujours un modèle parfaitement bien défini du système physique
  • un algorithme de résolution numérique des équations
  • un langage informatique : FORTRAN ou C ou Python

Les méthodes de simulation

Le Top du Top :

  • forces interatomiques : que sont-elles ?

    on peut répondre à partir des premiers principes (calculs ab initio) en résolvant les éq.
    de la mécanique quantique pour les constituants atomiques, les électrons et les noyaux.


    \[
    -\frac{\hbar^2}{2m}\nabla^2\psi+U\psi=E\psi=i\hbar\frac{\partial \psi}{\partial t}
    \]
  • Problème : les calculs ab initio sont très gourmands en puissance de calcul, on est limité à quelques centaines d'atomes même
    sur les calculateurs les plus puissants.

Plus classique ...

  1. Des modèles plus classiques font intervenir des potentiels interatomiques empiriques qui permettent alors de traiter plusieurs millions d'atomes.
  2. Ceci rend possible la simulation de situations complexes : fusion, croissance, diffusion, déformations plastiques, ...

Méthodes déterministes

On traite de la dynamique classique $\equiv$ les équations du mouvement
  • Tous les degrés de liberté sont explicitement pris en compte
  • Pas d'éléments stochastiques
  • Choix d'un formalisme :
    1. Newton : la deuxième loi de Newton relie la force sur un objet et son accélération

      à travers la quantité de mouvement $\vec{p}=m\vec{v}$ :
      \[
      \vec{F}(\vec{r},\vec{v},t)=\frac{d\vec{p}}{dt}=\frac{d(m\vec{v})}{dt}=m\frac{d\vec{v}}{dt}+
      \vec{v}\frac{dm}{dt}\mathop{=}\limits^{m={\rm const}}m\vec{a}
      \]
    2. Lagrange :
      Le Lagrangien est donné par :

      $\mathcal{L}=\sum T(\dot{q}_i)-V(q_i)$

      d'où les équations de Lagrange :

      \[
      \frac{d}{dt}\frac{\mathcal{L}}{\dot{q}_i}=\frac{\partial \mathcal{L}}{\partial q_i}
      \]
    3. Hamilton :
      Le Hamiltonien est donné par :

      $H=\sum\dot{q}_ip_i-\mathcal{L}$

      les équations de Hamilton :

      \[
      \frac{dq_i}{dt}=\frac{\partial H}{\partial p_i}~;~~~\frac{dp_i}{dt}=-\frac{\partial H}{\partial q_i}
      \]

Dynamique moléculaire

Définition :

Les méthodes de dynamique moléculaire calculent les trajectoires dans
l'espace des phases d'une collection de molécules qui obéissent individuellement
aux lois classiques du mouvement.

On calcule les propriétés statiques et dynamiques en utilisant les équations du mouvement que l'on va résoudre
numériquement.
Méthode :
  • on discrétise le problème et donc on introduit une erreur (passage variables continues -> variables discrêtes).

    En particulier la discrétisation du temps est arbitraire et dépend du compromis entre la précision et l'échelle que l'on veut atteindre.
  • cette erreur peut-être aussi petite que souhaitée (dépend de la vitesse et de la mémoire de l'ordinateur).
  • domaines d'intérêts : physique, chimie et biochimie où elles servent à déterminer les structures de molécules complexes
    comme les protéines.
  • elles reposent sur la résolution numérique de l'équation de la dynamique classique, la résolution des équations du
    mouvement est rendue possible par la donnée d'un potentiel représentant les interactions entre les
    particules constituant le système étudié.

Méthodes stochastiques

Les méthodes stochastiques sont basées sur les concepts développés dans la théorie des probabilités et dans la physique statistique.

On distingue essentiellement deux cas :
  • Dynamique Brownienne : Dans cette méthode on calcule les trajectoires, dans l'espace des phases, d'une collection de molélcules qui obéissent individuellement à l'équation de Langevin dans un champ de forces :

    $m{{dv}\over{dt} }= R(t) - \beta v$, où R(t) est une force aléatoire (thermostat).

  • Méthode de Monte-Carlo : on considère les solutions du problème comme les paramètres d'une population, une séquence
    aléatoire de nombres permet de construire un exemple de telle population, à partir de laquelle une estimation statistique des paramètres peut être effectuée.
  • on fait intervenir le hasard dans la recherche de la solution.
    Plus on augmente le nombre d'expériences, plus on se rapproche de la solution
    exacte.

Exemple : expérience de Buffon

On peut considérer l'expérience de l'aiguille de Buffon (1707-1788) comme l'ancêtre des techniques de Monte Carlo :

il a pu déterminer le nombre $\pi$ à l'aide d'une simple aiguille et d'un parquet.

Ce dernier constitue un réseau de lignes droites équidistantes deux à deux, notons D cette espacement.

L'aiguille, très fine, a une longueur L inférieure à D. L'expérience consiste à laisser tomber un grand
nombre de fois l'aiguille sur le parquet et à compter le nombre de fois où l'aiguille chevauche une des
lignes:
c'est une approche statistique, le caractère chaotique de la chute de l'aiguille rendant l'expérience
parfaitement aléatoire. Par ailleurs, un calcul simple donne la probabilité pour que l'aiguille coupe une
ligne:
\[
P=2\frac{L}{\pi D}
\]


Selon un principe bien connu, si l'on répète l'expérience un grand nombre de fois, le résultat statistique
doit tendre vers la prévision probabiliste et en constitue donc une évaluation.

Connaissant donc P, L et D, on peut ainsi estimer la valeur numérique de $\pi$.

La précision de ce résultat est directement liée au nombre d'expériences réalisées: à l'exclusion des erreurs systématiques (par exemple des fluctuations de L liées à la qualité du plancher), on peut donc à la limite avoir une précision infinie si le nombre d'expériences tend vers l'infini.

D'un point de vue algorithmique, il est intéressant de noter que, comparativement à d'autres méthodes
numériques, l'efficacité d'un calcul Monte-Carlo augmente quand la dimension du problème augmente:
pour une étude à l'échelle mésoscopique, ceci donne un avantage indéniable aux techniques Monte-
Carlo face aux méthodes de dynamique moléculaire.

Algorithmes génétiques

  • reproduire artifiellement le processus naturel de l'évolution.
  • On agit sur une poulation d'individus qu'on fait évoluer dans le temps.

Simulation multi-échelle et/ou multi-modèle

systèmes complexes : nécessité de simuler une large gamme d'espace et de temps

  • Faire travailler coopérativement des programmes qui s'adressent à des échelles différentes
  • Les paramètres calculés à une échelle servent d'``input'' pour les modèles suivants

Les domaines d'application

  • Matériaux
  • Nano- et Bio-nano-technologies
  • Economie
  • ...

Les moyens et les limites de la simulation

Les outils

  • récupérer et améliorer le code existant
  • utiliser du code commercial
cela dépend des contraintes du problème à traiter et du degré d'investissement souhaité !

Quelques principes de base pour attaquer de gros problèmes

  • Tout problème compliqué doit être découpé en sous-problèmes simples.
    le problème à résoudre P est découpé en $P_1, P_2, ...$ plus simples,
    chacun des $P_i$ est ensuite découpé en $P_i1, P_i2, P_i3, ...,$ etc
  • On continue cette découpe jusqu'à ce que l'on n'ait plus qu'à résoudre des
    problèmes élémentaires. Chacun traité dans un module, regroupés en modules
    plus complexes jusqu'à retrouver le problème initial.
  • Qu'est-ce qu'un module ?

    En FORTRAN, un sous-programme, quasiment étanche du reste du monde, le seul
    lien est constitué par les paramètres transmis en arguments et les "common".
    L'idée est de pouvoir modifier un sous-programme sans se préoccupet de ce qui
    se passe ailleurs !
  • Combiner des programmes et des instructions unix
  • une bonne idée est : séparer les parties calculs des parties traitements
  • faire des fichiers de scripts ...

Déboggage (recherche des bugs)

  • à la compilation
    • commencer par les premières erreurs ... en effet une erreur peut en générer beaucoup d'autres
    • lire les messages d'erreur, souvent plus explicites qu'ils n'y paraissent !
      variables mal déclarées, position de caractères dans mauvaise colonnes en FORTRAN (6 et >72), mauvaise tabulation en Python, absence de ";" en C ...
  • à l'exécution
    • compiler avec une option de vérification des dimensions de tableaux "range checking" (-C)
    • utiliser un déboggueur, pour cela il faut compiler le programme avec l'option de déboggage (-g), cela permet l'exécution pas-à-pas et le sondage des variables
    • débogguer à "l'arrache" : on insère des instructions d'affichage dans des endroits stratégiques
    • ne pas s'énerver, prendre l'air ou un café
  • Trivial mais presque jamais fait : vérifier ce que donne le progamme, utiliser un cas où le résultat est connu !

Les limites de la simulation

  • Vitesse finie : celle du processeur, en général quelques millions de multiplications reelles par seconde

    Cadence du processeur : proportionnelle à la vitesse d'exécution des instructions, chaque impulsion déclenche une action de calcul
  • Précision finie : représentation finie des objets, la solution est d'utiliser des conditions aux limites
  • Temps d'accès à l'information :
    • mémoire quelques $10^{-9}~s$
    • disque quelques $10^{-3}~s$

    pb: lenteur d'accès ~ disque dur, compensé par fort parallèlisme

  • temps d'observation finis
  • taille finie du système étudié : problèmes de stockage, quelques 10 millions à quelques milliards de mots (1 mot = 4 octets)

Limitations matérielles

une des limitation importante : la cadence du processeur,

  • proportionnelle à la vitesse d'exécution des instructions
  • chaque impulsion déclenche une action de calcul

Mesure des performances : quelques dizaines de teraflops !

  • MIPS : Million d'Instructions Par Seconde - rapidité moyenne d'exécution des
    instructions
  • FLOPS : OPérations en virgule FLottante Par Seconde - capacité à réaliser des
    calculs scientifiques

concernant le stockage :

  • limite physique : 1 bit par atome
  • disque dur : 1.5 Gbit/cm-2
  • futur : 10 Gbit /cm-3 (1 jeu de cartes = 1500 CDRoms)
  • stockage moléculaire : protéine violette (bactériorhodopsine), éclairage laser,
Energie : pb de la consommation d'énergie pour refroidir

Conclusion

La simulation numérique de systèmes physiques est un exercice complet :
  • Physique du problème !
  • Méthodes mathématiques et analyse numérique
  • Langage informatique

La machine ne fait rien toute seule ! ...