31
Monte Carlo La simulation Monte Carlo Pascal Boulet [email protected] Réseau français de chimie théorique 2011

La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

La simulation Monte Carlo

Pascal [email protected]

Réseau français de chimie théorique

2011

Page 2: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Outline

Introduction à la simulation numérique et au calculHistorique et méthodes

Introduction à la simulation Monte CarloHistorique et objectifsExemplePrincipe de la méthode

ApplicationsEnsemble canoniqueEnsemble grand-canoniqueCalcul du potentiel chimique

ExamplesDistributionsCv

g(r)Isotherme d’adsorption

Conclusion

Page 3: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Introduction à la simulation numérique et au calcul

Historique et méthodes

Page 4: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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 desimplifications dans les modèles) ;

2. Modéliser des systèmes expérimentaux : rationaliser les paramètresimportants

3. tester des modèles théoriques (ex : The Evolution of Earth-ApproachingBinary 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.

Page 5: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Introduction à la simulation Monte Carlo

Historique et objectifs

Page 6: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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∫ ∫

x2+y2≤r2

x>0y>0

dxdy et vaut π/4 ;

I Le rapport de l’aire du quart de cercle sur

l’aire du carré vaut14πr2

r2 = π4 ;

Technique Monte Carlo : soient n le nombre detirages inclus dans le quart de cercle et N lenombre total de tirages

I On tire deux nombres aléatoirescorrespondant à x et y ;

I Si x2 + y2 ≤ r 2 alors n = n + 1 ;I Dans tous les cas N = N + 1 ;

Si N est suffisamment grand alors nN ≈

π4

Page 7: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Introduction à la simulation Monte Carlo

Exemple

program piimplicit nonereal(kind=8) :: x,yreal(kind=8) :: preal(kind=8), parameter :: epsilon=1e-10integer :: n,nn

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

l1: docall random_number(x)call random_number(y)

if ((x*x+y*y) .le. 1.0) n=n+1nn=nn+1

if (abs(4.0*n/nn-p) .le. epsilon) exit l1end do l1

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

Page 8: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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 étatsI 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Ω = dr1dp1dr2dp2 . . . drNdpN

I Principe d’Heisenberg : drx dpx ∼ h, constante de Planck

I Nombre d’états : dn =dΩ

h3N

Page 9: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Introduction à la simulation Monte Carlo

Principe de la méthode

Approximation semi-classique

Page 10: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Introduction à la simulation Monte Carlo

Principe de la méthode

Approximation semi-classique

1. Pour de nombreuses applications (chimie, biologie, science desmatériaux) on traite les degrés de liberté rotationels, translationels etconfigurationnels de manière classique.

2. Implique que : ∆ε kT

3. Degrés de liberté vibrationnels et électroniques sont traités de manièrequantique.

4. Partition de fonction : Q = Qclass.Qquant.

5. Loi de distribution de probabilité : Pi = Pclass.i Pquant.

i

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)

Page 11: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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 l’interactionferromagné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 −1I A l’issue de la simulation on veut calculer la valeur moyenne de

grandeurs physiques telles que l’énergie moyenne < E > oul’aimantation M ;

I La valeur moyenne d’une grandeur A est donnée par :

< A >=1Z(T )

N∑s=1

A(s)e−βE(s) =

∑Ns=1 A(s)e−βE(s)∑N

s=1 e−βE(s)(1)

où Z(T ) est la fonction de partition.I Dans la pratique, on réalise des permutations de spinspour construire les N états microscopiques.

Page 12: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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’équilibreI 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

〈A(r(t),p(t))〉time = 〈A(r,p)〉ensemble (2)

Page 13: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Introduction à la simulation Monte Carlo

Principe de la méthode

Echantillonnage simple

L’échantillonnage simple correspond exactement au cas présenté sur letransparent précédent :

I On explore le domaine des phases (configurations) en réalisant despermutations +1/− 1 des spins.

I La convergence vers < A > est d’autant meilleure quele nombre d’itérations Monte Carlo N est grand.

I Problème 1 : (( pour la forme )) : on a une limitation due autemps de calcul ;

I Problème 2 : (( pour le fond )) : les configurations ne sont pascelles de l’équilibre à la température souhaitée

I Problème 3 : Les configurations très peu probables sont autant visitéesque les autres. Or, peu de configurations participent àl’équilibre par rapport à l’ensemble desconfigurations possibles.

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

Page 14: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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 lesmicroétats s dont les probabilités sont les plusimportantes à la température T .Le choix est effectué selon l’algorithme suivant : les microétats nesont pas choisit de manière indépendante :

I Les microétats génèrent une suite appelée chaîne de Markov dontl’é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 :

p(si ) =e−βE(si )

Z(T )(3)

I Ceci impose à w(si → si+1) ce que l’on appelle le principe dubilan détaillé :

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

soit :w(si → sk )

w(sk → si )= e−β(E(sk )−E(si )) = e−β∆E (5)

Page 15: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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 :

w(si → sk ) =e−β∆E

1 + e−β∆E (6)

ou bien :w(si → sk ) = e−β∆E si ∆E < 0

= 1 si ∆E ≥ 0(7)

la seconde possibilité étant plus usité que la première ;

2. L’algorithme ne dit pas comment les microétats doivent être créés. Soiton change un spin à la fois (single-spin flip) soit on change plusieursspins (cluster-spin flip).

3. L’algorithme de l’échantillonnage par importance avec bilan détaillé etchangement 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 pasnécessaire de connaître la fonction de partition.D’ailleurs pour les cas complexes on ne peut pas la calculer. . .

Page 16: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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 cason garde la nouvelle configuration ;

