请选择 进入手机版 | 继续访问电脑版

计算化学公社

 找回密码
 现在注册!
查看: 664|回复: 8

[VASP] 基于VASP的Periodic NBO编译和简单测试

[复制链接]

36

帖子

1

威望

370

eV
积分
426

Level 3 能力者

发表于 2019-2-12 21:50:19 | 显示全部楼层 |阅读模式
本帖最后由 啦啦黑还黑 于 2019-3-9 15:20 编辑

欢迎对第一性原理计算感兴趣的同学关注VASP免费系列教程:https://space.bilibili.com/45550176/channel/detail?cid=52529
加入理论与计算化学研习社QQ群:905699144
近期会陆续推出第一性原理计算 电子结构分析系列讲座。


基于VASP的SSAdNDP的编译和简单测试贴:
http://bbs.keinsci.com/thread-12385-1-1.html
基于Crystal的Periodic NBO的编译和简单测试贴:
http://bbs.keinsci.com/thread-12111-1-1.html

参考文献:Dunnington, B. D.; Schmidt, J. R. J. Chem. Theory Comput., 2012, 8, 1902–1911.

下载网站:https://schmidt.chem.wisc.edu/nbosoftware


先下载:
periodic_nbo_v.1.1.tgz
对于VASP用户还需要下载:
projection_v.1.1.2.tgz
对于Crystal用户还需要下载:
CRYSTAL_interface.tgz


注:对于crystal用户可以参考http://bbs.keinsci.com/thread-12111-1-1.html帖子中的编译方法。




