Simulation du modèle d'Ising

Auteurs: Dounia Saez, Clément Perrot, Léo Vandamme
Date de création : 3 octobre 2012

Date de mise à jour : 13 décembre 2012

Table des matières


Liste des paramètres d'entrée de l'applet

Liste des paramètres de sortie de l'applet

Champ

Modélisation du modèle d'Ising à 2 dimensions

Introduction

Dans ce projet, nous allons étudier le modèle d'Ising à deux dimensions, particulièrement la transition de phase. Le modèle d'Ising permet l'étude du comportement de N particules ponctuelles à un degré de liberté qui intéragissent localement. Nous supposerons ici que ces particules sont des spins pouvant être dans l'état + ou -, et qu'elles intéragissent seulement avec leurs premiers voisins, dont le nombre est déterminé par le type de grille 2D.
Nous traiterons donc le problème comme un problème de physique statistique dans un cadre canonique, où notre système baigne dans un champ magnétique constant, et où les spins sont discernables.

Objectifs

Cette applet va permettre de déterminer la température de la transition de phase selon 2 paramètres:

Explications

Instruction des différents ensembles pour l'utilisation de l'Applet

Visuel : grille carrée avant Tc
A lancer en mode visuel, avec ou sans champ magnétique extérieur. Utilise une grille carrée de 100 par 100, à température fixée avant la température critique.
Visuel : grille carrée à Tc
A lancer en mode visuel, avec ou sans champ magnétique extérieur. Utilise une grille carrée de 100 par 100, à température fixée à la température critique.
Visuel : grille carrée après Tc
A lancer en mode visuel, avec ou sans champ magnétique extérieur. Utilise une grille carrée de 100 par 100, à température fixée après la température critique.
Visuel : grille hexa avant Tc
A lancer en mode visuel, avec ou sans champ magnétique extérieur. Utilise une grille hexagonale de 100 par 100, à température fixée avant la température critique.
Visuel : grille hexa à Tc
A lancer en mode visuel, avec ou sans champ magnétique extérieur. Utilise une grille hexagonale de 100 par 100, à température fixée à la température critique.
Visuel : grille hexa après Tc
A lancer en mode visuel, avec ou sans champ magnétique extérieur. Utilise une grille hexagonale de 100 par 100, à température fixée après la température critique.
Calcul lourd : grille carrée
A lancer en mode calcul, avec ou sans champ magnétique extérieur. Utilise une grille carrée de 100 par 100, à température variable, partant de 0.5 et augmentant de 0.005. Le nombre d'itération pour chaque température est de 5 000 000 effectuées 50 fois. Attention, l'évolution est très lente !
Calcul leger : grille carrée
A lancer en mode calcul, avec ou sans champ magnétique extérieur. Utilise une grille carrée de 100 par 100, à température variable, partant de 0.5 et augmentant de 0.01. Le nombre d'itération pour chaque température est de 20 000 effectuées 40 fois. L'évolution est rapide et permet d'obtenir des courbes d'énergie et d'aimantation en fonction de la température assez rapidement. (contrairement au mode "lourd")
Calcul lourd : grille hexa
A lancer en mode calcul, avec ou sans champ magnétique extérieur. Utilise une grille hexagonale de 100 par 100, à température variable, partant de 1.5 et augmentant de 0.005. Le nombre d'itération pour chaque température est de 5 000 000 effectuées 50 fois. Attention, l'évolution est très lente !
Calcul leger : grille carrée
A lancer en mode calcul, avec ou sans champ magnétique extérieur. Utilise une grille hexagonale de 100 par 100, à température variable, partant de 1.5 et augmentant de 0.01. Le nombre d'itération pour chaque température est de 20 000 effectuées 40 fois. L'évolution est rapide et permet d'obtenir des courbes d'énergie et d'aimantation en fonction de la température assez rapidement. (contrairement au mode "lourd")

Explications

Généralités sur le modèle d'Ising

Le modèle d'Ising consiste à mettre sur un réseau le moment magnétique de N particules, tous alignés sur le même axe. Chaque moment magnétique peut donc prendre deux directions, que l'on note + et -. Ces spins intéragissent avec leurs voisins, et souvent, on considère qu'ils intéragissent seulement avec les voisins les plus proches. Dans le cas du modèle d'Ising à deux dimensions, il à été montré par Rudolf Peierls qu'il existe une transition entre une phase ordonnée: le champ magnétique total du réseau est différent de 0, ce qui signifie que les + et - ont tendances à se regrouper, et une phase désordonnée où l'aimentation est nulle.

