当前位置: 首页 > 第一原理 >【转帖】VASP 初学者必读

【转帖】VASP 初学者必读

作者 顺水
来源: 小木虫 14000 280 举报帖子
+关注

VASP 初学者必读
初学VASP(一) what's it?

VASP = Vienna Ab-initio Simulation Package

VASP is a complex package for performing ab-initio quantum-mechanical
molecular dynamics (MD) simulations using pseudopotentials (如超软赝势US-PP)
or the projector-augmented wave (PAW) method and a plane wave basis set.

The approach implemented in VASP is based on the (finite-temperature)
local-density approximation with the free energy as variational quantity
and an exact evaluation of the instantaneous electronic ground state at
each MD time step.

它的好处主要包括
基组小适于第一行元素和过渡金属,
大体系计算快(<4000价电子),
适于平行计算(Unix/Linux)
其他特性还包括自动对称性分析、加速收敛算法另文涉及。

一个简单的VASP作业主要涉及四个输入文件:
INCAR(作业细节) POSCAR(体系坐标) POTCAR(赝势) KPONITS(k空间描述)
初学VASP(二) 布里赫定理

本文简单介绍点能带理论的基础知识 以利于后文讨论

布里赫(F.Bloch) 参考书:《固体能带理论》谢希德 陆栋 主编

Bloch定理

周期性势场的单电子薛定谔方程的非简并解和适当选择组合系数的简并解同时
是平移算符T(Rl)的属于本征值exp(ik•Rl)的本征函数

数学表示:
T(Rl)ψn(k,r) = ψn(k,r+Rl) = exp(ik•Rl)•ψn(k,r)

ψn(k,r)称为Bloch函数,用它描写的电子也称为布里赫电子

推论一:
晶格电子可用通过晶格周期性调幅的平面波表示。由此我们知道k的物理意义 波矢

推论二:
若Km•Rl = 2nπ,即Km为倒格矢,那么
ψn(k,r) = ψn(k+Km,r)

所以我们将k值限定在一个包括所有不等价k的区域求解薛定谔方程,这个区域称为
布里渊区(Brillouin,没错,就是量化课上CI方法中最重要的基石Brillouin定理的那位
)在布里渊区,对于每个n,En(k)是一个k的连续、可区分(非简并情况)的函数,称为能带
,所有的能带称为能带结构。

ok 那么实际上VASP的计算就是利用以上定理,通过T算符的变换,将实空间(r空间)和动
量空间(k空间)联系起来,利用晶格的周期性简化计算,所以在后面的讨论中将常出现
band,k-points,projectors in real space等概念。
初学VASP(三) 描述原子坐标

POSCAR = position + CAR

第1行:任意文字注释

第2行:晶格常数,单位A,后面所有的长度值得自原值除以此值
a=b=c时取a即可,否则个人习惯取三者最大
若取负值,则为晶胞体积,单位A3

第3-5行:定义晶矢 参见《固体量子化学——材料化学的理论基础》赵成大

如 对于正交晶体 a=20.022 b=19.899 c=13.383 α=β=γ=90
可以这样定义
20.022
1.00000 0.00000 0.00000
0.00000 0.99386 0.00000
0.00000 0.00000 0.66841
又如 对于面心立方晶体 a=b=c=3.57 α=β=γ=90
可以定义如下
3.57
0.0 0.5 0.5   (1/2(b+c))
0.5 0.0 0.5   (1/2(a+c))
0.5 0.5 0.0   (1/2(a+b))

第6行:每种元素的原子数,特别注意顺序,要与下面的坐标顺序以及POTCAR中
的顺序一致

第7行:可省略,无需空行。
做动力学时,是否需要固定部分离子的坐标。若是,此行以'S'或者's'首字即可。

