当前位置:文档之家› Phonopy 计算声子谱

Phonopy 计算声子谱

Phonopy 计算声子谱
Phonopy 计算声子谱

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_64.rpm python-yaml-3.05-1.el5.rf.noarch.rpm安装,装好以后便安装phonopy,报错找不到numpy下的arrayobject.h,原来是找不到numpy的include,

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

export LDFLAGS=-L/usr/lib64/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_64.rpm,还好有的下。装了

atlas-devel-3.8.3-1.el5.x86_64.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_64却没有。哎!!!!!!!可是到官网仔细看看却是不需要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 则可以去 https://www.doczj.com/doc/418686060.html,/search 搜索下载安装相关软件包。

去 https://https://www.doczj.com/doc/418686060.html,/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 (https://www.doczj.com/doc/418686060.html,/file/readband.py) 将 band.yaml 转换一下,输出文件有两个 band.dat, qpoint.dat.

其中 band.dat 是声子谱数据, qpoint.dat 是高对称性点的数据。

以上只是 phonopy 的其本用法,如果要计算声子态度度和热力学性质的话可以参考

https://www.doczj.com/doc/418686060.html, 上的文档,还是比较简单的。

我的计算结果:

Filed under:

First Princple, Physics, linux by admin

Phonopy 计算声子谱

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_64.rpm python-yaml-3.05-1.el5.rf.noarch.rpm安装,装好以后便安装phonopy,报错找不到numpy下的arrayobject.h,原来是找不到numpy的include, export CPPFLAGS=-I/usr/lib64/python2.4/site-packages/numpy/core/include 顺便指定一下lib export LDFLAGS=-L/usr/lib64/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_64.rpm,还好有的下。装了 atlas-devel-3.8.3-1.el5.x86_64.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_64却没有。哎!!!!!!!可是到官网仔细看看却是不需要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 的安装

vasp计算

3, Xming用gnuplot是gnu文件里面要加pause -1 4,INCAR 字符太长,vasp_lib里面要改drdatab.F文件,255改大,重新编译 5 声子谱:phononp –d –dim=”3 3 1” 6 vasp编译gama版本的:在第二个CPP加上-DwNGZhalf就行。 7 ISMEAR=-5,电荷密度和DOS之类的电子结构和总能准,但是算力不准,所以对于算声子谱,最好不用-5。对于金属,声子谱一般用DFPT会更准。对于半导体和绝缘体,不能用ISEMAR>0的,只能是-5或者0.对于金属,ISMEAR=1,sigma=0.2 8 DFPT不能用NPAR phonopy -d --dim="2 2 2" -c POSCAR-unitcell

mv SPOSCAR POSCAR 静态计算:IBRION=8,IALGO=38对于金属ISMEAR=1,sigma=0.2 phonopy --fc vasprun.xml band.conf里面要添加:FORCE_CONSTANTS = READ phonopy -p -c POSCAR-unitcell band.conf 一般来说,对于金属,或者窄能隙半导体,如果用位移法,则需要很大的胞才能算准,但是用DFPT则可以小包算准。对于金属,PBE可能更好点。 9, 如果体系较大,EDIFF达到停止计算,很可能是K点取太多,内存不够。 10, bandplot --gnuplot band.yaml >> phon.dat,用origin做声子谱 11,画CBM和VBM的partial charge,读入

VASP+FROPHO 计算晶体材料声子谱及热性能

