PHONOPY使用教程(上)
Phonopy简介
由 python编译实现的晶体声子分析程序,是一款基于第一性原理进行声子计算的免费软件。它提供了 VASP 的 Wien2k 接口用来计算原子受力。同样类型的程序还有phon, fropho和phonon。其中,phonon是商业软件,费用较高;因此,有人基于phon的代码开发了fropho和phonopy。fropho是为了代替phon而开发的,目的是为了使用phon更方便。目前,fropho已经停止开发,由python开发的phonopy代替了fropho。phonopy在使用上更加方便,在计算量上更为减少。因为phon, fropho和phonon在移动原子位置时都是一次只移动一个原子的一个方向,而phonopy则可以一次移动一个原子的多个方向,所以和其它程序相比,phonopy最多可以减少2/3的计算量。
Phonopy主要功能
计算声子谱; 计算声子态密度,包括分立态密度; 晶体热力学性质,包括自由能,热容量,熵

Phonopy安装 / Ubuntu16.04
万能安装:
sudo pip install phonopy
或者:
sudo apt-get install python-devsudo apt-get install python-numpysudo apt-get install python-matplotlibsudo apt-get install python-lxmlsudo apt-get install python-yamlhttps://sourceforge.net/projects/phonopy/tar xvfz phonopy-1.11.2.tar.gzcd /home/..../phonopy-1.11.2sudo python setup.py install
注:若出现如下提示,执行
sudo apt-get install python-h5py
后重安装
错误提示:
/usr/local/lib/python2.7/dist-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]#warning "Using deprecated NumPy API, disable it by " \^In file included from /tmp/easy_install-jdGNKr/h5py-2.7.1/h5py/defs.c:561:0:/tmp/easy_install-jdGNKr/h5py-2.7.1/h5py/api_compat.h:27:18: fatal error: hdf5.h: No such file or directory compilation terminated.error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status
1. which phonopy #安装好后 phonopy 的命令都在 bin 文件夹下
用phonopy算声子谱
第一步,准备输入文件INCAR KPOINTS POSCAR POTCAR
第二步,扩胞
phonopy -d --dim=’x y z’
(x,y,z 是三个方向的扩胞倍数) 。
程序运行后的界面如下图所示,生成一个SPOSCAR 文件,其中包含的结构为由指定单胞扩展得到的x×y×z 的超胞,此外还会生成disp.yaml 以及POSCAR-{number}等文件,前者包含所有的位移信息,后者则表示发生不同位移的超原胞(文件名序号与disp.yaml 中指定位移的顺序一致),此时为了便于区别,可以将原有POSCAR重命名为POSCAR-unitcell。

第三步,计算:这时,有两种方法来进一步计算声子谱,一种是有限位移法(引入位移,计算受力);另一种是DFPT 方法。
A:有限位移法
在VASP 中,直接采用POSCAR-{number}作为POSCAR 计算每个指定位移下的原子受力,即做自洽计算,可以参考以下INCAR:
SYSTEM=ifcPREC=HighISTART=0ICHARG=2ISPIN=1NELM=60;NELMIN=4;NELMDL=-3EDIFF=1E-7ENCUT=500IALGO=38ADDGRID=TrueLREAL= .F.NSW=0IBRION=-1EDIFFG=-1E-7ISMEAR=0; SIGMA=0.01LWAVE=FLCHARG=F
接下来收集力常数,将vasprun.xml-0* (*对应每个POSCAR 的编号)复制到一个文件夹中,并执行
phonopy -f vasprun.xml-0*
即可得到FORCE_SETS文件,这个形式并不能作为ShengBTE 计算晶格热导率的输入文件。如果想得到二阶力常数FORCE_CONSTANTS文件要做进一步后处理。
准备文件band.conf:
ATOM_NAME = Ti O Zr #元素符号DIM = 5 7 1 #扩胞倍数BAND =0.0 0.0 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.0 0.5 0.0 0.0 0.0 0.0 #声子谱高对称路径BAND_LABELS = G X S Y G #高对称点FORCE_CONSTANTS = WRITE #写出二阶力常数矩阵
将FORCE_CONSTANTS 重命名为FORCE_CONSTANTS_2ND,即可用作ShengBTE 的输入文件。接下来执行
phonopy-bandplot --gnuplot >571.dat
即可得到声子谱数据,可以直接导入origin等绘图软件中作图。

每个原胞中有n个原子,那么一共有3n种不同频率模式。这3n个独立振动分为3n个支,其中如上图所示最下面的频率最低的3个支是声学支,其余3(n-1)支是光学支。
计算热力学性质(自由能——单位J/mol,熵——单位J/K/mol,热容——单位J/K/mol)
运行命令:
phonopy --dim='2 4 1' -t POSCAR-unitcell mesh.conf
绘制热力学相关参数(热容、熵、自由能)随温度T(热力学温标)变化的曲线
运行命令:
phonopy --dim='2 4 1' -t -p POSCAR-unitcell mesh.conf
mesh.conf为:
ATOM_NAME = Bi O Se #元素符号DIM = 5 7 1 #扩胞倍数MP = 21 21 1 # 网格密度,二维材料第三边为1
B. DFPT 方法
将phonopy 创建的SPOSCAR 复制到POSCAR 中,运行VASP 进行DFPT 计算,
INCAR 可以参考以下:
YSTEM=ifcPREC=HighISTART=0ICHARG=2ISPIN=1NELM=60;NELMIN=4;NELMDL=-3EDIFF=1E-7ENCUT=500IALGO=38ADDGRID=TrueLREAL= .F.NSW=1IBRION=8EDIFFG=-1E-7ISMEAR=0;SIGMA=0.01LWAVE=FLCHARG=F
计算完成后,执行
phonopy --fc vasprun.xml
即可获得二阶力常数矩阵FORCE_CONSTANTS。
绘制声子谱:在参数设定文件band.conf 中设定
FORCE_CONSTRAINTS = READ
(或者在运行命令时加上选项--readfc),然后运行命令
phonopy --dim="x y z" -c POSCAR-unitcell band.conf
(如果原胞文件为POSCAR则不需指定)。之后计算与有限位移法一致。
评论
天玑智研

干货推荐

计算机材料设计Materials-Studio教程12
活着
43 2

血脑屏障超微结构
Mr弘🔬
118 9

神经元、星形胶质细胞、少突胶质细胞、小胶质细胞组织学区分
Mr弘🔬
90 7

这些真的是棕色脂肪吗?
Mr弘🔬
163 2

有髓神经纤维超微结构
Mr弘🔬
56 5

vasp声子谱计算(DFPT)
王磊
774 4
