Vous êtes sur la page 1sur 31

Monte Carlo

La simulation Monte Carlo

Pascal Boulet
pascal.boulet@univ-provence.fr
Réseau français de chimie théorique

2011
Monte Carlo

Outline
Introduction à la simulation numérique et au calcul
Historique et méthodes
Introduction à la simulation Monte Carlo
Historique et objectifs
Exemple
Principe de la méthode
Applications
Ensemble canonique
Ensemble grand-canonique
Calcul du potentiel chimique
Examples
Distributions
Cv
g(r)
Isotherme d’adsorption
Conclusion
Monte Carlo
Introduction à la simulation numérique et au calcul
Historique et méthodes
Monte Carlo
Introduction à la simulation Monte Carlo
Historique et objectifs

I Technique développée dans les années 1950 (Los Alamos, MANIAC) ;


I Simulation pour les développements dans le domaine de la fusion
nucléaire (militaire puis civile) ;
I Mise en pratique seulement récemment (vingtaine d’années), depuis
l’accroissement de la puissance des ordinateurs ;
I La simulation (en général) est utile pour :
1. Etudier des domaines où la théorie seule ne permet pas d’aller (trop de
simplifications dans les modèles) ;
2. Modéliser des systèmes expérimentaux : rationaliser les paramètres
importants
3. tester des modèles théoriques (ex : The Evolution of Earth-Approaching
Binary Asteroids : A Monte Carlo Dynamical Model, Icarus, 1995 (115)
36-46) ;
I La technique repose sur l’utilisation de nombres aléatoires ;
I Les configurations sont acceptées ou refusées selon la loi de distribution
de Maxwell-Boltzmann.
Monte Carlo
Introduction à la simulation Monte Carlo
Historique et objectifs
Monte Carlo
Introduction à la simulation Monte Carlo
Exemple

Exemple : on veut calculer la valeur de π


I L’aire du quart de cercle est donnée par
RR
x 2 +y 2 ≤r 2 dxdy et vaut π/4 ;
x>0
y >0
I Le rapport de l’aire du quart de cercle sur
1 πr 2
π
l’aire du carré vaut 4
r2
= 4
;
Technique Monte Carlo : soient n le nombre de
tirages inclus dans le quart de cercle et N le
nombre total de tirages
I On tire deux nombres aléatoires
correspondant à x et y ;
I Si x 2 + y 2 ≤ r 2 alors n = n + 1 ;
I Dans tous les cas N = N + 1 ;
n π
Si N est suffisamment grand alors N
≈ 4
Monte Carlo
Introduction à la simulation Monte Carlo
Exemple

program pi
implicit none
real(kind=8) :: x,y
real(kind=8) :: p
real(kind=8), parameter :: epsilon=1e-10
integer :: n,nn

p=4.*atan(1.0)
n=0
nn=0

l1: do
call random_number(x)
call random_number(y)
if ((x*x+y*y) .le. 1.0) n=n+1
nn=nn+1
if (abs(4.0*n/nn-p) .le. epsilon) exit l1
end do l1

write(6,’(A,I7,A,F15.12)’) ’after ’,nn,’ iterations pi equals ’,4.0*n/nn


end program pi
Monte Carlo
Introduction à la simulation Monte Carlo
Principe de la méthode

Language : Monte Carlo basé sur la physique statistique

I Espace des phases : A(rN , pN ) ⇒ (r, p)


I Ensemble (microcanonique NVE, canonique NVT, grand canonique µVT,
etc.)
I Distribution des états
I configurations microscopiques moyennes (positions et vitesses)

Approximation semi-classique nombres d’états

I L’espace des phases N ≈ 1023 défini par : (rN , pN )


I Volume de l’espace des phases : dΩ = dr1 dp1 dr2 dp2 . . . drN dpN
I Principe d’Heisenberg : drx dpx ∼ h, constante de Planck
dΩ
I Nombre d’états : dn = 3N
h
Monte Carlo
Introduction à la simulation Monte Carlo
Principe de la méthode

Approximation semi-classique
Monte Carlo
Introduction à la simulation Monte Carlo
Principe de la méthode

Approximation semi-classique

1. Pour de nombreuses applications (chimie, biologie, science des


matériaux) on traite les degrés de liberté rotationels, translationels et
configurationnels de manière classique.
2. Implique que : ∆  kT
3. Degrés de liberté vibrationnels et électroniques sont traités de manière
quantique.
4. Partition de fonction : Q = Qclass. Qquant.
5. Loi de distribution de probabilité : Pi = Piclass. Piquant.
Remarque : l’approximation est valide si :
1. La température n’est pas trop basse (20K)
2. la masse des particules n’est pas trop petite (H, He)
Monte Carlo
Introduction à la simulation Monte Carlo
Principe de la méthode