Énergie du réseau

On écrit, pour une configuration quelconque des spin, i.e d'un état l, l'énergie totale du réseau dans le cas général:
H_l=-somme(J_ij*(sigma_i)*(sigma_j);(<ij>)=1;N)-(h*somme(sigma_i;i=1;N))
que l'on simplifiera
H_l=-J*somme((sigma_i)*(sigma_j);(<ij>)=1;N)-(h*somme(sigma_i;i=1;N))
sigma_i prend la valeur +1 ou -1 (orientation du spin), J désigne l'énergie d'intéraction entre 2 spins premiers voisins, h l'énergie du champ magnétique externe et <ij> signifie que l'on prend la somme sur les premiers voisins. On s'intéressera dans toute la suite au cas où J>0; c'est à dire où les intéractions entre spins sont ferromagnétiques. (somme(sigma_i;i=1;N))/S désigne l'aimantation moyenne par spin du système (S = surface du réseau).
Dans le modèle d'Ising 2D, il existe une transition de phase du second ordre à la température critique (ou température de Curie) notée T_c. Celle-ci est définie comme étant la température au voisinage de laquelle le système le système n'est ni ordonné, ni désordonné. La solution exacte d'Onsager donne, pour la température critique la valeur théorique k_b timesT_c =  (2timesJ )/ln(1+sqrt(2)) soit T_c=2.269timesJ.
Les différentes constantes physiques que l'on peut calculer se comportent différemment au voisinage T_c.
Les exposants critiques caractérisent les comportements universels des lois physiques dans le cas de systèmes possédant une transition de phase du second ordre.

Algorithme de Métropolis

A température fixée, le système doit à priori converger vers un état d'équilibre. Il faut donc un algorithme permettant de modéliser convenablement l'évolution du système.
Rappelons que la probabilité que le système soit, à l'équilibre, dans un état l à température fixée est donnée par
p(l)=(exp(-beta*H_l))/Z , où Z est la fonction de partion du système à T et beta=1/(kT)
Le principe ergodique stipule que sur un temps d'évolution suffisament long, le système doit converger vers son état d'équilibre le plus probable. Le but est donc de faire en sorte que le système tende vers cet état.
L'algorithme consiste à retourner un spin s au hasard dans le réseau, et de donner un critère d'acceptation du nouvel état m. Le critère est le suivant:
On pose (p(m)/p(l))=exp(-beta(H_m-H_l))=exp(-beta*Delta*H)
1er cas: Si p(m)>=p(l) , soit Delta*H<=0 alors le nouvel état est accepté, le s reste dans son nouvel état.
2ème cas: Si p(m)<p(l), soit Delta*H>0 la probabilité que le nouvel état soit accepté est p(m)/p(l)=exp(-beta*Delta*H)
On recomence l'expérience autant de fois que necessaire pour atteindre l'état d'équilibre, et ceci nous donne un bon modèle de l'évolution de notre système.
Cette méthode est très commode car le calcul de Delta*H ne nécessite pas de calculer E_m et E_l , on peut calculer juste la variation d'énergie du sous système {s + premiers voisins}, ce qui allège considérablement le temps de calcul.

Remarque : L'algorithme nous donne déjà une bonne idée sur l'évolution du système en fonction de la température. En effet, à haute température, beta tend vers 0, donc p(m)/p(l) tend vers 1, les états d'équilibre tendent à être équiprobable. Le système est en phase désordonnée.
En revanche à température faible, si p(m)<p(l), la probabilité que le nouvel état soit accepté est très faible, le système converge donc vite vers l'équilibre.
On peut sentir que, au voisinage d'une certaine température, le système cherche à converger à cause du 1er cas, mais que la probabilité d'acceptation 2ème cas n'est pas suffisament faible pour le permettre.

Évolution du du modèle d'Ising en fonction de la température

Dans ce modèle, pour étudier l'évolution d'une quantité physique f(T) en fonction de la température , il faudrait dans l'idéal que pour chaque T le système soit à l'équilibre.
Mais on peut prévoir que s'il existe une température Tc à laquelle le système n'arrive jamais à l'équilibre, le temps de relaxation au voisinage de cette température diverge.
L'inconvénient majeur des simulations est que si on veut des résultats convenables, pour toutes les valeurs de température que l'on considère il faut faire évoluer le système sur un temps très long, ce qui revient à itérer sur beaucoup de boucles l'algorithme de Métropolis.