第8行开始为离子的坐标,格式为
option line
coordinate1 of element1
coordinate2 of element1
...
coordinateN of element1
option line
coordinate1 of element2
coordinate2 of element2
...
coordinateM of element2
...
其中,option line指定输入坐标的格式,除了第一个以外,如果后面的输入格式同前,
则都可以无空行省略。
option line可指定的输入坐标格式有两种
'D'or'd' for direct mode
'C'or'c'or'K'or'k' for cartesian mode
顾名思义,前者是定义在三个晶矢方向上的坐标
R=R1×x+R2×y+R3×z R1,R2,R3为前面的晶矢,x,y,z为输入的三个坐标,R为坐标位矢
而后者只是简单的将直角坐标除以前面第二行定义的晶胞常数
两者可以混用,但不推荐。

如果第7行设定了S(Selective Dynamic),则可以用以下形式定义各坐标是否可以移动
Selective dynamics
Cartesian
0.00 0.00 0.00 T T F
0.25 0.25 0.25 F F F
初学VASP(四) k点的选择

如前所述
The Bloch theorem changes the problem of calculating an infinite number of
electronic wavefucntions to one of calculating a finite number of
wavefunctions at an infinite number of k-points. (参见CASTEP的帮助文档,他和
VASP是亲兄弟)。

所以呢,一般来说,k点越密越多,计算精度也越高,当然计算成本也越高。
嗯,对于k点的需求,金属>>半导体,绝缘体,不过呢,很多时候主要还是受硬件限制
简约化可以使k点的数目大大下降。对于原子数较多的体系的计算,就需要谨慎的尝试  
k点数目,在避免或者预先评估wrap-around error的前提下尽量减少k点数目。

另一个问题是k空间网格(k-points grid)的位置和形状,
是否包括Г点(Gamma点,也可理解为原点)?(一般不包括的话很可能会带来误差,尤其
是使用了tetrahedron方法的时候。暂时还不知道不包括的好处,为了减少k点?)
方形?线形?还是长方形?或者奇形怪状? :)

后文另述。那么现在来看看KPOINTS file的结构:

Line1: comment line 注释行 no problem

Line2: k点总数 或者 '0'自动生成网格(Automatic k-mesh generation)

如果是前者,给出k点总数,又分两种情况

M.全手动 Entering all k-points explicitly
Line3: 输入格式标识。直角坐标 (Cartesian)或者 倒格坐标(Reciprocal)
    同样的 'cCkK' for Cartesian,其他首字母则自动切换到 Reciprocal
Line4-n: 逐个k点的描述。 格式为 x y z W。 xyz是三个坐标,W是权重。所有k点的权
    重相互之间的比例对了就行,VASP会自动归一的
注意C坐标和R坐标的定义
C: k=(2π/a)(x y z) R: k=x*b1+y*b2+z*b3 b1-3为倒格基矢
(这里我们看到xyz只是代表了坐标的顺序,与坐标轴无关)
比如一些常用的高对称性点的C和R坐标:
Point   Cartesian coordinates   Reciprocal coordinates
        (units of 2pi/a)        (units of b1,b2,b3)
------------------------------------------------------
G          (  0   0   0  )          (  0   0   0   )
X          (  0   0   1  )          ( 1/2 1/2  0   )
W          ( 1/2  0   1  )          ( 1/2 3/4 1/4  )
K          ( 3/4 3/4  0  )          ( 3/8 3/8 3/4  )
L          ( 1/2 1/2 1/2 )          ( 1/2 1/2 1/2  )
输入示例:
Example file
4
Cartesian
0.0  0.0  0.0   1.
0.0  0.0  0.5   1.
0.0  0.5  0.5   2.
0.5  0.5  0.5   4.

一般如非必要,可以先用自动模式生成k点,VASP会自动生成一个简约化后的k点矩阵,
存于IBZKPT file,可以直接复制里面的数据到KPOINTS file来用,其实这也是这个输入
法的主要用途,为了减少重复自动生成格点的时间。
另一个用途是为了做精确的DOS(Density of status)的计算,由于这类计算所需k点数极
大,通过全手动尽可能的优化k点也就必需了。

