计算化学公社

标题: Dynaphopy 计算高温声子谱 [打印本页]

作者
Author:
Shana    时间: 2023-5-9 10:15
标题: Dynaphopy 计算高温声子谱
小弟最近在计算钙钛矿体系的声子谱,在简谐近似下,计算出的声子谱都有一定的虚频,始终无法消除,一开始花了大量的时间去提高结构优化精度,但是都以失败告终,一度都怀疑自己的结构优化靠谱性。后来从各种文献、论坛和视频中了解到钙钛矿体系有很强的非谐性,简谐近似下的声子谱往往都会带有虚频,需要考虑非简谐情形下的计算。目前有三种非简谐计算方法,可以参考这个专栏300 K下的声子谱怎么算? - 知乎 (zhihu.com)。小弟看了教程视频之后,了解到dynaphopy计算高温声子谱的效率比较高,和vasp也十分兼容,就尝试了一下。下面是小弟的计算历程。
1. 简谐声子谱的计算。
dynaphopy的非谐修正是在phonopy的力常数基础上进行的,需要先进行0k声子谱的计算。
这是结构优化的INCAR,力的收敛标准是E-3,大部分的文献也是在这个精度范围内。结构优化的结构是单胞,10个原子。
这是phonopy计算出的声子谱,计算的结构为2*2*2的超胞,80个原子,在gmma点和X点有很强的虚频。这个虚频即使提高收敛精度和扩大超胞也是无法消除的。
2. AIMD计算
dynaphopy通过读取AIMD的计算结构进行拟合(说法不准确),需要预先准备AIMD的outcar或xdatcar。
这是小弟的AIMD的计算设置,基本参考dynaphopy的example中的设置,详细的参数涵义,都有教程介绍。
小弟这里只是采用了3000步的计算,步长是2fs,能量的收敛精度是E-6,不算太高。同样是采用80个原子的超胞。大部分做非谐计算的文献,所采用的都是在80-160原子数范围内的超胞,步长多是1-2fs,总步数大概是3000-6000,总的时长是5ps-10ps。从下面的非谐声子谱结果来看,这个设置对于非谐计算是合适的?
3. dynaphopy非谐声子谱计算。
dynaphopy的官网如下:Dynaphopy (abelcarreras.github.io)
将结构优化的原始晶胞POSCAR,phonopy输出的力常数,和AIMD的OUTCAR放在一个文件夹内。
设置dynaphopy的输入文件input如下:分别是输入结构文件,力常数文件,原胞和超胞与POSCAR的关系设置,band是声子谱的高对称点路径,设置方式和vasp计算PBE能带一致。
然后输入dynaphopy input OUTCAR -i,进入如下的界面,选择6,进入非谐声子谱计算,再选择1,可以同时输出简谐声子谱和非简谐声子谱,此时会对peak进行拟合。拟合结束后,会输出声子谱。
这是小弟一开始使用默认设置,输出的声子谱,可以看到高温声子谱虚频加重了。从@get-it 大佬处了解到,dynaphopy默认使用最大熵方法拟合,效果可能不如fftw有效。于是小弟将拟合方式改为fftw,通过指令dynaphopy input OUTCAR -i -psm 3,采用快速傅里叶变换拟合。得到300k下的声子谱,可以看到,原来gamma点和X点的虚频,已经被成功消除了。而实验上,这个材料在室温下肯定是稳定的。

当然,如果想要得到更准确的声子谱,需要提高优化精度,采用更大的超胞计算力常数,AIMD需要更多的步数和更小的步长,比如dynaphopy的例子是采用0.7 fs,跑200000步。如果只是想得到一个比较合理的声子谱,小弟觉得适当降低精度是没问题的。比如小弟的这个计算,在24核的机器上,结构优化用时不到3小时,dfpt计算1小时,AIMD计算14小时,差不多用时一天,能够得到一个比较合适的声子谱。如果提高精度,计算用时可能会提升数倍,但是声子谱的提升可能并不会太明显。当然这是小弟的一己之见,供大家批判

作者
Author:
waitingseven    时间: 2023-5-9 11:21
请问这个对AIMD采用的系综有要求吗,NVT或者NPT
作者
Author:
leeru    时间: 2023-5-9 14:27
采用alamode也可以达到相同的效果
作者
Author:
Shana    时间: 2023-5-9 16:24
waitingseven 发表于 2023-5-9 11:21
请问这个对AIMD采用的系综有要求吗,NVT或者NPT