Mode d'emploi de l'applet

Description des paramètres

Taille de la grille
Le choix de la taille de la grille (npoints, nlignes, ncolonnes) permet à l'utilisateur de choisir entre un réseau contenant beaucoup de spins mais qui mettera plus de temps à converger vers l'état d'équilibre, ou un petit réseau moins réaliste mais plus commode à étudier.
Grossissement
Permet d'agrandir visuellement le réseau de spins.
Mode calcul ou mode visuel
Le mode visuel permet d'observer l'évolution du système à une température fixée.
Le mode calcul donne l'énergie totale, l' aimantatation et la fonction de correlation en fonction de la température.
nboucles
N'intervient que dans le mode "calcul". Nboucle correspond à la durée dont on souhaite faire évoluer le système avant de l'évaluer. Il exprime en réalité le nombre tests effectués sur le réseau avant de calculer les énergies. En mode "visuel", ce nombre est fixé à nlignes*ncolonnes.
nsousboucle
N'intervient aussi que dans le mode "calcul". Pour que nos résultats soient plus fiables, on calcule plusieur fois l'énergie et l'aimantation, pour ne garder que la moyenne. Ce paramètre permet de definir sur combien de mesures on souhaite faire la moyenne.

Remarque : En mode "Calcul", le nombre de tests effectués sur le réseau entre deux affichages est donc de nboucles * nsousboucles.

hext
Intensité et sens (selon le signe) du champ magnétique dans lequel baigne le réseau.
Choix des unités
Les trois seules quantités physiques qui vont apparaîtres dans notre problème sont l'énergie, la température et la constante de Boltzmann k_B, qui s'exprime en Joule/Kelvin. On peut toujours redéfinir le joule ou le kelvin (ou les 2) de manière à ce que k_B=1.
On fixe, dans toutes les simulations, l'énergie de liaison à J=1. Les paramètres J , hext (h) et k_B*T (T) sont considérés dédimensionnés, car on ne s'intéresse qu'a leur valeur relative.

Les valeurs affichées sont des valeurs moyenne par spin. L'énergie totale et l'aimantation sont normalisées à 1.

Exemple

Évolution temporelle du système pour une grille carrée à 4 températures différentes et h=0.


Courbe représentant l'évolution temporelle de l'énergie totale et de l'aimantation du réseau du système à T=0, T=0.9, T=3.0, T=10.0
Le temps d'observations correspond au nombre de tests effectués sur le réseau.


Remarque : On remarque que pour des températures très faibles, le système converge complètement vers un des 2 états d'énergie minimum (que des + ou que des -), ce qui explique pourquoi l'aimantation converge soit vers +1 soit vers -1. On voit que dans cette phase, le temps de relaxation croît avec la température. Dans cette phase, p(l) est donc maximum seulement pour ces 2 états.
En revanche, à température suffisament élevée, l'énergie fluctue autour d'une valeur moyenne. Il existe apparament plusieurs états l pour lesquels p(l) est maximum. Cette valeur moyenne semble s'approcher de 0 quand la température augmente (état équiprobables ⇒ énergie moyenne nulle).

Exemple

Évolution temporelle du champ magnétique du réseau à température faible (T=0.2) avec trois valeurs du champ externe pour la grille carrée.

Comportement de l'énergie totale et de l'aimantation à T=0 pour différentes valeurs du champs magnétiques externe h.


Remarque : On voit que l'intensité du champ à tendance à diminuer le temps de relaxation, et que le sens du champ favorise l'état {+} ou {-} (h<0 favorise l'état {+} et h>0 favorise l'état {-}) .

Exemple

Évolution temporelle de l'énergie totale du réseau à haute température (T=5.0 et T=10.0) avec trois valeurs du champ externe pour la grille carrée.


