预存
    Document
    当前位置:文库百科文章详情
    基于Quantum Espresso的第一性原理计算建模教程(二):QE中的结构定义
    来源:本站 时间:2020-11-11 14:04:23 浏览:12494次
    QE输入文件的总体结构如下图,输入文件的前半部分满足Fortran语言的Namelist语法。与结构有关的包括SYSTEM部分的ibrav,celldm,nat,ntyp以及ATOMIC_POSITIONSCELL_PARAMETERS共三个部分。
     基于Quantum Espresso的第一性原理计算建模教程(二):QE中的结构定义-1
    QE计算的结构都是在三维空间中周期性重复的,所以需要定义周期性的单元(这里称作CELL,单元),以及周期性单元内的原子坐标。在QE中用三个矢量 
     
    定义CELL。CELL的定义本身不依赖于空间直角坐标系(笛卡尔坐标系)的选择,只需要定义三个基矢量的长度和三个夹角,但是为了计算,需要确定一个空间直角坐标系,以写出各个矢量的笛卡尔坐标,
     
    这里空间直角坐标系的选取,对于ibrav≠0是在QE程序内部进行的,用户不需要设置;对于ibrav=0是用户通过写出CELL_PARAMETERS而确定的。


    设置ibrav=0,这时需要在输入文件中写入CELL_PARAMETERS,即CELL的基矢量,
     
     基矢量是空间直角坐标系中的直角坐标(笛卡尔坐标),空间直角坐标系的选法有一定的任意性,用户可以根据习惯选择,比如,将原点放在某个原子上,将z轴定义为布拉伐格子的基矢c方向,这里坐标系的不同选择,对应的原子坐标会有一个单位正交矩阵所定义的变换,但是要求是右手系。坐标的单位有三种选择:alat,bohr,angstrom,其中,alat是由celldm(1)A定义的晶格常数单位。设置ibrav=0并写出CELL_PARAMETERS这种方法适合用来设置超胞、slab模型等,也可以用来建原胞,是一种通用性较好的方法,并且与其他结构文件(cif,VESTA,POSCAR等)格式转换较为方便,也更方便进行后续计算。
    设置ibrav≠0,这时会生成布拉伐格子相应的原胞。[表1]列出了ibravcelldm设置以及对应的 原胞基矢量
     
    (相当于内部生成的CELL_PARAMETERS),注意celldm(1)定义了alat,单位只能是Bohr;celldm(2)celldm(3)定义的是比例b/a和c/a,而不是基矢长度,celldm(4:6)是角度的余弦值;对于ibrav=5,-5,9,-9,12,-12分别是三方、底心正交、简单单斜原胞的两种空间直角坐标系的取法;ibrav≠0中的简单格子也可以用来设置超胞等结构(对于超胞不要再使用面心、体心等非简单格子)。注1、注2
    注1:注意晶胞和原胞的区别,对于非简单格子ibrav 适合于设置原胞(对于简单格子ibrav≠0当然也是设置了原胞),布拉伐格子中的7个简单格子本身就是原胞,而且,除了菱方外的6个简单格子,不仅是原胞,同时也是晶胞,菱方的布拉伐格子是原胞但不是晶胞,菱方的晶胞是六方的简单格子,体积是原胞的3倍,而底心、面心、体心的7个布拉伐格子本身是晶胞,存在体积更小的原胞。
    注2:trigonal三方晶系有两种布拉伐格子,一种是ibrav=5,菱方(rhombohedral)布拉伐格子,另一种是ibrav=4,六方(hexgonal)布拉伐格子,晶体属于菱方还是六方要看具体的空间群,在hexgonal和trigonal晶系中,7个空间群:
     
     具有菱方布拉伐格子的原胞,其余的45个空间群具有六方布拉伐格子的原胞。这里的菱方和六方是指晶体的格点系统lattice system,而非晶系,格点系统是按照布拉伐格子分类的,晶系是按照晶体点群分类的。


    在QE中还可以直接给出晶格的基矢长度和夹角A, B, C, cosAB, cosAC, cosBC,单位是Angstrom,和celldm一样,唯一地确定了CELL,定义了 
     
    这时的空间直角坐标系是QE内部定义的,也由表1给出。
    表1 14种布拉伐格子的设置及对应的单元基矢量
     基于Quantum Espresso的第一性原理计算建模教程(二):QE中的结构定义-2
    在定义了CELL之后,用ATOMIC_POSITIONS定义CELL中原子的坐标。ATOMIC_POSITIONS的单位有以下可供选择{ alat | bohr | angstrom | crystal | crystal_sg },其中,crystal是指以 
     
    为基矢量的分数坐标,
     
     如果选择{ alat | bohr | angstrom},则原子坐标是空间直角坐标,由于结构的周期性,这里的空间直角坐标系的选择是任意的,但是习惯上还是与CELL的空间直角坐标系保持一致,坐标值在CELL_PARAMTERS所定义的平行六面体内部。{crystal_sg}是在指定了空间群之后,定义对称性不等价的原子位置,与space_group, uniqueb, origin_choice, rhombohedral配套使用。


    QE提供多种方式完成一件任务的设计风格,为具有各种习惯的用户提供了得心应手的工具,但是对于初学者来说,难免有一种眼花缭乱的感觉,这里推荐的方法:
    (1)设置ibrav≠0,对于原胞用相应的ibrav类型,对于超胞用简单格子的ibrav,写出celldm(1-6),这时不写CELL_PARAMETERS,输出会内部生成CELL_PARAMETERS以alat(celldm(1))为单位。VESTA画图时用输出里的CELL_PARAMETERS,需要转换单位。转为POSCAR格式可以用densityflow.com(http://www.densityflow.com/p2v.html)的工具。
    (2)设置ibrav=0,写出以Angstrom为单位的CELL_PARAMETERS (angstrom),对于原子坐标建议使用分数坐标,即写成ATOMIC_POSITIONS (crystal),不设置celldm(1),这时,alat和celldm(1)由程序内部设置成v1的长度,以Bohr为单位(1 Bohr = 0.52917720859 Angstrom)。VESTA画图CELL_PARAMETERS已经是Å为单位。
    第二种设置ibrav=0后续处理时要注意pp.x输出电荷等文件是以alat为单位输出CELL_PARAMETERS的,而与输入文件的单位不一样。vc-relax计算的最终结构是以ibrav=0搭配CELL_PARAMETERS (angstrom)的格式输出的。要注意基矢和原子坐标的有效数字位数要写得多一些,以找到正确的对称性。ibrav=0一个不足之处是输出了点群操作但是没有输出点群名称(需设置verbosity='high'),可以将qe_release_6.4/ PW/src/summary.f90第608行IF ( ibrav == 0 ) RETURN加注释,重新编译。


    最后,强烈建议做好结构之后,用可视化的软件如VESTA、Xcrysden、MS等画出晶体结构,检查一下原子间距、键角等是否正确,这些软件并不都支持QE的输入格式,可能需要转换格式,这时用ibrav=0也比较有利。用VESTA画图,转为POSCAR格式,输入文件拷贝CELL_PARAMETERS后面的三行作为POSCAR的第3-5行(POSCAR第二行设置为1.0),拷贝ATOMIC_POSITIONS (crystal)后面的坐标后三列,作为POSCAR里的Direct坐标,QE输出转POSCAR同上。
    QE结构设置的种类总结如下,除了通过空间群设置以外,单元有6种设置方法,原子坐标有4种设置方法,一共有24种组合方式,当然,每一种都是等价的,从任意一种可以推出其余的23种,转换工具见densityflow.com。考虑到ibrav=0时存在直角坐标系选取的任意性,ibrav=0、CELL_PARAMETERS( alat )、celldm(1)设置存在alat选取的任意性,这种转换有可能是不可逆的。对于一种ibrav设置,只是对应布拉伐格子类型的一种单元设置,比如体心立方就有ibrav=3和-3两种单元设置,所以通过CELL_PARAMETERS进行单元设置,在进行上述转换时,可能会转到不同的布拉伐格子,比如将体心立方的某种单元设置(不能归为3或-3)转为其他的ibrav类型。
     基于Quantum Espresso的第一性原理计算建模教程(二):QE中的结构定义-3
    注:自6.4.1版本,官方不推荐celldm(1)=1.88972613(任何<2的值)的做法,这里也修正为celldm(1)设置为晶格常数,或用ibrav≠0。
    注2:关于alat,alat是qe内部定义的量,以Bohr为单位,具有晶格常数的意义,在pw.x的输出接近开头处有lattice parameter (alat)  = x.xxxx a.u.。(1)当ibrav=0,且CELL_PARAMETER{bohr或angstrom}时,alat是CELL_PARAMETER第一行矢量的长度,此时不允许写celldm,否则会和CELL_PARAMETER冲突;(2)当ibrav=0,且CELL_PARAMETER{alat}时, alat=celldm(1)A;(3)对于ibrav≠0,alat=celldm(1)A。对于输入,alat可能的影响是使用CELL_PARAMETER {alat},这时cell参数是以alat为单位的。对于输出,pw.x有些输出量用到了alat为单位,这里就不再列举,根据情况判断。

    评论 / 文明上网理性发言
    12条评论
    全部评论 / 我的评论
    最热 /  最新
    全部 3小时前 四川
    文字是人类用符号记录表达信息以传之久远的方式和工具。现代文字大多是记录语言的工具。人类往往先有口头的语言后产生书面文字,很多小语种,有语言但没有文字。文字的不同体现了国家和民族的书面表达的方式和思维不同。文字使人类进入有历史记录的文明社会。
    点赞12
    回复
    全部
    查看更多评论
    相关文章

    基础理论丨一文了解XPS(概念、定性定量分析、分析方法、谱线结构)

    2020-05-03

    手把手教你用ChemDraw 画化学结构式:基础篇

    2021-06-19

    晶体结构可视化软件 VESTA使用教程(下篇)

    2021-01-22

    【科研干货】电化学表征:循环伏安法详解(上)

    2019-10-25

    【科研干货】电化学表征:循环伏安法详解(下)

    2019-10-25

    Zeta电位的基本理论、测试方法和应用

    2020-08-24

    热门文章/popular

    基础理论丨一文了解XPS(概念、定性定量分析、分析方法、谱线结构)

    手把手教你用ChemDraw 画化学结构式:基础篇

    晶体结构可视化软件 VESTA使用教程(下篇)

    【科研干货】电化学表征:循环伏安法详解(上)

    电化学实验基础之电化学工作站篇 (二)三电极和两电极体系的搭建 和测试

    【科研干货】电化学表征:循环伏安法详解(下)

    微信扫码分享文章