计算化学公社

 找回密码 Forget password
 注册 Register
Views: 31877|回复 Reply: 20
打印 Print 上一主题 Last thread 下一主题 Next thread

[其它程序] DFTB+使用入门:输入文件的Hamiltonian部分写法

  [复制链接 Copy URL]

82

帖子

3

威望

1461

eV
积分
1603

Level 5 (御坂)

本帖最后由 ChemiAndy 于 2018-3-22 06:29 编辑

有些初学DFTB的朋友表示对DFTB+的输入文件设置有些困惑,我这里分享一些经验。

首先说一下DFTB,SCC-DFTB这几个概念的不同。DFTB是指基于密度泛函的紧束缚模型,这个模型是50年代提出的用于周期固体体系一种近似模型,使用“轨道能+排斥势”表示总能并通过拟合高级计算结果获取经验参数的一种方法。后来发现这个模型用于分子体系计算非常节约时间,可惜键长、生成热等性质误差太大。这可以通过进一步增加含参数的势函数以提高精确性。Elsner等人提出了基于电荷自洽的DFTB:SCC-DFTB。这个模型尝试在原DFTB的能量式后面增加一个多项式,这个多项式是关于原子电荷的泰勒展开,用于修正DFTB对交换、相关作用的误差。然后用高水平DFT计算结果去训练(拟合)这个多项式的参数。这个多项式展开到2级叫SCC-DFTB2,展开到3级叫SCC-DFTB3。其中还分加不加氢键校正(加氢键应该使用DampXH=Yes并设置gamma参数DampXHExponent)SCC-DFTB3还分ThirdOrder和ThirdOderfull两种,其中ThirdOrder只包含对角元项(on-site),而ThirdOrderFull还包括交叉项。正常的SCC-DFTB3应该使用ThirdOrderFull,并且正确给出HubbardDerivs。

下面是各种不同方法的Hamiltonian部分的写法:(注意尽量使用最新方法即SCC-DFTB3-h)

SCC-DFTB2
  1. Hamiltonian = DFTB {
  2.   SCC = Yes
  3.   SlaterKosterFiles = Type2FileNames {
  4.     Prefix = "/home/user/bin/dftb/1.2/slako/mio-0-1/"
  5.     Separator = "-"
  6.     Suffix = ".skf"
  7.   }
  8.   charge = 1.0  // not neccessary your case, default 0
  9.   MaxAngularMomentum {
  10.     C = "p"
  11.     N = "p"
  12.     H = "s"
  13.     O = "p"
  14.   }
  15.   Filling = Fermi {
  16.     Temperature [Kelvin] = 50
  17.   }
  18.   DampXH = No
  19. }
复制代码

SCC-DFTB2-h (带氢键校正)
  1. Hamiltonian = DFTB {
  2.   SCC = Yes
  3.   SlaterKosterFiles = Type2FileNames {
  4.     Prefix = "/home/user/bin/dftb/1.2/slako/mio-0-1/"
  5.     Separator = "-"
  6.     Suffix = ".skf"
  7.   }
  8.   charge = 1.0   // not neccessary your case, default 0
  9.   MaxAngularMomentum {
  10.     C = "p"
  11.     N = "p"
  12.     H = "s"
  13.     O = "p"
  14.   }
  15.   Filling = Fermi {
  16.     Temperature [Kelvin] = 50
  17.   }
  18.   DampXH = Yes
  19.   DampXHExponent = 4.53
  20. }
复制代码
SCC-DFTB2-h-dispersion 带氢键校正并加色散校正
  1. Hamiltonian = DFTB {
  2.   SCC = Yes
  3.   SlaterKosterFiles = Type2FileNames {
  4.     Prefix = "/home/user/bin/dftb/1.2/slako/mio-0-1/"
  5.     Separator = "-"
  6.     Suffix = ".skf"
  7.   }
  8.   charge = 1.0
  9.   MaxAngularMomentum {
  10.     C = "p"
  11.     N = "p"
  12.     H = "s"
  13.     O = "p"
  14.   }
  15.   Filling = Fermi {
  16.     Temperature [Kelvin] = 50
  17.   }
  18.   Dispersion = SlaterKirkwood {
  19.     PolarRadiusCharge = HybridDependentPol {
  20.       C = {
  21.         CovalentRadius [Angstrom] = 0.8
  22.         HybridPolarisations [Angstrom^3, Angstrom,] = {
  23.           1.382 1382 1.382 1.064 1.064 1.064 3.8 3.8 3.8 3.8 3.8 3.8 2.50
  24.         }
  25.       }
  26.       H = {
  27.         CovalentRadius [Angstrom] = 0.4
  28.         HybridPolarisations [Angstrom^3, Angstrom,] = {
  29.           0.386 0.386 0.000 0.000 0.000 0.000 3.5 3.5 3.5 3.5 3.5 3.5 0.80
  30.         }
  31.       }
  32.       N = {
  33.         CovalentRadius [Angstrom] = 0.8
  34.         HybridPolarisations [Angstrom^3, Angstrom,] = {
  35.           1.030 1.030 1.090 1.090 1.090 1.090 3.8 3.8 3.8 3.8 3.8 3.8 2.82
  36.         }
  37.       }
  38.       O = {
  39.         CovalentRadius [Angstrom] = 0.75
  40.         HybridPolarisations [Angstrom^3, Angstrom,] = {
  41.           0.560 0.560 0.000 0.000 0.000 0.000 3.8 3.8 3.8 3.8 3.8 3.8 3.15
  42.         }
  43.       }
  44.     }
  45.   }
  46.   DampXH = Yes
  47.   DampXHExponent = 4.53
  48. }