Remarque : On voit qu'à haute température, le champ magnétique à tendance à diminuer l'énergie moyenne du système. Mais cet effet est concurencé par la valeur de la température, puisqu'on voit que pour une même valeur de h, l'énergie moyenne du système se rapproche de zéro quand la température augmente.
L'évolution temporelle du réseau nous donne déjà une bonne idée du comportement du système selon la phase dans laquelle il se trouve. Mais pour déterminer précisément la transition de phase, il faut observer l'évolution en température du système.
Dans les résultats qui suivent, nous initialisons le réseau dans l'état {+} pour la température de départ. Cela nous permet d'éviter les problèmes liés à la périodicité. A température T+Delta*T, l'état initial du réseau est l'état final du réseau à la température T. Pour chaque point, le système à évolué de 10000 tests et les valeurs sont moyennées sur 50 mesures. Rappelon l'état {+} est l'état vers lequel converge le système quand h>0 à faible température.

Exemple

Évolution de l'énergie totale et de l'aimantation en fonction de la température. La grille est carrée et il n'y a pas de champ externe.


Remarque : La courbe d'aimantation montre bien la transition de phase. On estime la température critique aux alentours de 2.45 dans ce cas. La solution analytique de Onsager donne une température de 2.27.

Exemple

Même conditions que précédemment mais avec un champ externe non nul.


Remarque : On voit que pour h<0, la transition de phase est beaucoup plus amortie que sans champ externe. Cet effet est croissant avec l'intensité de h.
Pour h>0, le système passe soudainement de l'état {+} à l'état {-} autour d'une température d'environ 2.0. Ceci est dû au fait que nous avons initialisé la grille dans l'état {+}. En effet, à trop basse température, le champ magnétique n'est pas assez fort pour faire basculer le système, mais dès que la température est suffisante, le champ externe pousse très violement le système dans l'état où il devrait être si l'initialisation était aléatoire.
Une fois connue la température de la transition de phase, il est intéressant d'observer l'évolution temporelle du système à cette température.

Exemple

Aimantation en fonction du temps d'observation à Tc=2.45. Le champ externe est nul.



Remarque : On constate qu'à cette température, le comportement de l'aimantation est très aléatoire. Il ne converge pas vers un des états {+} ou {-}, et n'oscille vers aucune valeur particulière.
Taille caractéristique du système
La taille caractérisique du système correspond à la taille typique d'un groupe de cellules de même spin. Afin de déterminer cette taille on calcule les coefficients de corrélation du système.
Pour cela on va définir des boites carrées dont la taille varie de trois cellules de côté à toute la taille de la grille. Le but est de faire défiler ces boites sur toute la grille sans qu'il y ait de recouvrement. A l'intérieur de chaque boite on compare l'état des spins avec l'état du spin central test. Si tous les spins sont dans le même état, le coefficient de correlation vaut 1, si il y a autant de spins +1 que -1 alors le coefficient vaut 0 (il n'y a pas de correlation entre les spins). Faire défiler la boite le long de la grille nous permet d'avoir un coefficient de corrélation moyenné. Plus la taille du motif sera grande et plus on détectera des groupes de spin important.
Le coefficient de corrélation en fonction de la taille des motifs est donné par : C(r) = C_0 + ( 1 - C_0 ) e^{-r/r_0} où r est la taille du motif, C(r) est la fonction de corrélation, C_0 est la valeur asymptotique de la fonction de corrélation quand r augmente et r_0 est la taille caratéristique.

Exemple


Correlation a T = 2,29
correlation T=2.29

Ci-dessus la fonction de correlation pour T = 2.29 d'une grille carrée 100x100 sans champ magnétique extérieur. On trouve C_0 = 0.58 et r_0 = 6.51
Correlation a T = 2,49
correlation T=2.49

Ci-dessus la fonction de correlation pour T = 2.49 d'une grille carrée 100x100 sans champ magnétique extérieur. On trouve C_0 = 0.096 et r_0 = 11.38
Correlation a T = 3,49
correlation T=3.49

Ci-dessus la fonction de correlation pour T = 3.49 d'une grille carrée 100x100 sans champ magnétique extérieur. On trouve C_0 = 0.47 et r_0 = 5.53
Correlation a T = 5.48
correlation T=5.48

Ci-dessus la fonction de correlation pour T = 5.48 d'une grille carrée 100x100 sans champ magnétique extérieur. On trouve C_0 = 0.034 et r_0 = 3.99 Les tailles caratéristiques donnent une indication de l'état du système dans le diagramme de phase, en effet à la température de Curie la taille caratéristique diverge, puis elle diminue lorsque la température augmente, c'est donc un moyen pour déterminer la température de Curie.