Skip to content

一个用于模拟正则系综下二维伊辛模型的蒙特卡洛方法的Python程序

Notifications You must be signed in to change notification settings

NOIPJohnny/MC_Ising

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MC_Ising

这是一个用于模拟正则系综下二维伊辛模型的蒙特卡洛方法的Python程序。 考虑一个100*100的二维方格点,体系具有周期性边界条件,每个格点i上有一个小磁矩 $S_i$ ,体系的能量表示为 $E=-J\sum_{&lt;i,j&gt;}S_iS_j$,这里 $J&gt;0$$&lt;i,j&gt;$ 表示只有近邻格点的磁矩之间才有相互作用。假设我们在正则系综条件下研究此模型体系,即体系的微观状态的分布满足正则分布,温度 $T$可采用无量纲化的约化温度来表示,即 $\frac{k_BT}{J}$。请实现MC算法来模拟体系在不同温度下的平均磁矩<S>(T),平均能量<E>(T),热容 $C_v(T)$。温度范围可取为 $[0.2/{k_B}, 6.0/{k_B}]$,温度间隔可取为 $0.2/{k_B}$。每一次MC模拟的总步数可根据统计物理量的收敛情况自行决定,这里步数为 $10^7$ MC步。

得到的结果如下:

三张图片都可以看到一个清晰的相变温度点:约化温度 $k_BT/J\approx 2.3$ ,在三张图中,约化温度在2.2-2.4之间的时候都呈现出了巨大的变化:

  • 热容在2.0-2.6之间出现了一个巨大的峰
  • 平均磁矩一开始趋于1,有序排列,在2.2-2.4出现了巨大的下跌,之后磁矩趋于零,变为无序排列
  • 平均能量在2.2-2.4之间的上升速度最快

因此,可以看到相变的约化温度约为2.3。

About

一个用于模拟正则系综下二维伊辛模型的蒙特卡洛方法的Python程序

Resources

Stars

Watchers

Forks

Languages