L.半手动/线形模式 Strings of k-points for bandstructure calculations
看到啦,对于能带结构的计算,同前面的理由,需要精确的选取k点,在指定的高对称性
方向上生成指定数目的k点。
Line2: 指定两点间生成的k点数 不同于全自动的总k点数
Line2.5: 'L' for Line-mode 表示是线形模式
Line3: 输入格式标识。同前。C or R
Line4-n: 每行描述一个点 格式为 x y z。每两行的点连成一线,在两点间生成指定数
目的k点。每两行两行之间以空行区分(不空的话,VASP可能也认得出,没试过)
比如:
10  ! 10 intersections
Line-mode
rec
  0   0   0   ! gamma
  0.5 0.5 0   ! X

  0.5 0.5 0   ! X
  0.5 0.75 0.25  ! W


ok,那么更常用的方法是让VASP自动生成网格
Line2: 0 !number of k-points = 0 ->automatic generation scheme
(!后面字符为注释)
Line3: A for fully automatic or G for Г/Gamma or M for Monkhorst-Pack
       若都不是这些首字母,则自动切换为高级模式。

A mode 全自动模式,可以看作以Г点为圆心以l为半径做圆,当然各晶格矢不同时,相
应的圆就拉成了椭圆,来确保三个倒格矢方向上覆盖的k点数为l
Line4:length (l)
    Useful values for the length vary between 10 (large gap insulators) and
100 (d-metals).  

进一步的做法是分别指定三个倒格矢方向上的格点数N1,N2,N3。G mode
Line4: N1 N2 N3
Line5: s1 s2 s3 偏移原点的位矢 一般设成 0 0 0 啦。

以及Monkhorst-Pack法,生成的格点不包括Г点,从Г点周围1/2长度处开始取点。
M mode
Line4: N1 N2 N3
Line5: s1 s2 s3 同上

所谓的高级模式,就是用C坐标或者R坐标直接输入新的基矢

c                      c
0.25 0 0               0.25 0 0
0 0.25 0               0 0.25 0
0 0 0.25               0 0 0.25
0.0 0.0 0.0            0.5 0.5 0.5
分别等价于
g                      m
4 4 4                  4 4 4
0 0 0                  0 0 0
因为存在这种等价关系,所以一般也没有必要使用高级模式

好啦,就这些。最后提醒一点,VASP的帮助文档特别提醒,对于六方晶系,不要用M来自
动生成格点,而要用G。

关于tetrahedra方法,帮助文档说用于全手动模式,可选。具体设定原文如下:
In this case, the next line must start with 'T' or 't' signaling that this
connection list is supplied. On the next line after this 'control line' one
must enter the number of tetrahedra and the volume weight for a single
tetrahedron (all tetrahedra must have the same volume). The volume weight
is simply the ratio between the tetrahedron volume and the volume of the
(total) Brillouin zone. Then a list with the (symmetry degeneration) weight
and the four corner points of each tetrahedron follows (four integers which
represent the indices to the points in the k-point list given above, 1
corresponds to the first entry in the list). Warning: In contrast to the
weighting factors for each k-point you must provide the correct 'volume
weight' and (symmetry degeneration) weight for each tetrahedron - no
internal renormalization will be done by VASP!
示例:
Example file
4
Cartesian
0.0  0.0  0.0   1.
0.0  0.0  0.5   1.
0.0  0.5  0.5   2.
0.5  0.5  0.5   4.
Tetrahedra
1  0.183333333333333
6    1 2 3 4
初学VASP(五) 赝势•选择

POTCAR 赝势文件

可以理解为分子力学模拟中的力场文件 但包括的信息更多
VASP4.6将各元素优化的INCAR里的参数也包括在这里了,作为支持PREC的缺省选择
通常各元素的POTCAR已经包括在软件包里了
我们只需要按照POSCAR里的顺序,将各元素的POTCAR按顺序连接起来就可以了
如以下命令:
cat file1 file2 file3 > POTCAR

软件包自带的绝大多数赝势是超软赝势(US-PP)了,但不少元素有两个版本,如何
选取呢?
一个简单的办法是看后缀
标准的没有后缀 _h 硬一点 _s 软一点
_pv,_sv,_d 就是说semi-core的p,s或者d也当做价态处理了
如果是数字的话,表示的可能是不同的半径截距

