|
1、(1)当a=b=c的时候,能量E=E(a,x)只和晶格常数a以及分数坐标x有关,每一个a=a[i]都做isif=2保证了(∂E/∂x)|(a=a[i])=0,在扫描a的极小点有(∂E/∂x)|(a=amin)=0且(∂E/∂a)|(x=xmin)=0这样做当然没问题。
(2)当a=b≠c,要保证同时保证(∂E/∂x)|(a=amin,c=min)=0,(∂E/∂a)|(x=xmin,c=cmin)=0,(∂E/∂c)|(x=xmin,a=amin)=0三个条件才行。
a、扫描晶格常数。
第一个条件由isif=2的优化来保障,但后两个条件要同时满足的话通过扫描很难完成,原因是(∂E/∂a)|(x=xmin)同时是a、c的函数。这样就得同时扫描a和c,假设a方向要扫描M个点,c要扫描N个点,总共就得计算MN个点才能保障后两个条件,这种方法显然就比较笨拙。稍微合理一点的话可以少取些点拟合抛物面慢慢收窄步长来搜索极小点,这样速度要快得多。计算过程实际上需要能量,以及分数坐标优化需要能量和力。
b、扫描晶格体积
把后面两个条件换成1个对体积的条件,即(∂E/∂x)|(Ω=Ωmin)=0,(∂E/∂Ω)|(x=xmin)=0,这样只需要固定体积同时优化形状和分数坐标(isif=4)。计算过程实际上需要能量,以及分数坐标优化需要能量和力,优化体积需要stress tensor。
c、直接优化晶格
最简单的其实还是直接用isif=3,当然,自由度复杂以后就很看算法本身了。计算过程实际上需要能量,以及分数坐标优化需要能量和力,优化体积和形状需要stress tensor。
上面三种比起来显然b和c比较容易,因为这些过程其实尽可能利用了各种各样的导数(比如force和stress tensor)来做极小化。
2、根据上面给出的条件,自然不用多说,你自己也就能分析你考虑的方案到底什么条件能满足什么条件无法满足。 |
评分 Rate
-
查看全部评分 View all ratings
|