Initialisation

I Exemple : on considère le modèle d’Ising de spins avec


P l’interaction
ferromagnétique J entre premiers voisins : H = −J k ,l S(rk )S(rl ) ;
I On génère une grille 2D, les noeuds du réseaux étant les spins ;
I On initialise aléatoirement les spins à +1 ou −1
I A l’issue de la simulation on veut calculer la valeur moyenne de
grandeurs physiques telles que l’énergie moyenne < E > ou
l’aimantation M ;
I La valeur moyenne d’une grandeur A est donnée par :
N PN
1 X A(s)e−βE(s)
< A >= A(s)e−βE(s) = s=1
PN (1)
Z(T ) s=1 e−βE(s)
s=1

où Z(T ) est la fonction de partition.


I Dans la pratique, on réalise des permutations de spins
pour construire les N états microscopiques.
Monte Carlo
Introduction à la simulation Monte Carlo
Principe de la méthode

Principe ergodique

I On souhaite simuler les propriétés des systèmes à l’équilibre


I Propriétés = moyennes sur des ensembles (de configurations)
I Habituellement les systèmes évoluent dans le temps ⇒ on fait des
moyennes temporelles

Principe ergodique

hA(r(t), p(t))itime = hA(r, p)iensemble (2)


Monte Carlo
Introduction à la simulation Monte Carlo
Principe de la méthode

Echantillonnage simple

L’échantillonnage simple correspond exactement au cas présenté sur le


transparent précédent :
I On explore le domaine des phases (configurations) en réalisant des
permutations +1/ − 1 des spins.
I La convergence vers < A > est d’autant meilleure que
le nombre d’itérations Monte Carlo N est grand.
I Problème 1 : (( pour la forme )) : on a une limitation due au
temps de calcul ;
I Problème 2 : (( pour le fond )) : les configurations ne sont pas
celles de l’équilibre à la température souhaitée
I Problème 3 : Les configurations très peu probables sont autant visitées
que les autres. Or, peu de configurations participent à
l’équilibre par rapport à l’ensemble des
configurations possibles.

Conséquence : la moyenne calculée est entachée d’une grande erreur !


Monte Carlo
Introduction à la simulation Monte Carlo
Principe de la méthode

Echantillonnage par importance


Cet échantillonnage se base sur le principe suivant : on choisit les
microétats s dont les probabilités sont les plus
importantes à la température T .
Le choix est effectué selon l’algorithme suivant : les microétats ne
sont pas choisit de manière indépendante :
I Les microétats génèrent une suite appelée chaîne de Markov dont
l’état si+1 s’obtient à partir de l’état si selon une probabilité w(si → si+1 ).
I Le choix de w(si → si+1 ) doit respecter à l’équilibre :

e−βE(si )
p(si ) = (3)
Z(T )
I Ceci impose à w(si → si+1 ) ce que l’on appelle le principe du
bilan détaillé :

p(si )w(si → sk ) = p(sk )w(sk → si ) (4)

soit :
w(si → sk )
= e−β(E(sk )−E(si )) = e−β∆E (5)
w(sk → si )
Monte Carlo
Introduction à la simulation Monte Carlo
Principe de la méthode

Remarques :
1. les choix pour w(si → sk ) sont fréquemment les suivants :

e−β∆E
w(si → sk ) = (6)
1 + e−β∆E
ou bien :
w(si → sk ) = e−β∆E si ∆E < 0
(7)
= 1 si ∆E ≥ 0
la seconde possibilité étant plus usité que la première ;
2. L’algorithme ne dit pas comment les microétats doivent être créés. Soit
on change un spin à la fois (single-spin flip) soit on change plusieurs
spins (cluster-spin flip).
3. L’algorithme de l’échantillonnage par importance avec bilan détaillé et
changement d’un seul spin est l’algorithme de Metropolis (J.
Chem. Phys., 21 (1953) 1087-1092).
4. Dans l’algorithme de Metropolis il n’est pas
nécessaire de connaître la fonction de partition.
D’ailleurs pour les cas complexes on ne peut pas la calculer. . .
Monte Carlo
Introduction à la simulation Monte Carlo
Principe de la méthode

Le Monte Carlo dans la pratique : algorithme de Metropolis