也可以参考各版本同目录下的V_RHFIN file ,PSCTR file
这两个文件告知该版本的赝势是如何生成的。比如:
V_RHFIN file
Sc: 6p d2 s1
    8  21.   .002000  44.95590 125.   .25E-05 .300  200FCA 12.00000
   .7  1.0   0
  1.0   .0   .5 -320.8847 2.0000
  2.0   .0   .5  -34.4217 2.0000
  2.0  1.0  1.5  -28.2366 6.0000
  3.0   .0   .5   -3.7944 2.0000
  3.0  1.0  1.5   -2.2591 6.0000
  3.0  2.0  2.5    -.1113 2.0000
  4.0   .0   .5    -.2699 1.0000
  4.0  3.0  2.5    -.1000  .0000
第一行是注释行 给出基本的信息
第二行是最重要的控制行
    8  21.   .00 2000  44.95590 125.   .25E-05 .300  200 F CA 12.00000
    J   Z   XION    N  AM         H    DELRVR   PHI  NC1 | CH QCOR
                                                         |
                                                     GREEN

J - 轨道数  Z - 原子序数    XION - 离子化程度 一般设为0 N - 格点数
AM - 原子质量   H - 决定格点间距    DELRVR - 自洽收敛标准
PHI - 线性拟合参数 NC1 - 最大自洽循环次数 GREEN - 是否存在初始的势
CH - 交换相关能(XC)类型
      Slater-XC
    HL Hedin Lundquist (1971)
    CA Ceperly and Alder parameterized by J.Perdew and Zunger
    WI Wigner interpolation
    PB Perdew -Becke
    PW Perdew -Wang 86
    LM Langreth-Mehl-Hu
    91 Perdew -Wang 91
QCOR - 非价键电子数(core electrons)
第三行开始是每个轨道的具体参数,依次为
n l j(=l±1/2) 原子轨道能 占有率

PSCTR file of LDA/H1.25
   TITEL  = US H
   LULTRA =    T    use ultrasoft PP ?
   RWIGS  =    0.57  nn distance ! Wigner-Seitz radius

   RCLOC  =   .65
   NE     =   100
   LCOR   =   .TRUE.
   QCUT   =   -1
   RMAX   = 3.0 ! core radius for proj-oper

   Description
l     E      TYP RCUT    TYP  RCUT(cutoff radius)
0   0         15   0.80  23   1.25
0   0.5       15   0.80  23   1.25
1  -0.2       15   0.80  23   1.25
最重要的地方上面已经用颜色标出来啦:)
说明一下,TYP是指赝势的类型,RCUT是半径截距,TYP可取的值如下:
正则
1 BHS
2 TM
3 VAN
6 XNC
7 RRKJ wave function possibly with node
15 RRKJ wave function strictly no node
非正则 +8

最后一个问题是LDA or GGA。貌似没有定论目前。
这个最好是两个一起做做看啦。或者看文献别人验证过哪个数据好。
其实据说目前最好的是PAW(P.E.Blochl,Phys.Rev.B 50,17953(1994).,Phys.Rev.B 59,
1758(1999).),PP已经落伍了,不过好像我们用的VASP不带这个,就不展开讨论了。



转自:http://qmlab.bjut.edu.cn/bbs/rea ... ;toread=&page=1
感谢wzhao

[ Last edited by 顺水 on 2009-8-21 at 16:11 ]

 返回小木虫查看更多