我用的是NVT,没有试过NPT哎
作者
Author:
Shana    时间: 2023-5-9 16:24
leeru 发表于 2023-5-9 14:27
采用alamode也可以达到相同的效果

alamode有点复杂,没有dynaphopy这么简单
作者
Author:
sobereva    时间: 2023-5-9 23:51
CUTOFF足够大是消除虚频的极其关键要素,绝不仅仅是看优化收敛精度

谐振近似得到的频率若有明显虚频总有办法消除(在静态计算框架下,与MD和温度无关),这是原理上注定的,否则相应物质根本无法稳定存在,这和非谐振效应强弱是两码事。PS:不过即便计算精度非常高,gamma点的acoustic模式的频率(原理为0)也可能为非常轻微的虚频,可以当做0看待。
作者
Author:
Shana    时间: 2023-5-10 12:53
sobereva 发表于 2023-5-9 23:51
CUTOFF足够大是消除虚频的极其关键要素,绝不仅仅是看优化收敛精度

谐振近似得到的频率若有明显虚频总有 ...

sob 老师,您说的消除虚频方法,是不是改变原子位置,然后继续优化?但是这种改变原子位置的方法,往往伴随着对称性的变化,我认为这样即使没有虚频,也是在另外一种对称性没有虚频。sob老师,我这样理解是否合适?
作者
Author:
sobereva    时间: 2023-5-10 22:20
Shana 发表于 2023-5-10 12:53
sob 老师,您说的消除虚频方法,是不是改变原子位置,然后继续优化?但是这种改变原子位置的方法,往往伴 ...

我这里是强调平面波截断能设置必须足够高,没有说改变原子位置的事。如果这个不够高,体系能量的平移不变性会较差,由此会在有限差分计算时引入虚假的能量改变并很可能造成虚频。
作者
Author:
Shana    时间: 2023-5-11 10:24
sobereva 发表于 2023-5-10 22:20
我这里是强调平面波截断能设置必须足够高,没有说改变原子位置的事。如果这个不够高,体系能量的平移不变 ...

又从sob老师这学到了一点,我的截断能都是2倍推荐的截断能,这个应该是足够了吧?
作者
Author:
sobereva    时间: 2023-5-11 12:36
Shana 发表于 2023-5-11 10:24
又从sob老师这学到了一点,我的截断能都是2倍推荐的截断能,这个应该是足够了吧?

遇到消灭不了的虚频,考虑尝试更高的
作者
Author:
Shana    时间: 2023-5-12 09:46
sobereva 发表于 2023-5-11 12:36
遇到消灭不了的虚频,考虑尝试更高的

好的,谢谢sob老师
作者
Author:
乐平    时间: 2023-7-12 13:59
您好,您在帖子里提到
目前有三种非简谐计算方法,可以参考这个专栏300 K下的声子谱怎么算? - 知乎 (zhihu.com)。小弟看了教程视频之后,了解到dynaphopy计算高温声子谱的效率比较高,


请问哪里有dynaphopy教程视频?谢谢!
作者
Author:
Shana    时间: 2023-7-16 15:32
乐平 发表于 2023-7-12 13:59
您好,您在帖子里提到

请问哪里有dynaphopy教程视频?谢谢!

官方网站学的,http://abelcarreras.github.io/DynaPhoPy/
作者
Author:
乐平    时间: 2023-7-17 10:02
Shana 发表于 2023-7-16 15:32
官方网站学的,http://abelcarreras.github.io/DynaPhoPy/

谢谢,但是这不是您说的“视频”……

另外,我理解是是,还是需要先跑 phonopy 结合 VASP 计算谐性声子谱,然后再跑 AIMD,用 DynaPhoPy从轨迹中提取信息得到非谐性声子谱。是这样的流程吧?
作者
Author:
Shana    时间: 2023-7-17 20:13
乐平 发表于 2023-7-17 10:02
谢谢,但是这不是您说的“视频”……

另外,我理解是是,还是需要先跑 phonopy 结合 VASP 计算谐性声 ...

是的,这个软件很小众,基本没有视频。
作者
Author:
李江山    时间: 2023-11-1 10:09
你好,请问我得到了quasiparticles_data.yaml文件如何画出声子频率,因为我到了画图那一步报错了,只生成了这个文件,可以手动作图吗
作者
Author:
Iridium-191    时间: 2024-1-19 15:10
sobereva 发表于 2023-5-9 23:51
CUTOFF足够大是消除虚频的极其关键要素,绝不仅仅是看优化收敛精度

