最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Phonopy 计算声子谱

来源:动视网 责编:小OO 时间:2025-09-23 23:07:05
文档

Phonopy 计算声子谱

Phonopy计算声子谱(2010-02-0711:03)注明:numpy,numpy-devmatplotlibpython-lxmlpython-yaml其中numpy和matplotlib在安装vasputil(为了装ase)已经安装过了。所有本人先找到python-lxml-1.3.4-1.el5.rf.x86_.rpmpython-yaml-3.05-1.el5.rf.noarch.rpm安装,装好以后便安装phonopy,报错找不到numpy下的arrayobject.h,原来
推荐度:
导读Phonopy计算声子谱(2010-02-0711:03)注明:numpy,numpy-devmatplotlibpython-lxmlpython-yaml其中numpy和matplotlib在安装vasputil(为了装ase)已经安装过了。所有本人先找到python-lxml-1.3.4-1.el5.rf.x86_.rpmpython-yaml-3.05-1.el5.rf.noarch.rpm安装,装好以后便安装phonopy,报错找不到numpy下的arrayobject.h,原来
Phonopy 计算声子谱 (2010-02-07 11:03) 

注明:numpy , numpy-dev  matplotlib  python-lxml  python-yaml其中numpy和matplotlib在安装vasputil(为了装ase)已经安装过了。所有本人先找到python-lxml-1.3.4-1.el5.rf.x86_.rpm python-yaml-3.05-1.el5.rf.noarch.rpm安装,装好以后便安装phonopy,报错找不到numpy下的arrayobject.h,原来是找不到numpy的include, 

export CPPFLAGS=-I/usr/lib/python2.4/site-packages/numpy/core/include  顺便指定一下lib

 export LDFLAGS=-L/usr/lib/python2.4/site-packages/numpy/lib

然后找到了,在编译phonopy: python setup.py install --home=.,有一些警告,可能是没有安装numpy-dev的缘故,在网络上搜numpy-dev包,居然没有。只有numpy-1.2.1-2.el5.src.rpm。郁闷,我的numpy已经关联不能删除了,那还是用src包产生一个numpy-devel先。

编译src时说少了atlas-devel-3.8.3-1.el5.x86_.rpm,还好有的下。装了atlas-devel-3.8.3-1.el5.x86_.rpm后,再: rpm -i numpy-1.2.1-2.el5.src.rpm  然后到/usr/src/redhat/SPECS   rpmbuild –bb numpy.spec以为可以得到numpy-devel,到/usr/src/redhat/RPMS/x86_却没有。哎!!!!!!!可是到官网仔细看看却是不需要numpy-devel,看来下来的介绍这点上有误,其余的都是正确的。

∙分类:Vasp 标签: - 

Phonopy 计算声子谱 

October 7, 2009 

Tags: Phonopy, Python 

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/bin/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 上的文档,还是比较简单的。

我的计算结果:

Filed under:

First Princple, Physics, linux by admin 

文档

Phonopy 计算声子谱

Phonopy计算声子谱(2010-02-0711:03)注明:numpy,numpy-devmatplotlibpython-lxmlpython-yaml其中numpy和matplotlib在安装vasputil(为了装ase)已经安装过了。所有本人先找到python-lxml-1.3.4-1.el5.rf.x86_.rpmpython-yaml-3.05-1.el5.rf.noarch.rpm安装,装好以后便安装phonopy,报错找不到numpy下的arrayobject.h,原来
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top