Thirdorder生成三阶力常数时临近取值经验
经验分享
计算材料热输运性质时需要计算模型原子间力常数,包括可处理获得声子色散的二阶力常数,和三阶力常数甚至四阶。通常使用phono3py或者thirdorder生成三阶力常数的计算文件。
在phono3py中可以通过调整原子位移控制产生的任务数量,而在thirdorder中则主要控制临近数值。
在有关资料中有说在thirdorder扩包生成计算任务时临近数尽量取10以上,才能计算得到收敛的晶格热导率。
详细请参考链接:
https://www.bilibili.com/video/BV1rL41147Rg/?spm_id_from=333.999.0.0


但对于不同的体系和不同的扩包倍数来讲,在使用thirdorder扩包时会有临近数值的上限。
比如笔者使用一个2原子的晶胞(空间群Fm-3m)进行扩胞,扩胞倍数为2×2×2(此扩包倍数较小,无法计算得到有效和精确的结构,仅为案例需要),当临近数值大于5时所产生的位移POSCAR就会达到上限88个,并提示warning: supercell too small to find n-th neighbours,无法找到所设置的近邻。后续即使增大临近数值,也不会增加三阶力常数计算的任务数量,即该扩胞倍数下最大临近数值为5。
当增大扩胞倍数至4×4×4,当临近数值达到12才得到达到任务上限;
当增大扩胞倍数至5×5×5,当临近数值达到17才得到达到任务上限;
所以即便是同一体系,扩胞倍数不同的情况下,使用临近数值也需要测试和研究。
在可使用的计算资源有限时,使用合适的临近数值是非常有必要的。

愿有所成
IEchoQ
引喻失义 妄自菲薄