4.2 Soit l’énergie a augmenté lors de la transition ∆E ≥ 0 et dans ce cason garde la nouvelle configuration avec une certaineprobabilité :

I On tire un nombre aléatoire p entre 0 et 1, ce qui correspond à une probabilité. Sie−β∆E ≥ p on garde la nouvelle configuration sinon on la rejette.

En conséquence :

1. Avec cette méthode on conserve toutes les configurationsaccessibles 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.

Page 17: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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 unsolide 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 :

I La fonction de partition canonique s’écrit : Z = 1Λ3N N!

∫drNe−βU(rN ) ;

I la densité de probabilité d’une configuration est : p(rN) ∝ e−βU(rN ) ;I On voit immédiatement que la probabilité d’acceptation d’un mouvement

est :w(o → n) = e−β(U(n)−U(o)) (8)

Page 18: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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) :

ULJ (rij ) = 4εij

(σij

rij

)12

−(σij

rij

)6 (9)

avec ε et σ des paramètres interatomiques obtenus avec les règles deLorentz-Berthelot :

σij = 12 (σii + σjj )

εij = 12 (εii + εjj ) ou

εij =√εiiεjj

(10)

D’autres règles peuvent être utilisées (voir par exemple : J. Mol. Liquids, 135(2007) 170-178) ;

I Electrostatique :

Uelec(r) =1

4πε0εr

q(r)q(r′)|r− r′|

(11)

un traitement particulier s’impose dans le cas des systèmes périodiques(somme d’Ewald, technique particle-mesh, etc.)

Page 19: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Applications

Ensemble canonique

2 Les interactions intramoléculaires :I Interactions de liaison (potentiel harmonique, quartique, Morse, etc.)

Ubond (rij ) = kij

(r0ij − rij

)2(12)

I Interactions d’angle (potentiel harmonique, quartique)

Uangle(θijk ) = kijk

(θ0

ijk − θijk

)2(13)

I Interaction de torsion

Uangle(φ) =∑

i

12

ki (1 + cos(kiφ)) (14)

I Interaction de torsion impropre (sortie hors du plan)

Uimproper (ϕ) =12

kijkl (ϕ0ijkl − ϕijkl )

2 (15)

L’ensemble des paramètres (constantes de force k ) est appelé un champde forces.

Page 20: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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)

Page 21: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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 chimiquedu système est égal à celui du réservoir ;

I Idéal pour simuler des isothermes d’adsorption dans lesmatériaux poreux ;

La fonction de partition grand-canonique s’écrit :

Ξ = Z(N,V ,T )∑

N

eβµN =∑

N

eβµN V N

Λ3NN!

∫drNe−βU(rN ) (16)

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

pN ∝eβµNV N

Λ3NN!e−βU(rN ) (17)

Page 22: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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 :

w(o → n) =

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

Λ3(N+1)(N + 1)!e−βUn(N+1)

eβµNV N

Λ3NN!e−βUo(N)

(19)

soit :

w(o → n) =eβµV

Λ3(N + 1)e−β(Un(N+1)−Uo(N)) (20)

I Probabilité d’accepter une délétion :

w(o → n) =Λ3N

eβµVe−β(Un(N−1)−Uo(N)) (21)

Page 23: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Applications

Calcul du potentiel chimique

I Dans les simulations ou le potentiel n’est pas connu à priori, il estpossible 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 Widom2. méthode de la distribution de recouvrement

On ne décrit ici que la méthode de Widom. Pour les autres voirUnderstanding 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 :

µa =

(∂G∂Na

)Nb 6=a,P,T

=

(∂F∂Na

)Nb 6=a,V ,T

= −T(∂S∂Na

)Nb 6=a,V ,E

(22)

Page 24: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Applications

Calcul du potentiel chimique

I la fonction de partition canonique s’écrit :

Z(N,V ,T ) =V N

Λ3NN!

∫drNe−βU(rN ) (23)

I La fonction de Helmoltz s’écrit :

F (N,V ,T ) = −kT lnZ(N,V ,T )

= −kT ln(

V N

Λ3NN!

)− kT ln

(∫drNe−βU(rN )

)= Fid (N,V ,T ) + Fex (N,V ,T )

(24)

I On peut montrer alors que :

µ = −kT lnZ(N + 1,V ,T )

Z(N,V ,T )

= −kT ln(

VΛ3(N + 1)

)− kT ln

(∫drN+1e−βU(rN+1)∫

drNe−βU(rN )

)= µid + µex

(25)

Page 25: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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 plusl’énergie d’interaction de la (N + 1)ème particule avec le reste :∆U = U(rN+1)− U(rN) ;

I µex devient :

µex = −kT ln∫

drN+1 < e−β∆U >N (26)

où < . . . >N désigne la moyenne d’ensemble sur l’espace desconfigurations 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 lereste du système ;

> On calcule la moyenne sur l’ensemble des tests réalisés au cours de lasimulation ;

> Remarque : à l’issu du test on n’insère jamais la particule.

Page 26: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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 Carlosupplé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.

Page 27: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Examples

Distributions

Distributions d’énergie et d’états

Page 28: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Examples

Cv

Capacité calorifique

Page 29: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Examples

g(r)

Fonction de distribution radiale

Page 30: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

Monte Carlo

Examples

Isotherme d’adsorption

Ensemble grand-canonique

Page 31: La simulation Monte Carlo - Freepfleurat.free.fr/RFCT/monte_carlo_PB.pdf · I Simulation pour les développements dans le domaine de la fusion nucléaire (militaire puis civile);

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éaliserdes simulations de dynamique moléculaire.