| 查看: 22453 | 回复: 44 | |||||||||||||||||||||
| 【奖励】 本帖被评价22次,作者gavinliu7390增加金币 19.2 个 | |||||||||||||||||||||
[资源]
【转帖】强烈推荐使用phonopy计算声子谱已有2人参与
|
|||||||||||||||||||||
|
原帖地址:http://blog.zhuli.name/archives/6679 这个程序是利用超晶胞冻结声子计算声子谱。 优点:方便,高效,准确。 1. Phonopy 简介 Phonopy 是一个由 python 实现的的晶体声子分析程序。它是目前提供了 VASP 的 Wien2k 的接口用来计算原子受力。它的主要功能有: 计算声子色散谱; 计算声子态密度,包括分立态密度; 声子热力学性质,包括自由能,热容量,焓; Phonopy 通过力常数的方法计算声子谱。力常数由计算原子在超晶胞中被移动后的受力得到(Parlinsk-Li-Kawasoe 方法)。 同样类型的程序还有 phon, fropho, phonon. 其中 phonon 是商业软件,卖的很贵,fropho 和 phonopy 的代码其实都是来自于 phon, fropho 是为了代替 phon 而开发的,目的是为了使用 phon 更方便,phon 和 fropho 主要都是由 fortran 开发的,而现在 fropho 已经停止开发,由 python 开发的 phonopy 代替了 fropho, phonopy 在使用上更为方便,在计算量上更为减少。因为 phon, fropho 和 phonon 在移动原子位置时都是一次只移动一个原子的一个方向,而 phonopy 则可以一次移动一个原子的多个方向,所以和其它程序相比, phonopy 最多可以减少 2/3 的计算量。 2. Phonopy 的安装 phonopy 主要由 python 开发,其中的找晶体空间群功能是由 C 语言(spglib)实现。在安装 phonopy 时需要安装以下它所依赖的软件包: Python 的开发包 numpy , numpy-dev matplotlib python-lxml python-yaml 如果是使用的 Ubuntu/Debian 系统只需: sudo aptitude install python-dev python-numpy \ python-matplotlib python-tk python-lxml python-yaml 如果是 OpenSUSE 则可以去 http://software.opensuse.org/search 搜索下载安装相关软件包。 去 https://sourceforge.net/projects/phonopy/ 下载 phonopy 的最新软件包. 解压后进入 软件包的 c 目录, su python setup.py install 编译安装所需要的 python 模块。 将 PATH/phonopy-0.6.1 $PATH 里: 比如: export PATH=~/opt/phonopy-0.6.1:$PATH 3. Phonopy 的简单使用 下面我以 BC5 为例说明如何和 VASP 做接口计算声子谱: a, 建立超胞 准备 POSCAR 文件 单胞和原胞都可以 准备 INPHON 文件 ATOM_NAME = B C NDIM = 2 2 1 LSUPER = .TRUE. 简单说明: 第一行为原子符号名 B C ,注意要和 POSCAR 中的顺序相同。 第二行为要建的超胞的维数。 第三行是指要建立移动原子的 POSCAR. 然后输入命令: phonopy.py 就会输出 DISP, POSCAR-* (001, 002, 003, …) 在本例出会输出 12 个 POSCAR-*, 依次为 POSCAR-001,…POSCAR-012 b, 计算力常数 将这些 POSCAR-* 做 SCF, 将输出文件 vasprun.xml 保存下来。 我的计算脚本为: #!/bin/sh for a in 01 02 03 04 05 06 07 08 09 10 11 12 do cp POSCAR-0$a POSCAR /opt/intel/impi/3.1/bin64/mpiexec -n 8 /share/apps/vasp/bin/vaspmpi_mkl10_O1 >>out.vasp 2>>err.vasp & wait cp vasprun.xml vasprun.xml-0$a done 我的 INCAR 为: SYSTEM = BC5 PREC = Accurate ENCUT = 520 EDIFF = 1e-5 NSW = 0 ISMEAR = 0 SIGMA = 0.05 LCHARG = FALSE LWAVE = FALSE 这样计算结束后会得到 vasprun.xml-001, …, vasprun.xml-012 然后,执行命令: phonopy.py -f vasprun.xml-* 就会得到文件 FORCES c, 得到声子谱 有了文件 FORCES 后就可以计算声子谱了,这时将 INPHON 改为以下内容: ATOM_NAME = B C NDIM = 2 2 1 ND = 7 NPOINTS = 51 QI = 0.0 0.0 0.5 0.0 0.5 0.5 0.0 0.5 0.0 0.0 0.0 0.0 0.5 0.5 0.0 0.5 0.0 0.0 0.5 0.0 0.5 QF = 0.0 0.5 0.5 0.0 0.5 0.0 0.0 0.0 0.0 0.5 0.5 0.0 0.5 0.0 0.0 0.5 0.0 0.5 0.5 0.5 0.5 简单说明: ND 是指有几条路径; NPOINTS 是指在每两个高对称性点间插入多少个点,包括边界; QI 和 QF 给出路径的起始和结束点。 其中我用的 Q 点顺序为: 0.0 0.0 0.5 Z 0.0 0.5 0.5 T 0.0 0.5 0.0 Y 0.0 0.0 0.0 G 0.5 0.5 0.0 S 0.5 0.0 0.0 X 0.5 0.0 0.5 U 0.5 0.5 0.5 R 执行 命令 phonopy.py -p 即可画出声子谱, 如果执行 phonopy.py -p -s 即可将声子谱曲线保存为 PDF 文件。 其中 声子谱的数据是以 yaml 格式保存在 band.yaml 里的。 如果你想用 Origin, Qtiplot, Xmgrace 等工具画图的话,可以用我写的 python 脚本,readband.py (http://www.zhuli.name/file/readband.py) 将 band.yaml 转换一下,输出文件有两个 band.dat, qpoint.dat. 其中 band.dat 是声子谱数据, qpoint.dat 是高对称性点的数据。 以上只是 phonopy 的其本用法,如果要计算声子态度度和热力学性质的话可以参考 http://phonopy.sourceforge.net 上的文档,还是比较简单的。 我的计算结果: 另外我再解释一下,q=0的时候,即G点的声学声子的频率为什么是0. 实际q=0,意味着波长为无穷大,意味着刚体的振动。对于三维晶体,实际刚体振动的自由度是三个,这样就应该有三支声学声子。既然是整体的振动,那么力场数对所有原子求积分后为0。这样动力学矩阵是有力常数积分得到的,所以动力学矩阵为0.动力学矩阵的本征值开平方就是频率。 所以G点的三个声学支是为0的。 |
» 收录本帖的淘帖专辑推荐
仿真建模与计算 | 研究生资料集 | VASP and MS | 材料计算模拟实用技巧 |
VASP | 第一性原理计算-tg | 第一性原理计算经验 | 第一性原理计算辅助工具 |
第一性原理杂 | @个人收集@ | 有效质量 | 纳米及第一性原理方向 |
第一性 | 计算化学-辅助工具 | VASP | VASP学习 |
soft study | siesta & vasp | 模拟计算课题的学习 |
» 猜你喜欢
读博
已经有5人回复
到新单位后,换了新的研究方向,没有团队,持续积累2区以上论文,能申请到面上吗
已经有13人回复
博士申请都是内定的吗?
已经有6人回复
之前让一硕士生水了7个发明专利,现在这7个获批发明专利的维护费可从哪儿支出哈?
已经有5人回复
博士读完未来一定会好吗
已经有29人回复
投稿精细化工
已经有4人回复
高职单位投计算机相关的北核或SCI四区期刊推荐,求支招!
已经有4人回复
导师想让我从独立一作变成了共一第一
已经有9人回复
心脉受损
已经有5人回复
Springer期刊投稿求助
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
vasp5.2可以用linear response theory方法计算声子谱,声子态密度吗??
已经有15人回复
phonopy计算声子谱时的q点路径问题求助
已经有7人回复
Vasp+phonopy 声子谱出现离奇虚频!
已经有25人回复
CASTEP计算声子谱问题
已经有7人回复
用phonopy算声子谱的问题
已经有3人回复
castep声子谱的计算
已经有5人回复
VASP+PHON算声子谱
已经有9人回复
VASP+phonopy算声子谱结果混乱
已经有6人回复
怎么用VASP计算声子谱
已经有4人回复
再次请问有没有通过算声子谱来计算热导率的呀?
已经有3人回复
QE-PWscf计算声子谱流程。
已经有10人回复
用VASP计算声子谱时出现错误
已经有3人回复
用phonopy计算声子谱已得到FORCE_SETS,之后我怎么得到声子谱?
已经有7人回复
采用vasp ,phononpy或frophon计算声子谱的具体方法是什么?
已经有5人回复
关于用超胞方法计算声子的一些经验
已经有21人回复
用phonopy计算声子谱的问题
已经有16人回复
【求助】castep计算声子谱,为什么不能进行振动分析
已经有9人回复
★★★ 三星级,支持鼓励
|
phonon的确是采用冻结原子的方法计算声子,也就是直接法。而现在大多数采用的是密度泛函微扰法(DFPT)。直接法,或称frozen-phonon方法,是通过在优化后的平衡结构中引入原子位移,计算作用在原子上的Hellmann-Feynman力,进而由动力学矩阵算出声子色散曲线。由于计算简便,不需要特别编写的计算程序,很多小组都采用直接法计算材料性质。直接法的缺陷在于它要求声子波矢与原胞边界(super size)正交,或者原胞足够大使得Hellmann-Feynman力在原胞外可以忽略不计。这使得对于复杂系统,如对称性高的晶体、合金、超晶格等材料需要采用超原胞。超原胞的采用使计算量急剧增加,极大的限制了该方法的使用。这种方法不能很好的预言LO-TO splitting, 只有在计算了Born effective charge和dielectric constant之后,进一步考虑了 non-analyticity term,才能计算出;但Direct Method本身并不能给出Born effective charge和dielectric constant.所以这也是它的一个缺陷.目前,vasp+phonon用的就是这种方法. DFPT通过计算系统能量对外场微扰的响应来求出晶格动力学性质。该方法最大的优势在于它不限定微扰的波矢与原胞边界(super size)正交,不需要超原胞也可以对任意波矢求解。因此可以应用到复杂材料性质的计算上。此外,能量对外场微扰的响应不仅可以推导出声子的晶体性质,还能求出弹性系数、声子展宽、拉曼散射截面等性质,这种方法本身就能算出Born effective charge和dielectric constant,可以很好的预言LO-TO splitting甚至Kohn anomalies。这些优势使得DFPT一经提出就被广泛应用到了半导体、金属和合金、超导体等材料的计算上。比较常用的程序是pwscf和abinit等. |
27楼2010-04-03 21:01:35
10楼2009-12-05 16:21:40
★ ★ ★ ★ ★ ★
aylayl08(金币+6,VIP+0):感谢专家讨论交流 12-5 19:14
aylayl08(金币+6,VIP+0):感谢专家讨论交流 12-5 19:14
|
个人觉得超晶胞冻结声子计算声子谱方法是一种较为落后的方法 现在通常都是用线性响应方法计算 1:冻结方法计算时,只能计算布里渊区特殊点的声子频率,一般点根本算不了。 而且如果k点较密,则超晶包必须选择的很大,大大增加了计算量 而线性响应没有这个限制,布里渊区任意点都可以算,且计算量对于不同k点是差不多的。 2:后期采用力常数方法 其实力常数是一种经验方法,不是对于所有的体系都适用的 比如graphite,力常数方法对于科恩异常是失效的 即使加到第五紧邻力常数,也无法得到实验的声子谱 目前最好的计算结果是用GW做的 3.冻结方法其实完全可以利用现有的任何能够计算总能的程序进行计算 只不过需要手动调节各个原子的位置而已 [ Last edited by xirainbow on 2009-12-5 at 17:29 ] |
13楼2009-12-05 17:26:46
31楼2010-04-28 14:30:18
2楼2009-12-05 01:50:05
★★★★★ 五星级,优秀推荐
gavinliu7390(金币+5,VIP+0):phonopy是免费的。 至于vasp,那就得想法了。谢谢支持! 12-5 16:16
aylayl08(金币-5,VIP+0):评分失误,扣回金币。sorry 12-5 16:49
aylayl08(金币-5,VIP+0):评分失误,扣回金币。sorry 12-5 16:49
| 内容已删除 |
3楼2009-12-05 07:53:55
4楼2009-12-05 09:09:36
★ ★
gavinliu7390(金币+5,VIP+0):谢谢回答! 12-5 16:17
aylayl08(金币-3,VIP+0):sorry,评分失误,扣回金币 12-5 16:50
gavinliu7390(金币+5,VIP+0):谢谢回答! 12-5 16:17
aylayl08(金币-3,VIP+0):sorry,评分失误,扣回金币 12-5 16:50
|
不能给出。 |
5楼2009-12-05 10:17:48
★ ★
gavinliu7390(金币+2,VIP+0):谢谢推荐! 12-5 16:18
gavinliu7390(金币+2,VIP+0):谢谢推荐! 12-5 16:18
|
本帖内容被屏蔽 |
7楼2009-12-05 13:51:57
8楼2009-12-05 14:52:19
★ ★ ★ ★ ★
aylayl08(金币+5,VIP+0):感谢交流讨论 12-5 16:51
aylayl08(金币+5,VIP+0):感谢交流讨论 12-5 16:51
|
其实一般情况下,超原胞法是计算量是比较小的,一般用2*2*2的胞即可。 但是对于绝缘体,有长程力,需要建立更大的胞,收敛性较差,所以计算量才大了起来。扩胞的大小,不是根据对称性扩的,而是根据扩胞后,力常数是否有收敛性。 然而基于线性响应的密度泛函微扰法可以轻松克服超晶胞需要扩的很大的这个缺点,因为它实际是直接求每个q点的动力学矩阵。它的快慢到是和对称性关联很大。有些q点根本就没对称性,收敛起来特别慢,甚至很难收敛。 所以基于超原胞法写的程序基础肯定都一样,因为这个方法已经发展了30年了,相当成熟了。 phonopy要比frophon快三分之二。 因为frophon是这样移动需要移动的原子的: 1 1 0 0 1 0 1 0 1 0 0 1 而phonopy是移动一次 1 1 0 1 这样需要移动的原子只需要移动一次就可以了。 计算量相当小了。 至于是否用supercell 还是DFPT。还是根据需要。 |
9楼2009-12-05 16:11:52
12楼2009-12-05 17:23:27
★ ★
aylayl08(金币+2,VIP+0):谢谢指点 12-7 09:08
aylayl08(金币+2,VIP+0):谢谢指点 12-7 09:08
|
本帖内容被屏蔽 |
14楼2009-12-05 23:50:46
15楼2009-12-06 00:35:50
16楼2009-12-06 10:33:12
18楼2009-12-06 17:10:20
19楼2009-12-06 17:12:18
20楼2009-12-06 21:00:00
22楼2009-12-11 22:44:10
23楼2009-12-13 11:54:04
25楼2010-03-20 05:25:46
28楼2010-04-03 22:21:54
|
嗯,这个软件很有意思。目前我对Born effective charge 比较感兴趣,因为这与铁电极化有关。但据悉PWscf和Abinit也需要手动移原子然后用Berry Phase的方法才能算出Born effective charge?而且这两种code的最大问题是赝势。目前vasp5.2号称已经可以算Born effective charge,但我前几天测试了一下,但没得到想要的这个BEC,目前还不知道问题在哪里。各位有兴趣的可以看看我刚发的帖子,也顺便帮我一把,谢谢。 http://muchong.com/bbs/viewthread.php?tid=1961798&fpage=1 |
30楼2010-04-15 02:35:51
32楼2010-04-28 15:17:52
33楼2010-04-28 16:26:03
34楼2010-05-15 08:42:18
|
我在opensuse11.2上安装phonopy-0.9.1.4。解压后在root下执行python setup.py install ,发现执行phonopy 以及phohopy -f vasprun,xml-*可以,能够产生POSCAR-,也能得到FORCES文件,但执行phonopy -p时作不出图。得到一下信息:Traceback (most recent call last): File "/usr/local/bin/phonopy", line 493, in forces = file_IO.parse_FORCES( supercell ) File "/usr/local/lib/python2.6/site-packages/phonopy/file_IO.py", line 32, in parse_FORCES forces = Forces( atom_number-1, displacement, forces_tmp ) File "/usr/local/lib/python2.6/site-packages/phonopy/forces.py", line 17, in __init__ self.forces = np.array(forces) ValueError: setting an array element with a sequence. 能帮我分析一下吗?谢谢! |
35楼2010-11-18 11:21:34
36楼2011-03-09 11:41:40
37楼2011-03-09 12:09:09
38楼2011-03-09 13:43:40
40楼2012-09-03 09:25:53
42楼2014-05-03 13:29:48
44楼2022-04-21 16:11:55
45楼2022-11-02 15:17:19
简单回复
2009-12-05 11:11
回复
gavinliu7390(金币+2,VIP+0):谢谢推荐! 12-5 16:18
aylayl08(金币-2,VIP+0):sorry,评分失误,扣回金币 12-5 16:51
谢谢分享
aylayl08(金币-2,VIP+0):sorry,评分失误,扣回金币 12-5 16:51
aylayl0811楼
2009-12-05 16:52
回复
erran17楼
2009-12-06 12:34
回复


zdhlover21楼
2009-12-11 21:22
回复

wuli824楼
2010-03-14 21:20
回复
abcasi26楼
2010-04-03 20:42
回复
谢谢分享
yuling98529楼
2010-04-14 23:58
回复

songbone39楼
2011-10-20 16:42
回复
三星好评
sg1840892641楼
2012-12-07 14:55
回复
五星好评
李天帮43楼
2014-05-21 08:40
回复
五星好评 


















回复此楼