On suppose qu’on veut inverser un seul spin.
1. On tire un spin aléatoirement ;
2. On inverse son spin et on calcule l’énergie de ce nouveau microétat ;
3. On calcule la différence d’énergie avec le microétat précédent ;
4. On deux possibilités :
4.1 Soit l’énergie a diminué lors de la transition ∆E < 0 et dans ce cas
on garde la nouvelle configuration ;
4.2 Soit l’énergie a augmenté lors de la transition ∆E ≥ 0 et dans ce cas
on garde la nouvelle configuration avec une certaine
probabilité :
I On tire un nombre aléatoire p entre 0 et 1, ce qui correspond à une probabilité. Si
e−β∆E ≥ p on garde la nouvelle configuration sinon on la rejette.
En conséquence :

1. Avec cette méthode on conserve toutes les configurations


accessibles par le système à la température T .
2. Les moyennes et fluctuations sont calculées sur un ensem-
ble de configuration qui répond à la distribution de Maxwell-
Boltzmann.
Monte Carlo
Applications
Ensemble canonique

I Ensemble fermé {N, V , T } ;


I Le système est simulé dans une boîte de volume constant (ex : gaz
Lennard-Jones, protéine, polymère, molécules adsorbées dans un
solide poreux (zéolithe)) ;
I Seuls mouvements possibles pour les particules/molécules :
translation et rotation ;
> translation de la molécule complète ;
> rotation autour du centre de masse ;
> mouvements plus complexes :
1. translation d’un atome dans la molécule ;
2. rotation d’un groupe d’atomes dans la molécule.

Dans tous les cas :


N
1
drN e−βU (r ) ;
R
I La fonction de partition canonique s’écrit : Z = Λ3N N!
N
I la densité de probabilité d’une configuration est : p(rN ) ∝ e−βU (r ) ;
I On voit immédiatement que la probabilité d’acceptation d’un mouvement
est :
w(o → n) = e−β(U (n)−U (o)) (8)
Monte Carlo
Applications
Ensemble canonique

Comment calculer U (rN ) ?

Dépend du type de système mais en général on prend en compte :


1. Les interactions intermoléculaires :
I Lennard-Jones (interactions Van der Waals) :
 !12 !6 
σij σij
ULJ (rij ) = 4ij  −  (9)
rij rij

avec  et σ des paramètres interatomiques obtenus avec les règles de


Lorentz-Berthelot :
1
σij = 2
(σii + σjj )
1 (10)
ij = ( + jj )
2 ii
ou

ij = ii jj
D’autres règles peuvent être utilisées (voir par exemple : J. Mol. Liquids, 135
(2007) 170-178) ;
I Electrostatique :
1 q(r)q(r0 )
Uelec (r) = (11)
4π0 r |r − r0 |
un traitement particulier s’impose dans le cas des systèmes périodiques
(somme d’Ewald, technique particle-mesh, etc.)
Monte Carlo
Applications
Ensemble canonique

2 Les interactions intramoléculaires :


I Interactions de liaison (potentiel harmonique, quartique, Morse, etc.)
 2
Ubond (rij ) = kij r0ij − rij (12)
I Interactions d’angle (potentiel harmonique, quartique)
 2
0
Uangle (θijk ) = kijk θijk − θijk (13)
I Interaction de torsion
X1
Uangle (φ) = ki (1 + cos(ki φ)) (14)
2
i
I Interaction de torsion impropre (sortie hors du plan)
1
Uimproper (ϕ) = kijkl (ϕ0ijkl − ϕijkl )2 (15)
2
L’ensemble des paramètres (constantes de force k ) est appelé un champ
de forces.
Monte Carlo
Applications
Ensemble grand-canonique

Système ouvert

Exemple : adsorption de gaz dans un milieu poreux

µ(gaz) = µ(phase adsorbée)


µ(gaz, idéal) = µ0 (gas) + kT ln(P)
Monte Carlo
Applications
Ensemble grand-canonique

I Ensemble ouvert {µ, V , T } ;


I Au cours de la simulation Monte Carlo on peut introduire ou supprimer
des molécules ;
I Le nombre de molécules est ajusté en fixant le potentiel chimique ;
I Le système est en contact avec un réservoir de molécules qui fixe la
température ;
I L’équilibre est atteint lorsque le potentiel chimique
du système est égal à celui du réservoir ;
I Idéal pour simuler des isothermes d’adsorption dans les
matériaux poreux ;
La fonction de partition grand-canonique s’écrit :

VN
Z
X X N
Ξ = Z(N, V , T ) eβµN = eβµN 3N
drN e−βU (r )
(16)
Λ N!
N N

La densité de probabilité pour un état pN est :

eβµN V N −βU (rN )


pN ∝ e (17)
Λ3N N!
Monte Carlo
Applications
Ensemble grand-canonique

I Probabilité d’accepter une translation ou une rotation :