编译之前的准备文件:
  • VASP程序包,从vasp.at网站下载,目前的ssNBO和ssAdNDP仅完美支持vasp.5.4.1.24Jun15之前的版本,对于vasp.5.4.1.05Feb16和5.4.4版经测试发现在patch补丁的时候报错,估计对补丁文件稍作修改亦可使用,暂时我还没有做测试。5.4和5.3的编译方法有很大的不同,建议使用5.4.1.15年版,编译方便非常多。
  • periodic_nbo_v.1.1.tgz
  • projection_v.1.1.2.tgz
  • intel2013或之前版本的intel mkl编译器。由于程序最终更新是在2015年,且程序作者的mkl版本太老,如果不用老的编译器,很多代码要做修改,参考(http://bbs.keinsci.com/thread-12111-1-1.html)



我编译使用的是:
composer_xe_2013_sp1.2.144,

vasp.5.4.1.24Jun15


第一步:重新编译VASP
首先要重新编译VASP,编译VASP的方法参考:


自己的电脑上编译: http://bbs.keinsci.com/thread-11812-1-1.htmlhttps://www.bilibili.com/video/av39616222
服务器上编译: http://bbs.keinsci.com/thread-11111-1-1.htmlhttps://www.bilibili.com/video/av33956717


编译之前需要多一步:
把projection_v.1.1.2.tgz解压得到的,proj_VASP_5.4.patch和projection_output.F文件copy到vasp的src/目录下:
patch < proj_VASP_5.4.patch
注:
对于VASP5.3还需要在~/src/.objects文件的SOURCE里添加projection_output.o,VASP5.4不需要添加。



第二步:编译projection.exe
这里我是用的intel2013编译器,测试发现intel2015以后的编译器都无法成功。
Makefile文件不需要做修改,直接make,可以得projection.exe



第三步:编译nbo.exe
编译之前需要修改Makefile.template文件
由于作者使用的intel编译器较老,下面这个默认的路径在intel2013里没有:
MODULE_PATH=/opt/intel/mkl/10.0.3.020/lib/em64t
需要替换成MODULE_PATH=/opt/intel/composer_xe_2013_sp1.2.144/mkl/include/intel64/lp64/
另外LDFLAGS= 参数也需要做相应修改,最终我编译成功的
Makefile.template文件:
  1. MODULE_PATH=/opt/intel/composer_xe_2013_sp1.2.144/mkl/include/intel64/lp64/
  2. MKL_LIB=/opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64
  3. FC=ifort
  4. LD=ifort
  5. #FFLAGS=-check all -check noarg_temp_created -g -traceback -warn unused -I $(MODULE_PATH)
  6. FFLAGS= -vec-report0 -openmp -I $(MODULE_PATH)
  7. LDFLAGS=-L${MKL_LIB} -lmkl_core -lmkl_intel_lp64 -lmkl_sequential ${MKL_LIB}/libmkl_blas95_lp64.a ${MKL_LIB}/libmkl_lapack95_lp64.a -openmp
复制代码


第四步:测试Silicon的例子

  • INCAR输入文件里添加LNBO = True,如果VASP的用于投影波函数文件编译成功,计算完成会产生一个wavefunction.dat文件。
  • 然后准备高斯基组文件(Gaussian94 format)basis.inp,可以从ESML网站上生成:https://bse.pnl.gov/bse/portal,这里作者使用的是3-21G(d) basis set。
  • 运行./projection.exe basis.inp wavefunction.dat NBO.out,将平面波基组投影到高斯基组,会生成NBO.out,NBO_mat.out,band_spillover.out,spillover.out文件。
  • 运行./nbo.exe NBO.out,NBO计算结果打印到屏幕上。




可以添加nbo.config文件,控制判断孤对电子和键的阈值,默认是LP 1.60,BD 1.85。并且还可以进一步输出格点文件。
  1. #####NBO search parameters####
  2.   1.60   #Occupancy cutoff for one-center NBOs
  3.   1.85   #Occupancy cutoff for two-center NBOs
  4. #####Visualization output control parameters####
  5.      F   #Control over printing of .cube files for visualization.
  6.      F   #density - Whether density (T) or wavefunctions (F) are visualized.
  7.   0 -1   #vis_start vis_end - Start and end of NBOs to print .cube files for
  8. 0 0 0   #mesh - Number of points along each lattice vectors to use in .cube files
  9. 1 1 1   #box_int - Number of unit cell to use for .cube file. See READ_ME.txt for guidance
  10.   0.00   #origin_fact - Shift of the origin for .cube file. See READ_ME.txt for guidance
复制代码


最终输出的信息比NBO6.0少一些:由于硅1s轨道在赝势里,且价层电子全部成键,所以没有看到NBO输出LP的信息,只有BD和RYD信息。
  1. *******************************
  2. **** NATURAL BOND ORBITALS ****
  3. *******************************

  4. BD* Si           1 Si           2
  5. Occ:   5.0691199E-02 Polarization:   50.00000     %   50.00000     %
  6.    Hybrid 1:   s%   25.000001907  p%   74.601173401  d%    0.398826480  f%    0.000000000
  7.   -0.00000   0.00057   0.00110   0.00110   0.00110  -0.00358   0.00147   0.00147   0.00147  -0.49999  -0.49867  -0.49867  -0.49867  -0.03646  -0.03646  -0.03646   0.00000  -0.00000
  8.    Hybrid 2:   s%   24.999996185  p%   74.601173401  d%    0.398826689  f%    0.000000000
  9.    0.00000  -0.00057   0.00110   0.00110   0.00110   0.00358   0.00147   0.00147   0.00147   0.49999  -0.49867  -0.49867  -0.49867   0.03646   0.03646   0.03646   0.00000  -0.00000

  10. BD Si           1 Si           2
  11. Occ:    1.938513     Polarization:   50.00000     %   50.00000     %
  12.    Hybrid 1:   s%   25.000001907  p%   74.601173401  d%    0.398826480  f%    0.000000000
  13.    0.00000  -0.00057  -0.00110  -0.00110  -0.00110   0.00358  -0.00147  -0.00147  -0.00147   0.49999   0.49867   0.49867   0.49867   0.03646   0.03646   0.03646  -0.00000   0.00000
  14.    Hybrid 2:   s%   24.999996185  p%   74.601173401  d%    0.398826689  f%    0.000000000
  15.    0.00000  -0.00057   0.00110   0.00110   0.00110   0.00358   0.00147   0.00147   0.00147   0.49999  -0.49867  -0.49867  -0.49867   0.03646   0.03646   0.03646   0.00000  -0.00000

  16. ...
  17. ...

  18. ********************************
  19. **** NATURAL RYDBERG STATES ****
  20. ********************************

  21. RYD Si           1
  22. Occ:  1.5159165E-03
  23.   Hybridization   s%    0.000000000  p%    0.000000000  d%  100.000000000  f%    0.000000000
  24.    0.00000  -0.00000  -0.00000   0.00000  -0.00000  -0.00000   0.00000  -0.00000   0.00000  -0.00000  -0.00000   0.00000   0.00000   0.00000   0.00000  -0.00000  -0.17421   0.98471

  25. RYD Si           1
  26. Occ:  1.5159191E-03
  27.   Hybridization   s%    0.000000001  p%    0.000000000  d%  100.000000000  f%    0.000000000
  28.    0.00000   0.00000  -0.00000   0.00000  -0.00000   0.00000   0.00000   0.00000  -0.00000  -0.00000  -0.00000  -0.00000   0.00000   0.00000   0.00000  -0.00000   0.98471   0.17421
复制代码


ssAdNDP的编译和使用方法和ssNBO非常类似,网站如下:

http://ion.chem.usu.edu/~boldyrev/ssadndp.php




评分

参与人数 2威望 +1 eV +5 收起 理由
obaica + 5 我很赞同
sobereva + 1

查看全部评分

12

帖子

0

威望

81

eV
积分
93

Level 2 能力者

发表于 2019-3-4 22:19:16 | 显示全部楼层
师兄您好,我想问一下关于这个nbo.config配置文件中一些参数的设置要如何设置啊?比如这个vis_start vis_end - Start and end of NBOs to print .cube files for,这个不能全输出吗?这些Visualization output control parameters的设置有什么依据吗?

36

帖子

1

威望

370

eV
积分
426

Level 3 能力者

 楼主| 发表于 2019-3-5 00:24:03 | 显示全部楼层
美美pig 发表于 2019-3-4 22:19
师兄您好,我想问一下关于这个nbo.config配置文件中一些参数的设置要如何设置啊?比如这个vis_start vis_en ...

说明文件写的挺清楚的。
in the nbo.config file. In order they are:
  1. density - [T or F] Whether to grid out the density or the wavefunction.
  2. vis_start vis_end - [Two integers] The beginning and end of the range of NBO's
     to plot.
  3. mesh - [Three integers] Resolution of grid point along each lattice direction.
     Note this is of the larger box.
  4. box_int - [Three integers] How many total lattice cell vector lengths to
     include along each side of the large box for orbital visualization.
  5. origin_fact - [One real] How to shift the origin of the large box with respect to the
     central unit cell origin.

Some useful values for box size:
  -To include the central unit cell along with half of each surrounding unit cell
   for orbital visualization:
   bulk_int = 2 2 2
   origin_fact = -0.5
  -To only incloud the central unit cell for orbital visualization (useful for
   VASP supercells):
   bulk_int = 1 1 1
   origin_fact = 0.0

density 控制输出波函数/电荷密度
vis_start vis_end 控制你想要看的NBO轨道序号,就是nbo_results文件里,LP,BD..这些一个一个排的。

12

帖子

0

威望

81

eV
积分
93

Level 2 能力者

发表于 2019-3-5 15:38:33 | 显示全部楼层
啦啦黑还黑 发表于 2019-3-5 00:24
说明文件写的挺清楚的。
in the nbo.config file. In order they are:
  1. density - [T or F] Whethe ...

恩恩,谢谢师兄

12

帖子

0

威望

81

eV
积分
93

Level 2 能力者

发表于 2019-3-6 22:03:14 | 显示全部楼层
啦啦黑还黑 发表于 2019-3-5 00:24
说明文件写的挺清楚的。
in the nbo.config file. In order they are:
  1. density - [T or F] Whethe ...

师兄,我今天试着算了一下,采用默认的默认是LP 1.60,BD 1.85,出现了下边的问题:
Found a threshhold cutoff above 1 e for a spin polarized calculation
One center:    1.60
Two center:    1.85
                This would be impossible. Please check nbo.config
然后,我调小了,就好了,我想问一下这个参数的选择有什么依据吗?不是很理解这个参数的意义

265

帖子

0

威望

552

eV
积分
817

Level 4 (黑子)

发表于 2019-3-6 22:44:44 来自手机 | 显示全部楼层
美美pig 发表于 2019-3-6 22:03
师兄,我今天试着算了一下,采用默认的默认是LP 1.60,BD 1.85,出现了下边的问题:
Found a threshhold ...

我猜这是轨道占据数的cutoff吧?小于1.60(1.85)程序就不认为是LP(BD)了。但这是对闭壳层体系而言的。你算的是开壳层,所以这些cutoff应该取其半?

36

帖子

1

威望

370

eV
积分
426

Level 3 能力者

 楼主| 发表于 2019-3-7 00:16:17 | 显示全部楼层
美美pig 发表于 2019-3-6 22:03
师兄,我今天试着算了一下,采用默认的默认是LP 1.60,BD 1.85,出现了下边的问题:
Found a threshhold ...

楼上说的没错,开壳层默认的参数是LP 0.80, BD 0.93,可以适当调整。

12

帖子

0

威望

81

eV
积分
93

Level 2 能力者

发表于 2019-3-7 09:22:16 | 显示全部楼层
granvia 发表于 2019-3-6 22:44
我猜这是轨道占据数的cutoff吧?小于1.60(1.85)程序就不认为是LP(BD)了。但这是对闭壳层体系而言的。你 ...

好的,这次懂了,感谢!

12

帖子

0

威望

81

eV
积分
93

Level 2 能力者

发表于 2019-3-7 09:22:38 | 显示全部楼层
啦啦黑还黑 发表于 2019-3-7 00:16
楼上说的没错,开壳层默认的参数是LP 0.80, BD 0.93,可以适当调整。

明白了,谢谢师兄!
您需要登录后才可以回帖 登录 | 现在注册!

本版积分规则

手机版|北京科音自然科学研究中心|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949-1号 )

GMT+8, 2019-3-22 16:57 , Processed in 0.159558 second(s), 25 queries .

快速回复 返回顶部 返回列表