基于蒙特卡洛模拟的mcsolver计算居里温度的参数设置个人总结

图 mcsolver的可视化界面

mcsolver可以用于居里温度的模拟计算,这是mcsolver程序的可视化界面,其中给出了XY模型的一个例子。

在学习的过程中,我发现参数设置非常重要,也比较难,但网上并没有给出一个详细的教程说明,结合网上已有说明和朋友讨论,以下给出我的一点见解,希望大家相互讨论学习,有错误欢迎批评指正。

1.lattice晶格常数

关于晶格常数的设置,这步比较简单。

晶格常数需要采用归一化后的晶格常数,a1、a2、a3分别归一化,例如a1=(3,4,0)归一化后就是(0.6,0.8,0)。

sc(supercell)表示使用的超胞规模,一般情况下尽可能的大,例如16*16*1或32*32*1(在二维情况下)。

2.Orbital list

这一步是对原胞中不等价磁性原子的设置。

ID是对设置的原子的编号,在可视化界面中,这一项不用手动设置,程序会自动根据我们的设置进行从0开始的编号。

type表示原胞中磁性原子的种类,根据具体情况进行设置,如果只有一种磁性原子,都设置成0就可以。

init spin表示自旋磁矩的设置,比如你用VASP计算出来得到的磁矩是3,那么这一项需要设置为1.5(需要除以一个2,换算成玻尔磁子)。

pos对磁性原子的位置坐标进行设置,这里最好是采用分数坐标(如果是笛卡尔坐标建议转换成分数坐标进行计算)。(更正:应该是相对于a1、a2、a3的分数坐标,也就是相对于斜的平行四边形的而言的,以其两条邻边为晶格矢量,例如CrI3是0.333   0.666667    0,如果是直角坐标系下的分数坐标的话第一个值应该是负的才对)

Ani表示单离子在xyz方向上的各向异性系数或单离子磁晶各向异性能(在Ising模型中是无用的,在XY模型中只使用前两个)。对自己的结构做一个易磁化轴位置的判断。一般为Z方向就在DZ处添加。同时,注意各向异性的单位是开尔文。 (1meV=11.604609K)

至此,我们已经完成了第二步Orbital list的设置。

3.Bond list

设置第二步里面的磁性原子之间的交换耦合系数,在你的计算中,一共考虑到了多少个相互作用就要添加多少个。比如,对于CrI3来说,考虑到了最近邻、次近邻和第三近邻相互作用,分别有3个、6个和3个,那么你一共就需要添加12条信息。

对于每一项来说,设置方法如下:

ID是相互作用的编号,如同第二步一样,系统会从0开始自动编号。

J是磁性原子之间的交换耦合系数,一个J有九个矩阵元素,分别包括Jxx、Jyy、Jzz、Jxy、Jxz、Jyz、Jyx、Jzx、Jzy。每个元素描述了自旋的两个分量之间的耦合。对于Ising模型,由于只考虑一维自选变数,即只存在自旋向上或自旋向下,因此只使用第一个元素Jxx。对于XY模型也一样,自旋的朝向由up和down解放到了XY平面的任意朝向,因此只使用Jxx、Jyy、Jxy、Jyz。而对于heisenberg模型来说,三个自旋方向都存在相互作用,因此Jxx、Jyy、Jzz、Jxy、Jxz、Jyz、Jyx、Jzx、Jzy九个矩阵元素都需要设置。(对于模型的设置在后面的Model处进行选择。)对于前Ising和XY模型来说,即便你设置了九个矩阵元素,有效输入的也只是对应的起作用的元素,因此选好模型很关键。

s,t和over lat.表示我们考虑哪两个磁性原子之间的相互作用,s和t要选择我们在第二步中设置的原胞中磁性原子的ID,over lat.的三个元素指代一个晶格矢量,这个晶格矢量表示:在晶格中,你考虑的原子(在该中心原胞平移该晶格矢量后的原胞的t原子),和中心s原子之间的相互作用。(这里比较难,为了便于理解,建议读者找个例子琢磨琢磨或者自己多动手尝试一下)

注意所有的能量单位都是开尔文(1meV=11.604609K)

至此,我们已经完成了第三步Bond list的设置。

现在,我们可以在Structure viewer里面看到超胞里磁性原子的分布和相互作用示意图。大家可以根据右上角的图查看自己添加的是否正确。一定要多加尝试。

4.Other settings其他设置

关于一些其他参数的设置。

T start&end表示起始和结束温度,也就是温度的取值范围,total points表示温度插值次数(用于温度扫描),也就是总取点数,一般来说点越多图形越精确。示例给出的0.9,1.2和8只是为了快速计算得到结果,真实输入的时候要视实际情况而定。

同理,H start&end表示外加磁场的取值范围,total points表示采样次数(用于磁场扫描)。

nthermal是使系统进入平衡状态的总步骤,nsweep是测量所涉及的总步骤,tau表示每一步的MC更新。

xAxis表示右边Result viewer的x轴上的物理量,可以是T(表示M-T曲线)或H(表示迟滞回线)。

Model可以选择Ising模型、XY模型或Heisenberg模型。

Algorithm选择相应的算法(支持Wolff,Metropolis,Swedsen-Wang)。

Measure corr. si&sj设置spin_i和spin_j以及它们之间的晶格矢量,用于相关拼接。(如果spin_i=spin_j并且overLat=0 0 0,那么你将得到spin_i的磁化率)。

nFrame是输出自旋构型的数目,用于说明在平衡或非平衡状态下的自旋构型。

core设置并行计算的核心资源。

至此,所有参数都设置完毕。

5.最后

save可以选择保存当前参数到文件,以便下一次找到。

单击StartMC启动计算。

等待右面板中的关系图更新。之后,你可以在mcsolver的根目录下找到一个result.txt文件,其中有许多有用的信息,包括平均自旋(在步骤5中定义的spin_i和j上),spin_i和j之间的相关性,内能,比热容量和Binder累积量U4等。如果你处理有多个核心的模拟,那么结果可能不会根据温度排序,但是,每一行的对应关系都是可以的。

以上是我的个人总结,希望对你有所帮助,欢迎交流讨论。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值