w(o → n) = e−β(U (n)−U (o)) (18)


I Probabilité d’accepter une insertion :

eβµ(N+1) V N+1 −βUn (N+1)


e
Λ3(N+1) (N + 1)!
w(o → n) = (19)
eβµN V N −βUo (N)
e
Λ3N N!
soit :
eβµ V
w(o → n) = e−β(Un (N+1)−Uo (N)) (20)
Λ3 (N + 1)
I Probabilité d’accepter une délétion :

Λ3 N −β(Un (N−1)−Uo (N))


w(o → n) = e (21)
eβµ V
Monte Carlo
Applications
Calcul du potentiel chimique

I Dans les simulations ou le potentiel n’est pas connu à priori, il est


possible de réaliser des simulations Monte Carlo pour le déterminer ;
I Il existe plusieurs méthodes :
1. méthode de l’insertion de particules : méthode de Widom
2. méthode de la distribution de recouvrement

On ne décrit ici que la méthode de Widom. Pour les autres voir


Understanding Molecular Simulations. From Algorithms to Applications, by D.
Frankel and B. Smit, Academic Press, ISBN 0-12-267351-4, chapitre 7.

Le potentiel chimique d’une espèce a est donné par :


     
∂G ∂F ∂S
µa = = = −T (22)
∂Na Nb6=a ,P,T ∂Na Nb6=a ,V ,T ∂Na Nb6=a ,V ,E
Monte Carlo
Applications
Calcul du potentiel chimique

I la fonction de partition canonique s’écrit :

VN
Z
N
Z(N, V , T ) = 3N drN e−βU (r ) (23)
Λ N!
I La fonction de Helmoltz s’écrit :
F (N, V , T ) = −kT ln Z(N, V , T )
VN
  R 
N −βU (rN )
= −kT ln − kT ln dr e (24)
Λ3N N!
= Fid (N, V , T ) + Fex (N, V , T )
I On peut montrer alors que :
Z(N + 1, V , T )
µ = −kT ln
Z(N, V , T )
N+1
!
drN+1 e−βU (r )
  R
V (25)
= −kT ln − kT ln
Λ3 (N + 1) drN e−βU (rN )
R

= µid + µex
Monte Carlo
Applications
Calcul du potentiel chimique

I µid peut être calculé analytiquement (gaz parfait) ;


I Pour la partie d’excès, on sépare l’énergie potentielle du système à
N + 1 particules en la somme de l’énergie potentielle à N particules plus
l’énergie d’interaction de la (N + 1)ème particule avec le reste :
∆U = U(rN+1 ) − U (rN ) ;
I µex devient : Z
µex = −kT ln drN+1 < e−β∆U >N (26)

où < . . . >N désigne la moyenne d’ensemble sur l’espace des


configurations du système à N particules ;
I Dans la pratique :
> On réalise une simulation N, V , T
> Périodiquement, on choisit aléatoirement une position dans le système et on
calcule l’énergie d’interaction qu’aurait une particule à cette position avec le
reste du système ;
> On calcule la moyenne sur l’ensemble des tests réalisés au cours de la
simulation ;
> Remarque : à l’issu du test on n’insère jamais la particule.
Monte Carlo
Applications
Calcul du potentiel chimique

Avantages de la méthode :
1. Facile à programmer ;
2. Ne nécessite pas de réaliser une simulation Monte Carlo
supplémentaire.

Désavantages de la méthode :
1. La procédure est coûteuse en temps de calcul ;
2. Elle ne fonctionne pas bien pour les systèmes denses.
Monte Carlo
Examples
Distributions

Distributions d’énergie et d’états


Monte Carlo
Examples
Cv

Capacité calorifique
Monte Carlo
Examples
g(r)

Fonction de distribution radiale


Monte Carlo
Examples
Isotherme d’adsorption

Ensemble grand-canonique
Monte Carlo
Conclusion

La simulation Monte Carlo permet :


I l’étude des systèmes à l’équilibre thermodynamique ;
I le calcul de grandeurs thermodynamiques (U, Cv , etc.) et de leurs
fluctuations ;
I le calcul de certaines fonctions d’auto-corrélation (ex. la fonction de
distribution radiale g(r)).
Ce qu’elle ne permet pas :
I l’étude des systèmes hors équilibre ;
I la dynamique des systèmes (pas de notion de temps en Monte Carlo) ;
I le calcul de grandeurs liées au temps : coefficient de diffusion, fonction
d’auto-correlation des vitesses (spectres infra-rouge).
Si l’on veut avoir accès à des grandeurs dépendantes du temps il faut réaliser
des simulations de dynamique moléculaire.