V ASP+FROPHO 计算晶体材料声子谱及热性能梁超平(liangchaoping@https://www.doczj.com/doc/418686060.html,), May. 2010 作者简介:梁超平,中南大学粉末冶金研究院07级硕士研究生,师从龚浩然教授,主要研究方向为计算材料学算法编程及材料跨尺度计算模拟。 目录 一、编译fropho (1) 二、一个简单的算例:BCC Zr的声子谱以及声子态密度 (2) 简介 Fropho是一个使用Fortran语言编写用于实现晶体声子分析程序。它目前提供了V ASP 、 Wien2K 的接口用来计算原子受力,通过分析原子受力得到力常数矩阵。从而根据力常数矩阵进行材料的声子谱及热性能分析。其主要功能有: 计算声子色散谱; 计算声子态密度,包括分立态密度; 声子热力学性质,包括自由能,热容量,焓。 接下来简要介绍程序的编译,通过一个简单的算例来介绍它的使用方法。 一、编译fropho 1. 编译Fropho需要lapack数学库文件。因此首先从https://www.doczj.com/doc/418686060.html, 下载lapack-3. 2.gz; 2. 使用sftp上传至远程服务器; 3. 解压缩lapack-3.2.gz; @node64:~> tar -zxvf lapack-3.2.gz 4. 进入lapack-3.2,将make.inc.example 拷贝成make.inc

@node64:~/lapack-3.2> cp make.inc.example make.inc 5. 修改make.inc和Makefile 将make.inc第22和26行改为ifort或者pgf90编译器,这样运算速度更快,这里的编 译器要跟后面编译fropho一致。然后将Makefile第11行注释掉,打开第12行 6. 使用make lib 安装数学库,转好后在当前目录产生lapack_LINUX.a、blas_LINUX.a 和tmglib_LINUX.a。 @node64:~/lapack-3.2> make lib 7. 安装fropho 从https://www.doczj.com/doc/418686060.html,/ 下载fropho-1.3.3.tar.gz 8. 解压缩; @node64:~/fropho> tar -zxvf fropho-1.3.3.tar.gz 9. 进入fropho-1.3.3并configure设置好相应的编译器和链接数学库,链接这两个数学库 的顺序不能错,不然不能使用; @node64:~/fropho/fropho-1.3.3> ./configure --prefix=where do you want to install fropho FC=ifort LIBS= "/your lapack-3.2 direction/lapack-3.2/liblapack.a your lapack-3.2 direction/lapack-3.2/libblas.a" 10. 然后make; @node64:~/fropho/fropho-1.3.3>make @node64:~/fropho/fropho-1.3.3>make install 11. 编译rubytools,进入rubyTools目录; @node64:~/fropho/fropho-1.3.3/rubyTools> ./makeTools.sh 12. 大功告成,安装圆满完成了。 二、一个简单的算例:BCC Zr的声子谱以及声子态密度 1.首先准备好优化的Zr POSCAR文件,以及INPHON。 INPHON的内容为(注:由于程序编写原因INPHON的格式必须严格固定,=号两端必 须有空格) NDIM = 3 3 3 #超晶胞尺寸 LSUPER = .TRUE. #控制是否产生超晶胞

【doc】氯化钾晶体声子谱的唯象计算

【doc】氯化钾晶体声子谱的唯象计算氯化钾晶体声子谱的唯象计算第28卷茹0裁 19s0年5目 厦门大掌掌摄自然辩擘版 JOURNALOFXI^-一ENUNIVERSiTy 'NATUR^L5CIENCE) VoI.28 May N0.3 1989 氯化钾晶体声子谱的唯象计算" 苏国珍)陈传鸿 '物理学系) 摘要在占理韵近烈下,通过拟台寅验弹性系数昀唯象方法确定了氯化钾晶体的最近邻 ;文l-斤餐力常教,进而求得其声子谱.计算时计人长程的库仑作用和多体修正,结果与实验 符盆良好.这种方洼还可用于其它碱金属卣化物声子港的计算. 曩蔓词化钾晶体,力数,声子谱 虽然自1979年以来采用冻结声子的总能差方法以及逆介电函数方法从第一原理计算 晶体声子谱有显着进展【1l,但大量的实际计算中仍采用唯象方法.碱金属卤化物声子

