Monte Carlo实验报告一、项目名称:Ising 模型二、项目内容概要1、编译和运行进入实验的文件夹:cd□~/sourcecode/2D_Ising文件夹里有源代码mc2d.f和输入文件in.2d阅读理解并编辑输入文件:gedit□in.2d之后编译mc2d.ff95 mc2d.f -o mc2d.exe运行可执行文件./mc2d.exe查看刚刚生成的四个输出文件,四个文件的内容如下:file1.out:温度;时间;单位原子能量;单位原子磁化强度file2.out:温度;单位原子能量;能量变化;单位原子磁化强度;磁化强度变化;单位原子热容file3.out:温度;自旋构型file4.out:温度;能量升高而被接受的数目;能量下降而被接受的数目;被拒绝的数目2、gnuplot 作图作温度与能量图:p “file2.out” u 1:2 w p ps 3 pt 5 作出file2.out 中第1 列与第2 列数据;作温度与磁化强度图:p “file2.out” u 1:4 w p ps 3 pt 5 作出file2.out 中第1 列与第4 列数据作温度与热容图:p “file2.out” u 1:6 w p ps 3 pt 5 作出file2.out 中第1 列与第6 列数据三、项目实施方法/原理1925 年,伊辛提出描写铁磁体的简化模型:设有N 个自旋组成的d 维晶格(d=1,2,3),第i 格点自旋为Si=±1(i=1,2,…N; ±代表上下)。
只考虑最近邻作用,相互作用能为±J(J>0 为铁磁性, J<0 为反铁磁性),平行为-J,反平行为J。
伊辛模型的蒙特卡洛模拟基本步骤如下:四、项目实施结果:1.各种情况下能量温度曲线2468-2.0-1.5-1.0-0.50.0能量温度/K能量02468-3-2-1能量温度/K能量铁磁正方形点阵温度和能量曲线 铁磁三角形点阵能量与温度曲线02468-2.0-1.5-1.0-0.50.0能量温度/K能量02468-2.0-1.5-1.0-0.50.0能量温度/K能量-温度反铁磁性正方形点阵能量温度曲线 反铁磁性正方形点阵外场为1时能量温度曲线2468-2.0-1.5-1.0-0.50.0能量能量/K能量-温度02468-3-2-1势能温度/K能量-温度反铁磁性正方形点阵外场为0.5时能量温度曲线2.各种情况下磁化强度和温度的关系曲线02468-1.0-0.50.0磁化强度温度/K磁化强度-温度024680.00.51.0磁化强度温度/K磁化强度-温度铁磁正方形点阵磁化强度能量曲线 铁磁三角形点阵磁化强度温度曲线2468-0.002-0.0010.0000.001磁化强度温度/K磁化强度温度02468-0.10-0.050.00磁化强度温度/K磁化强度-温度反铁磁性正方形点阵磁化强度温度曲线 反铁磁性正方形点阵磁化强度温度曲线(外场为0.5)2468-0.06-0.04-0.020.00磁化强度温度/K磁化强度-温度02468-1.0-0.8-0.6-0.4-0.20.0磁化强度温度/K磁化强度-温度反铁磁性正方形点阵磁化强度温度曲线(外场为1) 铁磁性正方形点阵磁化强度温度曲线(外场为0.5)02468-1.0-0.8-0.6-0.4-0.2磁化强度温度/K磁化强度-温度铁磁性正方形点阵磁化强度温度曲线(外场为0.5)4.各种情况下热容和温度的关系图024680.00000.00020.00040.00060.0008热容温度/K热容-温度024680.00000.00050.0010热容温度/K热容-温度铁磁正方形点阵热容能量曲线铁磁三角形点阵热容能量曲线24680.00000.00020.00040.00060.0008能量温度/K热容-温度024680.00000.00020.00040.00060.0008热容温度/K热容-温度反铁磁正方形点阵热容能量曲线反铁磁正方形点阵热容能量曲线(外场为1)24680.00000.00020.00040.00060.0008热容温度/K热容024680.00000.00020.00040.0006热容温度/K热容-温度反铁磁正方形点阵热容能量曲线(外场为0.5) 铁磁正方形点阵热容能量曲线(外场为0.5)024680.00000.00020.00040.0006热容温度/K热容-温度铁磁正方形点阵热容能量曲线(外场为1)五、项目小结:1.在保持原参数不变的情况下,可以得出,温度越高,原子热运动越剧烈,因此单个原子的能量也就越高。
且在3K 左右的温度范围变化率为最大。
通过比较可以发现,在没有加入磁场的情况下,能量随着温度的改变发生的变化与材料是否是铁磁性或反铁磁的没有太大的关系。
但是和温度是有很大的关系的。
因为反铁磁材料的磁矩为0,不会和外加磁场相互作用,故其几乎没有变化。
当材料为三角形点阵的时候其能量的上升要比正方形点整的要缓慢一些,但是变化规律类似,都会有先缓慢上升在快速上升最后又变为缓慢上升的过程。
猜想是因为三角形结构的晶体最近邻有六个原子与中心原子相互作用,而正方形结构只有四个,相互作用力增大因此升温对其影响相对较小。
加入磁场以后,通过对比可以发现铁磁性材料中,加入磁场之后能量的变化与不加磁场的变化不同,这是因为铁磁性材料原子温度升高热震动加剧,但是由于有磁矩,外加磁场会和其相互作用,减弱了加热使震动加剧的效果。
故其上升的速度相对没有外加磁场要慢。
2.对于铁磁性材料来说,不同点阵结构会使得材料的磁化性能不同,三角形点阵结构磁化强度为零的温度要比正方形结构的要高。
但由于这二者都是铁磁性材料,所以当温度升高时磁化强度都会减弱为零。
且二者在低温时的磁化方向也不一致,这也是由于点阵结构的不同造成的。
而对于反铁磁性材料来说,温度的升高对其磁化强度几乎没有任何影响。
这是因为反铁磁性材料内部的磁矩为零,不会自发的产生强化。
加入外磁场后,反铁磁性的材料被磁化的强度很弱,因为反铁磁性的材料不会被外加磁场磁化。
内部的磁场无法产生一致的方向。
但是有外加磁场的影响也会有小小的部分被磁化。
也有外加磁场对磁化的贡献。
此时的温度叫做奈尔温度。
而铁磁性材料在加入外加磁场以后,消磁温度明显的上升。
这是因为磁场和铁磁性材料中的原子会有相互作用,故只有温度相对较高时才能使得熵变占据上风,转变为无磁的材料。
3.对于热容的变化,可以看到在每一个相变的过程都会有一个峰值。
这是因为对于铁磁性材料来说,会有一个铁磁性转变,这是一个二级相变,故在这个二级相变的过程中会有一个热容的突变。
在反铁磁性材料中,升温的过程中会有一个由反铁磁形物质转变为顺磁性物质的过程。
故也会有一个热容的突变。
自己根据一新模型算法用MATLAB写的小程序,只能算能量和磁化强度m=20;//定义晶格的长度n=m+2;//计算所用的矩阵的长度step=60000;//每一步模拟所走的步数j=-1;//表明物体时反铁磁T_min=2; //模拟的最低温度T_max=8; //模拟的最高温度s1=randint(n,n); //生成一个n*n的随机矩阵,其中的数为0或1s2=2*s1-ones(n,n); //将随机矩阵转化为只有-1和1的矩阵s=bou(s2); //调用边界条件函数w=T_max-T_min; //计算温度长度EE=zeros(1,w); //生成一个1行w列的矩阵,用以记录每个温度下的能量mag=zeros(1,w); //生成一个1行w列的矩阵,用以记录磁化强度for q=T_min:T_max //在这个温度内循环T=q;for i=1:stepE=compute(s,j); //调用计算能量函数计算能量 a=randint(1,1,[2,n-1]); //随机生成一个数b=randint(1,1,[2,n-1]); //随机生成一个数s(a,b)=-s(a,b); //进行翻转E1=compute(s,j); //计算翻转后的能量dE=E1-E; //计算能量差值r=rand; //随机生成0到1的数if (r>exp(-dE/T)) //判断是否接受翻转s(a,b)=-s(a,b);endendEE(1,q)=compute(s,j)/((n-2)*(n-2)); //记录能量mag(1,q)=sum(sum(s)2)/((n-2)*(n-2)); //记录磁化强度endmagEEfunction y=bou(s1)//设定边界的条件函数n=length(s1);s2=s1;for i=1:ns2(1,i)=s2(n-1,i);endfor m=1:ns2(i,1)=s2(i,n-1);endy=s2;function y=compute(s,J) //计算能量的函数n=length(s);E=0;for i=2:n-1for j=2:n-1E=E+J*(s(i,j)*(s(i+1,j)+s(i,j+1)+s(i-1,j)+s(i,j-1)));endendy=E;六、参考书目张帆,周伟敏.材料性能学[M].上海交通大学出版社张祥,陈东保,陈武鸣.二维伊辛模型蒙特卡罗模拟[J].南京大学学报1997,33(1)。