复制代码

(SCC-DFTB3-h 见二楼)


评分 Rate

参与人数
Participants 6
eV +31 收起 理由
Reason
rainlei + 3 好物!
丁越 + 5 赞!
Aridea + 5 GJ!
DCchen + 3 赞!
obaica + 5 牛!
sobereva + 10

查看全部评分 View all ratings

82

帖子

3

威望

1461

eV
积分
1603

Level 5 (御坂)

2#
 楼主 Author| 发表于 Post on 2018-3-9 21:52:51 | 只看该作者 Only view this author

SCC-DFTB3-h

本帖最后由 ChemiAndy 于 2018-4-6 02:42 编辑

SCC-DFTB3-h
  1. Hamiltonian = DFTB {
  2.   SCC = Yes
  3.   SlaterKosterFiles = Type2FileNames {
  4.     Prefix = "/home/user/bin/dftb/1.2/slako/mio-0-1/"
  5.     Separator = "-"
  6.     Suffix = ".skf"
  7.   }
  8.   charge = 1.0
  9.   MaxAngularMomentum {
  10.     C = "p"
  11.     N = "p"
  12.     H = "s"
  13.     O = "p"
  14.   }
  15.   Filling = Fermi {
  16.     Temperature [Kelvin] = 50
  17.   }
  18.   DampXH = Yes
  19.   DampXHExponent = 4.53
  20.   ThirdOrderFull = Yes
  21.   HubbardDerivs = {
  22.     C = -0.1492
  23.     N = -0.1535
  24.     H = -0.1857
  25.     O = -0.1575
  26.   }
  27. }
复制代码


25

帖子

0

威望

818

eV
积分
843

Level 4 (黑子)

3#
发表于 Post on 2018-3-10 10:18:27 | 只看该作者 Only view this author
感谢大佬的分享

11

帖子

0

威望

63

eV
积分
74

Level 2 能力者

4#
发表于 Post on 2018-3-20 09:54:01 | 只看该作者 Only view this author
多谢分享!入门小白想请教一下,Temperatue是根据什么来设定具体大小的?

82

帖子

3

威望

1461

eV
积分
1603

Level 5 (御坂)

5#
 楼主 Author| 发表于 Post on 2018-3-21 13:00:07 | 只看该作者 Only view this author
本帖最后由 ChemiAndy 于 2018-3-21 13:33 编辑

关于Fermi Filling的Temperature,这一部分手册并没有给出一个清晰的参数设置指导。我的理解是,这个参数只是为了加速金属体系收敛速度而进行设置的,其值大小也只影响收敛速度而不影响最后的结果。因此,你可以在0~3000K范围内尝试,取得最好的收敛速度。

这里的Fermi Filling其实就是其它第一原理计算软件中的smearing method. 对于金属体系,因为使用了有限K点计算而不能够连续地在费米面附近进行积分(密度-能量计算),导致计算很难收敛。因此,使用了一个所谓“部分占据”(partial occupied)技巧,用一个平滑的函数来取代积分中的步进函数。这个平滑的函数有很多形式,Fermi-Dirac形式,Methfessel Paxton形式, 高斯形式等等。当使用Fermi-Dirac形式的时候,这个费米温度Fermi Termperature就用来调节这个函数的平缓度。温度越低越陡峭,温度越高越平缓。如果体系的金属性很强,电子密度在费米面之上弥散的厉害,就要使用很平缓的函数形式,意味着要设置高一点的Fermi Temperature.


那么,对于半导体和非金属体系,是否需要设置呢?从原理上讲,是无需设置的,默认为0即可。不过,我遇到过有个网友对非金属体系设置了这个温度为300K后提高了收敛速度的情况。我没有验证过,但是如果你有收敛问题,这个也可以尝试一下。

以上部分内容在VASP的在线手册里面有详细的数学推导和说明:
(1)部分占据以及不同方法:https://cms.mpi.univie.ac.at/vas ... ferent_methods.html
(2)有限温度smearing方法:https://cms.mpi.univie.ac.at/vas ... earing_methods.html
  (3)  VASP中关于smearing的设置建议:http://cms.mpi.univie.ac.at/vasp/guide/node172.html