谱的计算,大多以离子闻相互作用二体对势为出发点I2,I1.这类计算需先经拟合定出二 体对势的势参数,再由对势计算离子间力常数,从而求得声子谱.本文中采用一种较为 直接的方法,即通过拟合实验弹性系数确定离予阃相互作用力常数,再由力常数计算声 子谱.在确定力常数时,针对碱金属卤化物的具体特点,作了合理的近似.计算声子清 时计入长程库仑作用与多体修正. i理论与计算方法 在绝热与谐和近似下,声予谱可通过解以下久期方程求得l? j,?,一l!DPl)一_d(口)』=0(1) 这里, .,(二,)毒善#一/L,)e(.) 为动力学矩阵,而 毋(箍e3,为力常数矩阵. 上述毋为离子间相互作用势,()一玉()为格点(1,,-,)与格点(I.t' 的相对位置,()(:)一()为格点(I,)离开平衡位置位移,卢=1,2, .代表直角坐标的三个分量,为原胞中原子标记?姜代表对原胞格赢求和? 1)1988.11—17收到'中国科学院自然辩掣营盒资助课题'2)现为厦门水产学院基础部教师 262陧大学1Isg年 我们知道,离子间相互作用包括短程的排斥作用与长程的库仑作用.计算声子谱的关键为短程作用力常数的确定.对长程韵库仑作用,由于库仑势具有简单的l的

载流子迁移率计算方法(VASP,ORIGIN)

载流子迁移率计算方法(V A S P,O R I G I N) -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

计算公式: 半导体物理书上也有载流子迁移率的公式,但是上面的是带有平均自由时间的公式,经过变换推倒,就成了上面的那个公式,因此要用vasp计算的参数有,S l,m e,m d,E l这四个参数,其他的都是常数,可以查询出来带入公式。 参数:S l ,就是需要我们先用vasp计算出声子谱,我们要对声子谱求导,取导带底处的值,对应的就是电子迁移率的S l 所以需要学会怎么使用phonopy m e :就是电子的有效质量,要用origin对能带图求二次导,取导带底对应的值。 m d: mx就是布里渊区X方向的有效质量,my就是y方向的有效质量,先用笔算出G 到K,M向量,然后分别作这两个向量的垂直向量,在这两个向量方向上取20个权重为0的点,放到KPOINTS中,按照以前的方法,算出来的能带就是x方向上的和y方向上的,然后就可以算出x,y方向上的有效质量。 E l :把公式变形一下,E l,放在一边,其他的放在另一边,δV就是原来晶胞的体积改变量,δE就是对应能量的该变量,V0就是晶胞原来的体积,也就是说,我要把原来的晶胞任意改变一下大小,算出导带底能量的变化量,进而就算出了E l这个量。 以上这四个量算出来之后,带入公式计算就可以得出电子的迁移率公式。 电子迁移率主要受到:声学支波散射,光学支波散射,电离杂质杂质散射的影响,因为后二者没有第一个影响大,所以我们计算的迁移率包含的就是在声学支波散射作用下的迁移率。(半导体物理书上都很仔细的介绍。) 2

材料计算学拓展题-硅的计算

《计算材料学》拓展题报告 一.Si 的弹性常数计算 1.模型导入:File/import/Structures/semiconductors/Si.xsd 2.化简为原胞:Build/symmetry/primitive cell 3.结构优化:Modules/CASTEP/Calculation 图1.1CASTEP Calculation 对话框设置 在Job Control 中选择多核并行计算,参数设置完成后,点击Run 进行计算。计算完成后, 小组成员:朱银安曹文康索巴苗芳

跳出OK活动窗口。点击打勾确定,结构优化完成。单击得到的文件。 源文件1.1生成文件中优化后原胞晶格常数 4.弹性常数计算: 在文件下找到结构优化生成的文件Si.castep,特别注意将其激活之后,依次点击Modules/CASTEP/Calculation。具体参数设置如下: 图1.2CASTEP Calculation对话框设置 点击Run计算。生成新文件夹,其中包括数个文件。接下来对弹性常数计算的生成文件进行分析。在生成的文件夹中激活Si.xsd,单击Modules/CASTEP/Analysis,选择Elastic Constants,具体设置如下:

图1.3CASTEP Analysis对话框具体设置 单击Calculate按键,计算完成,得到生成文件Si Elastic Constants.txt。弹性常数具体数值摘抄如下: 源文件1.2生成文件 即C11=159.42830GPa,C12=57.71120GPa,C44=77.40610GPa,与文献[1,2],实验[3]得出的结果相近。 表1.1文献[1,2],实验[3]得到的弹性模量 二.Si的声子谱计算 1.模型导入:File/import/Structures/semiconductors/Si.xsd

相关主题
相关文档 最新文档