今日热帖
  • 精华评论
  • 顺水

    初学VASP(六) 最重要的INCAR参数

    INCAR是决定how to do 的文件

    限于能力,只对部分最基本的一些参数(>,没有这个标志的参数都是可以不出现的)
    详细说明,在这里只是简单介绍这些参数的设置,详细的问题在后文具体示例中展开。
    部分可能会干扰VASP运行的参数在这里被刻意隐去了,需要的同学还是请查看VASP自带
    的帮助文档原文。

    参数列表如下:

    >SYSTEM name of System
        任务的名字 ***

    >NWRITE verbosity write-flag (how much is written)
        输出内容详细程度 0-3 缺省2
        如果是做长时间动力学计算的话 最好选0或1(首末步/每步核运动输出)
        据说也可以结合shell的tail或grep命令手动输出

    >ISTART startjob:
        restart选项 0-3 缺省0/1 for 无/有 前次计算的WAVECAR(波函数)
        1 'restart with constant energy cut-off'
        2 'restart with constant basis set'
        3 'full restart including wave function and charge prediction'

    ICHARG charge: 1-file 2-atom 10-const Default:if ISTART=0 2 else 0

    ISPIN spin polarized calculation (2-yes 1-no) default 2
       
    MAGMOM initial mag moment / atom Default NIONS*1

    INIWAV initial electr wf. : 0-lowe 1-rand
        Default 1 only used for start jobs (ISTART=0)  

    IDIPOL calculate monopole/dipole and quadrupole corrections
        1-3 只计算第一/二/三晶矢方向 适于slab的计算
        4   全部计算 尤其适于就算孤立分子

    >PREC precession: medium, high or low(VASP.4.5+ also: normal, accurate)
        Default: Medium VASP4.5+采用了优化的accurate来替代high,所以一般不推荐使用
        high。不过high可以确保'绝对收敛',作为参考值有时也是必要的。
        同样受推荐的是normal,作为日常计算选项,可惜的是说明文档提供的信息不足。
        受PREC影响的参数有四类:ENCUT; NGX,NGY,NGZ; NGXF, NGYF, NGZF; ROPT
        如果设置了PREC,这些参数就都不需要出现了
        当然直接设置相应的参数也是同样效果的,这里不展开了,随后详释

    >ENCUT energy cutoff in eV : default taken from POTCAR-file
        important! 重要到几乎最好不要手工去设置
        除非文献告诉你要用多少,或者经过结果可靠性的验证
        当然,为了测试一下提交的任务,也不妨先设个较小的值
    附加说明:
        当且仅当POTCAR里头没有设置ENCUT时(其实貌似没有才是常态),才受PREC设置影
    响从POTCAR里找出相应的ENMAX/ENMIN值来设置。
        PREC=   Low     Medium  Accurate High
        ENCUT=  ENMIN   ENMAX   ENMAX    130%ENMAX
        对于多个元素的POTCAR不同的ENMAX/ENMIN,都取最大值

    >NGX,NGY,NGZ: FFT mesh for wavefunctions
    >NGFX, NGFY, NGFZ: FFT mesh for charges
        也是两类重要的最好不要去动的参数,PREC设置将从POTCAR中自动读取。
        PREC=High,Accurate 2倍值,用来避免wrap around errors得到精确解
        PREC=Low,Medium,Normal 3/4 也已经足够精确到 1 meV/atom

    >LREAL: Default= .FALSE.
        赝势的非局域部分用到的一个积分在倒格空间或者实空间都可以求值。这个选项就
    是决定是在哪个空间里求。在倒格空间里,采用平面波基组求解,在实空间里,采用积
    分球求解。
        缺省是.FALSE,即不在实空间求。但效率会低一些。
        其他选项是 O or On,A or Auto 和.True.。
        On和.TRUE.的差别在于是否使用King-Smith算法优化,Auto则自动选择,推荐。
       
    >ROPT: 优化控制每个核周围的积分球内的格点数,LREAL=Auto or On
        For LREAL=On   
            PREC= Low 700 points in the real space sphere ( ROPT=0.67)
            PREC= Med 1000 points in the real space sphere ( ROPT=1.0)
            PREC= High 1500 points in the real space sphere ( ROPT=1.5)
        For LREAL=Auto
            PREC= Low accuracy 1e-2 ( ROPT=0.01)
            PREC= Med accuracy 2e-3  ( ROPT=0.002)
            PREC= High accuracy 2e-4  ( ROPT=2E-4)

    >NELM, NELMIN and NELMDL nr. of electronic steps
        Default
    最大电子自洽循环次数  NELM = 60
    最小次数              NELMIN = 2
    弛豫次数              NELMDL = -5  if ISTART=0, INIWAV=1, and IALGO=8
                                   -12 if ISTART=0, INIWAV=1, and IALGO=48
                                   0   else
    如果初始的波函数采取随机赋值,即ISTART=0, INIWAV=1,那么很可能开始的值比较离
    谱,那么在第一步核运动循环之前采用NELMDL(负值)步的非自洽(保留初始的H)步计算将
    减少计算所需的时间。
    如果NELMDL取正值,将在每次核运动之后附加指定次数的弛豫步,目前不知道可以干嘛

    >EDIFF 电子SC循环的收敛精度 缺省:1e-4
        注意,即使EDIFF=0,NELM步也会执行

    >EDIFFG 核运动的收敛精度 缺省:EDIFF*10 (总能量)
        EDIFFG<0 则在所有的力都小于EDIFFG时停止
        EDIFFG=0 则在NSW步后停止
        此参数不支持MD,仅用于Relax

    >NSW 指定核运动步数 缺省: 0

    NBLOCK and KBLOCK inner block; outer block
        Default  NBLOCK = 1 KBLOCK = NSW

    >IBRION ionic relaxation: -1-Fixed 0-MD 1-quasi-New 2-CG 3-Damp 5-freq
        Default if NSW=0 or 1 IBRION=-1 else IBRION=0
        这个参数是和ISIF;IALGO/ALGO一起决定怎么算的最重要的参数
        1-3 是三种Relax的方法,受ISIF决定是否固定核位置、晶胞大小和形状
        0 是标准的ab-initio MD,不受ISIF影响,即不改变晶胞大小和形状
        5 大概是和0差不多吧?支持Hessian和Freq(仅Г点)的计算以及部分固定的MD
        详细的要在示例中具体情况具体分析了。

    >ISIF calculate stress and what to relax
        Default  if IBRION=0 (MD) 0 else 2
        ISIF│calculate │  calculate   │relax │   change   │  change
            │  force   │stress tensor │ions  │ cell shape │cell volume
        ──┼─────┼───────┼───┼──────┼──────
        0   │  yes     │ no           │yes   │ no         │no
        1   │  yes     │ trace only   │yes   │ no         │no
        2   │  yes     │ yes          │yes   │ no         │no
        3   │  yes     │ yes          │yes   │ yes        │yes
        4   │  yes     │ yes          │yes   │ yes        │no
        5   │  yes     │ yes          │no    │ yes        │no
        6   │  yes     │ yes          │no    │ yes        │yes
        7   │  yes     │ yes          │no    │ no         │yes
    Trace only means that only the total pressure

    IWAVPR prediction of wf.: 0-non 1-charg 2-wave 3-comb
        Default  if IBRION=0 (MD) 2
                 if IBRION=1,2 (relaxation) 1
                 else (static calculation) 0
        以上选项保存TMPCAR +10 则全部使用内存,不保存此文件
        IWAVPR determines how wave functions and/or charge density are
        extrapolated from one ionic configuration to the next configuration.

    >ISYM symmetry: 0-nonsym 1-usesym 是否使用对称性 Default 1
       
    SYMPREC determines precision of the positions in POSCAR file. Default 1e-5

    LCORR Harris-correction to forces. Default .TRUE.

    >POTIM time-step for ion-motion (fs)
        Default   
         IBRION=0 (MD) no default,必须指定,MD每步步长
         IBRION=1,2,3 (relaxation) 0.5 最小化的'scaling constant',尤其是IBRION=1

    >TEBEG, TEEND temperature during run (MD有效)
        Default: TEBEG = 0 TEEND = TEBEG
        注意VASP的温度定义与实际温度有细微的差别,所以
        TEBEG=T×(N-1)/N  T为实际温度,N为原子数

    SMASS 控制MD中的速度模拟方法
    default -3 微正则系综(总自由能不变)
    -2 保持初速度不变
    -1 每NBLOCK步调整速度,来保证动能连续
    >=0 Nosé算法模拟正则系综,(不懂-,-)

    NPACO and APACO
    NPACO : number of slots for pair correlation (PC) function. Default 256
    APACO : maximum distance for the evaluation of PC function in A. Default 16
    简单说就是在不超过APACO的NPACO个距离上求成对相关函PCF

    RWIGS Wigner-Seitz半径 DOS计算用

    >NELECT 总电子数
        如果系统不是电中性的就必须设置,所带电荷作为均一的背景电子气考虑

    NUPDOWN default不考虑电子自旋态改变的可能

    EMIN, EMAX energy-range for DOSCAR file

    >ISMEAR part. occupancies: -5 tet with Blochl -4-tet -1-fermi 0-gaus >0 MP
    采用所谓部分占有波函数,用一个函数来平滑积分,尤其是对于金属体系可减少k点
    Default ISMEAR = 1 如果在KPOINTS里使用了tetrahedra方法 推荐ISMEAR=5

    SIGMA determines the width of the smearing in eV
    Default SIGMA = 0.2

    >ALGO algorithm: Normal (Davidson) | Fast (mixed)| Very_Fast (RMM-DIIS)
    >IALGO algorithm: use only 48 (RMM-DIIS) or 38(Davidson) or 8(CG)
    Default IALGO = 38 for VASP4.5
    算法是最重要的参数之一。一般VASP推荐使用的是以上三种算法,一般来说8/38是初期
    比较快收敛,在接近平衡时采用48较快,在初期或MD时使用48可能会遇到不收敛的情况
    。也可以使用ALGO参数来替代IALGO,设置Fast,VASP会先用38,再自动切换到48。
    各种算法只要收敛,结果应该一致。
    另一个可能有用的选项是-1。不进行实际的计算,只对重要的步骤做计算测试,并将测
    试得到的各部分耗时输出在OUTPUT里。

    VOSKOWN use VWN interpolation 算法,default 0 不用,如果使用了PW91或者需要计
    算磁性质,不妨设为1 用

    mixing tag & MAXMIX
        IMIX = type of mixing
        AMIX = linear mixing parameter
        AMIN = minimal mixing parameter
        BMIX = cutoff wave vector for Kerker mixing scheme
        AMIX_MAG = linear mixing parameter for magnetization
        BMIX_MAG = cutoff wave vector for Kerker mixing scheme for mag.
        WC = weight factor for each step in Broyden mixing scheme
        INIMIX = type of initial mixing in Broyden mixing scheme
        MIXPRE = type of preconditioning in Broyden mixing scheme
        MAXMIX = maximum number steps stored in Broyden mixer
    Default
    for US-PP non-magnetic
    IMIX  =     4                    
    AMIX  =     0.8        
    BMIX  =     1.0        
    WC    =     1000.  
    INIMIX =    1  
    MIXPRE =    1
    MAXMIX =    -45
    值得注意的是,在MD或者Relax的时候,设置MAXMIX(>0,一般约3倍的电子SC步数),可能
    会大大减少核运动步数。 但是同时会增加对内存的要求。

    LWAVE,LCHARG and LVTOT create WAVECAR/CHGCAR/LOCPOT
    LELF create ELFCAR
    LORBIT create PROOUT
    输出文件的选项

    NPAR 并行计算band的节点数,每一个节点计算一个band当然可以提高并行效率,减少通
    讯量,不过貌似现在硬件的主要限制还是内存,而这个选项的使用可能会大幅增加内存
    的需求

    >NBANDS 总能带数。
        之所以把它放在最后,是因为它对于解决内存需求的重要性。计算需要大量的
    能带(空带),至少要1个空带(否则VASP会给出警告)。一般NBANDS=NELECT/2+NIONS/2
    以上可得到较精确的结果,如果内存不够就只好减少NBANDS,在牺牲精度和体系大小之
    间平衡了。

    最后提示一下大多数参数的首字母代表了参数的性质
    I 初始化 L 逻辑开关 E 能量 N 数目 T 温度
    便于记忆,

  • 顺水

    初学VASP(七) VASP程序的编译

    下面以编译VASP4.4.5版本为例,编译更新的版本VASP4.5.5、VASP4.6和VASP5.0(即将
    发布)的步骤与此相同。

    1、  所需文件和程序

    VASP源代码:vasp.4.4.5.tar.gz和vasp.4.lib.tar.gz

    数学库:LAPACK和BLAS (http://www.netlib.org/

    或mkl(配合intel的fotran编译器用),

    或ATLAS (http://math-atlas.sourceforge.net/  

    或Lib GOTO (http://www.cs.utexas.edu/users/flame/goto/  

    Fortran编译器:PGI fortran 至少4.0以上版本(http://www.pgroup.com/

    或Intel的 ifc (8.0以上版本是ifort,
    http://www.intel.com/software/products/compilers/flin/ ,前者可以从网站上下载
    到15天的试用版本,后者可以从网站下载到免费的版本。

    2、下面采用PGI fortan编译器pgf90、ATLAS数学库对VASP4.4.5进行编译

    这里假定已经安装好了fortran编译器,所有文件都放在/home/xxxx/VASP_SRC目录下,
    机器的操作系统是Linux: Redhat9.0。

    a) 从http://math-atlas.sourceforge.net/下载atlas3.6.0_Linux_P4SSE2.tar.gz,并
    用如下命令解压:tar xzvf atlas3.6.0_Linux_P4SSE2.tar.gz

    解压后得到一个目录Linux_P4SSE2,在此目录下有个lib子目录,该lib子目录中的文件
    为libatlas.a, libcblas.a, libf77blas.a, liblapack.a, 这些就是编译vasp时所需要
    的数学库文件之一。

    b) 用如下命令解压vasp.4.4.5.tar.gz和vasp.4.lib.tar.gz:

       tar  xzvf  vasp.4.4.5.tar.gz

       tar  xzvf  vasp.4.lib.tar.gz

    解压后分别得到目录vasp.4.4和vasp.4.lib,目录vasp.4.4中文件是vasp的主要源代码
    ,vasp.4.lib是编译vasp时需要的一些特定的数学库程序,在这两个目录中都有编译时
    所用的makefile文件,针对机器和fortran编译器,选择相应的makefile。

    c) 进入vasp.4.lib目录,选择makefile.linux_pg,并把它拷贝成makefile,然后键入m
    ake命令开始编译。整个命令如下:

       cd   vasp.4.lib

       cp   makefile.linux_pg   makefile

       make

    编译成功后,得到libdmy.a文件。

    d) 退出vasp.4.lib目录,进入vasp.4.4目录,选择makefile.linux_pg,并把它拷贝成m
    akefile,编辑makefile文件,通过修改LIB变量的赋值而采用基于ATLAS的数学库文件,
    修改的地方和方法是:

    在第87和88行前加上#,把这两行注释掉,然后去掉第91,92和93行前的#。

    修改前和后的内容为分别为:

    LIB     = -L../vasp.4.lib -ldmy ../vasp.4.lib/linpack_double.o \

         ../vasp.4.lib/lapack_double.o -L/usr/local/lib /usr/local/lib/libblas.a

    #

    # the following lines should allow you to link to atlas based blas

    #LIB     = -L../vasp.4.lib -ldmy ../vasp.4.lib/linpack_double.o \

    #     ../vasp.4.lib/lapack_double.o -L/usr/local/lib \

    #     -L$(HOME)/archives/BLAS_OPT/ATLAS/lib/Linux_ATHLONTB/ -lf77blas –latla
    s

    #LIB     = -L../vasp.4.lib -ldmy ../vasp.4.lib/linpack_double.o \

    #     ../vasp.4.lib/lapack_double.o -L/usr/local/lib
    /usr/local/lib/libblas.a

    #

    # the following lines should allow you to link to atlas based blas

    LIB     = -L../vasp.4.lib -ldmy ../vasp.4.lib/linpack_double.o \

         ../vasp.4.lib/lapack_double.o -L/usr/local/lib \

         -L../Linux_P4SSE2/lib/ -lf77blas -latlas

    修改后保存makefile文件,键入make命令开始编译vasp。整个命令为:

       cd  ..

       cd  vasp.4.4

       cp  makefile.linux_pg  makefile

       编辑修改makefile文件

       make

    编译成功后,就可以得到VASP的可执行文件vasp。

    e) 以root帐号登录机器,把成功编译VASP后得到的vasp放到/bin目录下,则任何一个普
    通用户都可以使用vasp。此时vasp可以当成于一个linux的命令来使用了,不再需要把va
    sp拷贝到当前的计算目录下。

  • freshgirl

    好总结,收藏之

  • gavinliu7390

    a good help!

  • hcq123

    不推荐不行 啊,谢谢!

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