评分 Rate

参与人数
Participants 1
eV +8 收起 理由
Reason
sobereva + 8

查看全部评分 View all ratings

11

帖子

0

威望

63

eV
积分
74

Level 2 能力者

6#
发表于 Post on 2018-3-22 10:56:46 | 只看该作者 Only view this author
ChemiAndy 发表于 2018-3-21 13:00
关于Fermi Filling的Temperature,这一部分手册并没有给出一个清晰的参数设置指导。我的理解是,这个参数只 ...

解释的很清楚,十分感谢!

239

帖子

0

威望

5249

eV
积分
5488

Level 6 (一方通行)

7#
发表于 Post on 2018-9-5 19:17:23 | 只看该作者 Only view this author
楼主是否用DFTB+作过结构弛豫?我用DFTB+优化结构时,晶格弛豫和原子位置弛豫似乎不是同时进行的。

1043

帖子

0

威望

4188

eV
积分
5231

Level 6 (一方通行)

8#
发表于 Post on 2018-9-5 19:58:37 来自手机 | 只看该作者 Only view this author
ChemiAndy 发表于 2018-3-21 13:00
关于Fermi Filling的Temperature,这一部分手册并没有给出一个清晰的参数设置指导。我的理解是,这个参数只 ...

电子温度即使对半导体绝缘体最好也不要设为零,跟CPMD是类似的

113

帖子

0

威望

903

eV
积分
1016

Level 4 (黑子)

9#
发表于 Post on 2019-6-14 15:07:12 | 只看该作者 Only view this author
您好,试着跑一个例子测试,出现如下错误:
***  Parsing and initializing

Parser version: 6

Interpreting input file 'dftb_in.hsd'
--------------------------------------------------------------------------------
***  Converting input from version  3 to version  6 ...
WARNING!
-> Keyword moved to Analysis block.
Path: dftb_in/Options/CalculateForces
Line: 51-51 (File: dftb_in.hsd)

WARNING!
-> Adding legacy step size for finite difference differentiation
Path: dftb_in/Hamiltonian/DFTB/Differentiation

***  Done.

Reading SK-files:
  O-O.skf
ERROR!
-> IO error in file 'O-O.skf': Unable to read 1st data line

这里提示读取.skf出错,我的这些文件是从官网下载的,请问是什么原因?

另外: 我的DFTB+是在 https://www.dftbplus.org/download/dftb-stable/ 下载的 executables(x86_64/Linux),然后解压就用。

O-H.skf

53 Bytes, 下载次数 Times of downloads: 12

O-O.skf

53 Bytes, 下载次数 Times of downloads: 9

H-O.skf

53 Bytes, 下载次数 Times of downloads: 7

H-H.skf

53 Bytes, 下载次数 Times of downloads: 7

dftb_in.hsd

1.31 KB, 下载次数 Times of downloads: 27

82

帖子

3

威望

1461

eV
积分
1603

Level 5 (御坂)

10#
 楼主 Author| 发表于 Post on 2019-6-15 16:53:06 | 只看该作者 Only view this author
Reading SK-files:
  O-O.skf
ERROR!
-> IO error in file 'O-O.skf': Unable to read 1st data line

374

帖子

2

威望

1543

eV
积分
1957

Level 5 (御坂)

11#
发表于 Post on 2019-8-6 21:25:56 | 只看该作者 Only view this author
SCC-DFTB3是不需要加色散矫正么?

186

帖子

0

威望

4130

eV
积分
4316

Level 6 (一方通行)

12#
发表于 Post on 2019-8-7 08:29:26 | 只看该作者 Only view this author
感谢分享

16

帖子

0

威望

530

eV
积分
546

Level 4 (黑子)

13#
发表于 Post on 2020-5-28 19:27:10 | 只看该作者 Only view this author
ChemiAndy 发表于 2018-3-21 13:00
关于Fermi Filling的Temperature,这一部分手册并没有给出一个清晰的参数设置指导。我的理解是,这个参数只 ...

温度不影响最终结果?
我对一个简单的水分子计算,0K和300K完全是不同的结果,而且手册中提到,当温度设为有限温度时,结果都需要读取和零温下不同的输出项

49

帖子

0

威望

1308

eV
积分
1357

Level 4 (黑子)

14#
发表于 Post on 2020-10-30 17:11:52 | 只看该作者 Only view this author

请教一个问题,这个能够像上面的SCC-DFTB2-h-dispersion一样加色散校正吗

82

帖子

3

威望

1461

eV
积分
1603

Level 5 (御坂)

15#
 楼主 Author| 发表于 Post on 2020-10-31 09:35:43 | 只看该作者 Only view this author
可以

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-20 15:19 , Processed in 0.204730 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list