by fan_zhen from http://muchong.com/bbs/viewthread.php?tid=8575960&fpage=1&target=blank
四年之前曾经发帖求助Berry phase 如何计算铁电极化的问题,那个帖子之后有一些同行回帖或者短消息我, 抱歉我都没有回复, 主要是本人对小木虫使用很有限,而且功能不熟悉,每次登陆自己账户都是为了下载资源,之后匆匆下线。 今天为了回馈多年来小木虫上对自己的帮助,特此分享下自己在使用Berry phase方法上的一些经验。
中心对称相可能不绝缘,导致无法使用Berry phase, 这时会报错:Error in subroutine BERRY: did not find all determinants(可能不是这句话,记不清了)。有时+U可以让体系绝缘,但某些情况再怎么+U都不能绝缘,比如BiFeO3 四方中心对称相P4/mmm;
铁电相和中心对称相的离子项差异可能会非常大,导致二者差值也远超过正常的极化值。
首先我们需要构建一系列的中间过渡相。假设铁电相中各个原子,相对于中心对称相的对应原子,位移为100%, 那么需要构建比如原子位移为90%,80%。。。。。10%这一系列的中间过渡相。注意这里中间过渡相建立好之后,原子位置应当固定,不需要再弛豫。
然后计算100%,90%,80%。。。这一系列相的极化,保证DOPOL设置一样。 但在计算中我们可能发现,比如,从50%到0%体系不绝缘了,那么这些相没法计算极化了,也不需要计算。
以P(100%),P(90%), P(80%)……为y轴,百分比为x轴 (参照PHYSICAL REVIEW B 71, 014113)作图,即使中间缺失了从50%到0%的点(假设它们不绝缘无法计算),只要其余的点是有一个很好的trend变化,然后那条曲线一直延伸到原点就好了。 注意,原点处P(0%)不一定是0!而是polarization quantum (eR/V) 的整数(或整数+1/2)倍,所取的P(0%)应当是最为符合那条曲线trend的值。大功告成,极化值就是P(100%)-P(0%) 。
假如那些点没有一个好trend,中间有的点有跳跃,那么一定是由于polarization quantum 造成的,这时候需要适当加减polarization quantum的倍数,让那些跳跃的点回到那条有trend的曲线上来。
利用此方法,可以顺利求出R3C BiFeO3的极化值,而且从100%的R3c 到 0%的R-3c, 中间所有过渡相都是绝缘。 也可以顺利求出四方相P4mm的极化,但是从100%的P4mm到0%的P/4mmm中间有些相是不绝缘的,那些相的极化值缺失,但是没有关系,需用剩余的点足以得到一条曲线。BaTiO3的极化计算更为简单,我印象中都是所有相都是绝缘的,而且没有polarization quantum 造成的跳跃。
另外附上我的一些论文,都是用此方法计算的,一篇纯计算的发表在Sci. Rep. (本来投的PRB,但跟一个reviewer fight 很久失败,其中原因说多都是泪)。另外一篇是计算+实验发表在ACS. Appl. Mater. Interfaces, 还有一篇帮我师兄计算的文章发表在PRB,详情见https://scholar.google.com.sg/ci … h-CN&oi=sra, 也可以去我的researchgate下载http://www.researchgate.net/profile/Zhen_Fan3。