『学习笔记』MS_castep
(2013-01-31 17:57:53)
标签:
混沌之君mscastep |
分类: _case:学习笔记 |
A 模型建立部分
问:1 这个收敛性怎么测试呀?主要比较哪些值?
2 偶极子修正是什么?什么时候要考虑?如何分析
Q1
论文中计算模型参数选取问题:
对于(2x2)大小的表面,布里渊区积分中的K点(3x3x1)选取过小,真空层厚度(10A)是否足够?计算结果收敛性是否经过测试?请在文章中明确说明所选模型参数对计算结果影响的测试情况。
Q2
表面弛豫对计算结果影响很大,请在文章中指明表面弛豫原子层数。对于文章中采用的上下表面不对称(只单面替代原子)的表面模型,计算过程中是否考虑了偶极子修正等因素的影响?
问:1 这个收敛性怎么测试呀?主要比较哪些值?
Notes:
1
选择多个energy cutoff比较dEtot/dlog(Ecut)
2 上下表面是对称分布的就不用考虑偶极矩问题 dipole 偶极子
ps:paper Dipole
correction for surface supercell calculations (Phys. Rev. B 59,
12301–12304 (1999))
3 为什么要加入vaccum slab?
在ms中具有周期性,所以我们才加入真空,消除近距离原子对其表面的影响,是一种类似真实的表面结构。异质结界面态可不考虑其高度。
Q3 关于针对CASTEP收敛问题的参数调试总结:
如果计算在Max.
cycle全部用完之后仍然不能收敛,要先查看一下<seed>.castep文件,如果能量比刚开始计算时有明显下降,而且震动幅度也明显减小,只是还没有降到收敛标准以下,那说明Max.
cycle还不够,要增加这个数值。
但多数情况下,我们会发现,能量并没有比刚开始计算时的能量有明显下降,而是围绕着某个平均值在反复地震荡,而且震动幅度也没有减小。那说明是参数设定的问题,此时就算再怎么增加Max.
cycle的数值,计算最终还是不会收敛的。
这个时候,最好是增加energy cutoff的数值,降低K point set的数值,增加smearing
width数值(当然,如果通过调试前两个数值就可以使计算收敛的话,就最好不要动这个数值)。
再有,如果计算是使用的density
mixing的话,那要将mix_charge_amp,mix_spin_amp的数值降低,将mix_energy_cutoff的数值增加到energy
cutoff数值的3到4倍,增加mix_history_length的数值。
当然,如果调试上面的参数仍然发现收敛很辛苦的话,就将mixing scheme转成All
Band/EDFT,这会解决收敛问题,但是计算时间将会是使用density mixing计算所用时间的3倍以上。
Notes:
1 smering是什么意思:由于金属的能带有可能穿越fermi能级,从而引起总能计算时的不连续变化。为了避免这种情况,需要引入分数的占据态。在castep中0k下的计算,是将单电子能级采用Gaussian函数展宽,展开宽度就是smearing
width。然而,由于展宽了单电子能级相当于增加了有限的温度,所以必须修正以得到0k下的结果。另外,smearing的另一个作用是可以增加总能计算的收敛性。所以对于非金属可不考虑。
2. 在进行平面波DFT优化之前,通过其他的办法, 比如经典力学优化以及DMol中局域波函数进行优化,
这样的话,可以帮助CASTEP在最短的时间内找到合适的最小值, 也就是通常意义上说的加快收敛。
其实在做收敛速度无非是两个目的:1 计算精度要高 2 计算速度要快
一般平面波程序,在计算精度上,主要需要测试energy
cutoff(倒空间的最大平面波截断,理论上要求无穷大,因为那样基矢才是完备的,但实际上不需要,也做不到)还有就是K点取样,理论上要计算无穷个k点,但实际也不可能。所以有时候震荡的情况,这主要还是由于energy
cutoff太小,或者是有的K点根本就难以算准,这个时候,如无特殊需要,基本就认为它收敛了。
二就是计算速度,因为目前DFT主要还是用自洽的方法,在理论上应该是用新的电荷密度等于旧的电荷密度,但实际上如果这样做,一是收敛很慢,二是容易形成震荡情形。一般的做法是rho_in=mix*rho_old+(1-mix)*rho_old(具体到每个程序,肯定是做法不同了)一般认为mix=0.3比较合理,这样收敛的非常快。所以很多程序在测试各种mix的时候,就是在测试这个。
最后,选择合适的参数。在你所需要的精度范围内,最快的计算。我们的目的是要解决问题,有时候不需要那么精确。
Q4 采用几何优化——勾选了more中的优化晶胞,结果能量曲线上升,但是收敛,这种计算结果可靠吗?很怀疑!除了改变ECUT、K点,还有办法吗?这能否说明我建的晶胞就是比较稳定的,无需优化呢?
如果能用的话,我该怎么确定优化之后最终的(稳定)晶胞的能量以及晶胞参数,找最低的那个能量吗?
Notes:
应该是初始输入的晶格常数过小造成的,这是内聚能偏低。晶格参数当然也可以使用软件自带的优化cell的功能。但如果认真做了收敛测试,会发现在收敛性上,能量最易收敛,其次是力,应力最难,也是默认的。所以如果以应力作为判据(自动优化晶格就是如此),则需要很高的Ecut和K点数目才能收敛于正确值。而使用E-V拟合晶体状态方程,则使用较低的参数就可以得到正确的晶格常数。
Q5 在MS
castep中在进行计算之前需进行收敛性测试,我只大概知道步骤是先进行截断能的测试,在得到收敛后,再进行k点取值设置,但是我不太明白,这个收敛的具体含义是什么,是从什么地方的什么值看出其收敛的呢?
Notes:
具体参照Q3,这个要看能量图是不是一条直线,二要看收敛图,每条实线要在各自对应虚线的下方就表明收敛了,不收敛可能由于步数太小。
Q6 final
energy、Final free energy (E-TS)、NB est. 0K energy (E-0.5TS)和Total
energy 有什么差别呢?
希望那位大侠能够讲解一下,非常感谢。
Notes:
final free energy (E-TS)
S应该是熵,T是温度, NB est. 0K energy
(E-0.5TS) 是前两值得平均值。
Q7 number
of steps for each
strain 一般应设置多少,默认4,我一般调成6了,不知道这一项的意思?
Notes:
这个step应该是每个应变分量向上计算的应变点的数目,之后拟合这些点的应力应变曲线得到弹性系数。点多一些应该会提高精度,但个人认为影响结果精度更主要原因还是每个step自身的精度,也就是DFT的计算精度。
Q8 用CASTEP模块计算材料的弹性常数时,必须对模型进行“impose
symmetry”吗?如果没有施加对称性,对结果会有影响吗?我自己对比了一下两种操作的结果,大致差不多,只是有一点差别,但是“impose
symmetry”后速度快很多,理论上,每个体系对应有自己的晶系和空间群,如果是自己手动建的模应该要施加对称性,计算结果才能体现体系的性质吧?欢迎大家讨论
施加对称性之后,计算的时候因为某些对称性的结构的某些方向上Cij是相同的,或者可以由其他方向的Cij计算出,即不是独立的Cij,所以在计算的时候,会不去计算这一部分,所以计算的速度快了很多。即使不施加对称性,但是这个结构的这种对称性还是存在的,所以算出来的结果差不多,某些方向的Cij应该是0值的,不施加对称性的话,会近似是0,可以不予考虑。