谐振近似得到的频率若有明显虚频总有 ...

老师好,那对于比如铁电体或者STO这种量子顺电体来说,或者其他高温相,室温相在0K下都是非稳态的相,这种是不是只能通过有限温度下的计算来解决了?谢谢老师
作者
Author:
小付小氟    时间: 2024-4-8 16:08
将拟合方式改为fftw,通过指令dynaphopy input OUTCAR -i -psm 3,采用快速傅里叶变换拟合。我想问用端口之间输出了图片。输入什么样的指令导出图片对应的数值呢?使用这种方法拟合,是对应的力常数文件发生改变吗
作者
Author:
Shana    时间: 2024-4-17 09:42
小付小氟 发表于 2024-4-8 16:08
将拟合方式改为fftw,通过指令dynaphopy input OUTCAR -i -psm 3,采用快速傅里叶变换拟合。我想问用端口之间 ...

能够直接输出力常数的
作者
Author:
九点一定起    时间: 2024-6-12 11:03
您好,我想问下那个input文件中的晶胞与原胞的转换矩阵是怎么得到的呀,如何得到这个矩阵呢
作者
Author:
Shana    时间: 2024-6-12 15:14
九点一定起 发表于 2024-6-12 11:03
您好,我想问下那个input文件中的晶胞与原胞的转换矩阵是怎么得到的呀,如何得到这个矩阵呢

你可以将晶胞转换成原胞,然后用原胞扩胞算声子和AIMD。这样转换矩阵就是对角矩阵
作者
Author:
九点一定起    时间: 2024-6-18 11:11
Shana 发表于 2024-6-12 15:14
你可以将晶胞转换成原胞,然后用原胞扩胞算声子和AIMD。这样转换矩阵就是对角矩阵

您好 我这个声子和AIMD都算完了 但是这个矩阵具体是怎么来的呢 在哪里看呢
作者
Author:
九点一定起    时间: 2024-6-18 12:37
九点一定起 发表于 2024-6-18 11:11
您好 我这个声子和AIMD都算完了 但是这个矩阵具体是怎么来的呢 在哪里看呢

就是dynaphopy 中input中需要输入的转换矩阵 这些我都算完了 不知道这个怎么设置 是怎么算出来的还是怎么得到的呢 麻烦您了
作者
Author:
Shana    时间: 2024-6-28 10:42
九点一定起 发表于 2024-6-18 12:37
就是dynaphopy 中input中需要输入的转换矩阵 这些我都算完了 不知道这个怎么设置 是怎么算出来的还是怎么 ...

有个PRIMITIVE MATRIX和SUPERCELL MATRIX,比如你将晶胞先约化成原胞,那么PRIMITIVE MATRIX的对角元就是1,1,1.然后2*2*2扩胞,SUPERCELL MATRIX的对角元就是2,2,2
PRIMITIVE MATRIX
1 0 0
0 1 0
0 0 1
SUPERCELL MATRIX
2 0 0
0 2 0
0 0 2
作者
Author:
Shana    时间: 2024-6-28 10:43
九点一定起 发表于 2024-6-18 12:37
就是dynaphopy 中input中需要输入的转换矩阵 这些我都算完了 不知道这个怎么设置 是怎么算出来的还是怎么 ...

phonopy是可以输出PRIMITIVE MATRIX的,可以参考输出界面
作者
Author:
17873772769    时间: 2024-10-21 17:07
Shana老师,您好,在dynaphopy的参数设置中写了使用fftw方法时,psm可设置为2、3、4,我在使用dynaphopy input OUTCAR -i -psm 3时,会存在报错“ModuleNotFoundError: No module named 'pyfftw'”,但我使用2时可以正常运行,这结果应该是一样的么(使用后确实无虚频了,且看起来结果合理)
作者
Author:
Shana    时间: 2024-10-28 16:27
17873772769 发表于 2024-10-21 17:07
Shana老师,您好,在dynaphopy的参数设置中写了使用fftw方法时,psm可设置为2、3、4,我在使用dynaphopy in ...

从我的使用感受上来看,dynaphopy的几个算法处理的结果是不大一样的,无虚频的话,消除的很成功




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3