24小时热门版块排行榜    

查看: 22458  |  回复: 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 模拟计算课题的学习

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

天路堂主

银虫 (初入文坛)


问题请教

引用回帖:
Originally posted by gavinliu7390 at 2009-12-05 01:48:15:
原帖地址:http://blog.zhuli.name/archives/6679
这个程序是利用超晶胞冻结声子计算声子谱。
优点:方便,高效,准确。


1. Phonopy 简介
Phonopy 是一个由 python 实现的的晶体声子分析程序 ...

1.为什么我的Phonopy装完后不能运行phonopy.py命令,而只有phonopy命令,有遇到同样问题的吗?
2.产生POSCAR-*的时候能控制产生出来的POSCAR的数目吗?(如图)比如说LZ给出的是例子是产生12个POSCAR,那本例中的B C体系能否产生16个或18个等其它数目的POSCAR吗?
36楼2011-03-09 11:41:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

天路堂主

银虫 (初入文坛)


引用回帖:
Originally posted by 锐利的碎片 at 2011-03-09 12:09:09:
其实phonopy可以用vasp的dfpt的。

能否说得详细点,怎么用的?
38楼2011-03-09 13:43:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gavinliu7390 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见