安装方式
Linux下NBO6.0
将NBO6压缩包解压到xxx目录下
在~/.bashrc中加入:
1
export PATH=XXX/nbo6/bin/:$PATH
把xxx/nbo6/bin/gaunbo6中
steenv GAUNBO
后面的内容改成g09nbo
或者g16nbo
steenv BINDIR
改成XXX/nbo6/bin/
重新进入终端即可
运行方式
在Gaussian软件中运行
Gaussian内置的NBO3.1
在高斯关键词部分写入:
pop=NPA
:做Natural Population Analysis (NPA)分析pop=NBO
:做NPA和NBO分析pop=saveNBOs
:在pop=NBO
的基础上保存NBO轨道到chk文件中观看pop=saveNLMOs
:在pop=NBO
的基础上做NLMO分析,并且将NLMO轨道保存到chk文件中pop=NCS
:结合NMR
关键词,输出各个NLMO对磁屏蔽的贡献pop=NBODel
:做NBO deletion分析pop=NBOread
:代表从输出文件末尾倒数第二行(倒数第一行是空行)的$NBO
与$END
之间读取NBO的关键词:- 空的:默认做NBO和NPA分析
bndidx
:做键级分析archive
:结合File=
产生.47文件,包含坐标、基函数定义、轨道系数、密度矩阵、一些单电子积分。.47可以做作为NBO的输入文件。plot file=AAA
:产生NBO plot文件,输出的文件前缀是AAA
Gaussian结合更高版本的NBO
- Linux下:
- me将Linux版NBO6压缩包解压到某目录XXX下
- 在~/.bashrc文件中加入
export PATH=$PATH:XXX/bin
- 将XXX/bin/gaunbo6中的setenv GAUNBO后面的内容改成g09nbo或g16nbo;将setenv BINDIR后面的内容改为XXX/bin目录
- 重新进入终端即可。
- 然后直接在Gaussian输入文件中使用诸如
Pop=NPA6
,Pop=NBO6
,Pop=NBO6Read
和Pop=NBO6Delete
,pop=(nbo6,savenlmos)
,pop=(nbo6,savenbos)
等关键词调用(如果是NBO7,将6改成7即可)
常用
计算NBO中的WBI键级,产生输出文件,计算AdNDP所需要的log文件,保存NLMO轨道:
1
2
3# pop(nbo6read,savenlmos)
$NBO bndidx archive DMNAO AONAO File=XXX $END计算AdNDP所需要的log文件:
1
2
3
$NBO DMNAO AONAO $END保存NLMO轨道:
1
# pop=(nbo6,savenlmos)
PIO中需要的:
1
2
3#pop=nbo6read
$NBO AONAO=W49 FNAO=W49 DMNAO=W49 SKIPBO file=XXXX $END
orca中的NBO
修改环境变量,即在~/.bashrc中加入
1
2
3
4
5
6export GENEXE XXX/bin/gennbo.i4.exe
export NBOEXE XXX/bin/nbo6.i4.exe
export GENEXE=/home/zhaoxk/apps/nbo6/bin/gennbo.i4.exe
export NBOEXE=/home/zhaoxk/apps/nbo6/bin/nbo6.i4.exe在ORCA的输入文件中写入
NBO
关键词,ORCA会调用BO6做NPA和NBO分析可以通过
%nbo
进一步控制1
2
3
4
5
6%nbo
NBOKEYLIST="$NBO... $END"
DELKEYLIST="$DEL... $END"
COREKEYLIST="$CORE... $END"
NRTSTRKEYLIST="$NRTSTR... $END"
end
会产生.47文件,产生的.nbo文件实际上是.gbw文件,可以转换成molden文件观看轨道。
ADF中的NBO
直接在windows下:
- 优化好的结构,再算single point,注意此时
Fronzen Core
要设置为none
- Properties→Localized Orbitals,NBO中勾选Perform NBO analysis,Locailized orbitals中选择Boys-Foseter
- Deltals →Accuracy中勾选Full Fock matrics的Always,提交计算即可
- 如果需要可视化轨道,则在输出中Select Field 选择NBOs即可查看各个NBO轨道的空间分布
通过gennbo直接调用程序
- 将gennbo所在的目录XXX/nbo6/添加到环境变量
- 通过在Gaussian产生的.47文件第二行的
$NBO
与$END
之间插入关键词,通过gennbo AAAA.47
即可进行计算,输出结果会输出AAAA.nbo中。
注意事项
密度矩阵
NBO程序做的各种分析主要都是基于密度矩阵。在Gaussian中使用后HF方法或者使用CIS、TDDFT计算激发态时,计算时一定要density
关键词
- 后HF方法传递给NBO模块当前级别的密度矩阵。如果不写
density
关键词,则传递给NBO模块的是HF级别的密度矩阵,分析结果也因此是HF级别的。 - 计算激发态传递给NBO模块的才是用root指定的激发态的密度矩阵,从而分析的是激发态特征。如果不写
density
,则CIS、TDDFT任务会把参考态(即基态的HF、DFT波函数)的密度矩阵传递给NBO模块,因此分析结果也是基态的。
计算级别
- 用弥散函数对NBO的分析没有不良影响,也没有改进。
几何优化时
- 在Gaussian中,如果opt和NBO分析的关键词同时存在,会先对初始结构进行一次NBO分析,再对最终结构进行一次NBO分析
- 如果希望在几何优化,势能面扫描和IRC等多步任务中每一步都调用NBO,需要使用关键词
pop(always,nbo6)
各种关键词和功能
内存MEMORY
按字、兆、兆字节或千兆字节分配动态内存,比如分配1G的内存可以用:
1 | MEMORY=134217728 |
键级分析bndidx
- 用了bndidx关键词后,NBO程序会进行键级分析,输出三种键级矩阵,包括:
Wiberg bond index matrix in the NAO basis
,这是三种键级中唯一推荐的键级。Atom-atom overlap-weighted NAO bond order
,缺乏依据,实际结果又差,所以不要使用。- MO bond order毫无意义
绘图plot
1 | $NBO plot file=XXXXX AOINFO=W $END |
- 运行后就会有一批NBO plot文件*.31、*.32 … *.41在c:\ltwd下面生成:
- .31文件储存的是基函数信息,\.41是密度矩阵信息,对绘制轨道没直接用处。
- *.32(PNAO)、*.33(NAO)、*.34(PNHO)、*.35(NHO)、*.36(PNBO)、*.37(NBO)、*.38(PNLMO)、*.39(NLMO)、*.40(MO)分别储存了相应的展开系数信息
- 通过Multiwfn载入.31文件后,再输入\.32~*.40文件中的一个绘制相应的轨道。
自然共振理论分析NRT
输入
两种关键词指定
- 在.47文件中
$NBO
和$END
之间写上NRT
关键词即可 NRTCML
或NRTCML=n
:把所有贡献大于1%或n%的共振结构式一起输出到FIlename-nrt.cml中,可以直接用MarvinView观看。- 注意,MarvinView中应选择View→Implicit→Hydrogens→Off,否则会自动显示一些不该存在的氢。
其他$NBO
和$END
之间的关键词:
NRTLST=n
:将权重大于n
的结构输出在$NRTSTR
部分。默认情况下仅打印参考结果。NRT <atom-1 atom-2 ... atom-n>
:在NRT关键词后面的尖括号里写上共振分析要考虑的原子范围即可进行局部的NRT分析。NRTFDM
:指定全密度矩阵计算多参考NRT。默认是关闭的,如果NBO检测到需要会提示,所以一般不用开。
其他模块:
NBO轨道自动搜索结果随结构变化不是连续的,对于通过NRT考察化学过程电子结构的变化,为了满足分析数据的连贯性有意义,需要指定NRTSTR
。
比如化学反应可以视为体系的电子结构是从反应物的Lewis结构平滑过渡到产物Lewis结构的。对过渡态结构,以及IRC路径上一系列点做NRT分析,应当在输入文件里通过$NRTSTR
字段直接给出反应物和产物的Lewis结构定义作为参考结构,而不能让NBO自动判断,否则IRC上一系列点的NRT分析结果会突变(比如参考Lewis结构权重的变化曲线)。
$NRTSTR……$END
:在输入文件里指定了$NRTSTR
字段,则NRT分析时会直接利用这些参考Lewis结构,而不会尝试自动搜索和判断。格式和$CHOOSE
基本相同:第一行是
$NRTSTR
,最后一行是$END
。注意开壳层要分别指定α和β电子,用$NRTSTRA
和$NRTSTRB
代替$NRTSTR
中间是用
STRUCTURE
或者STR
和END
封装的,用LONE
和BOND
指定每个共振结构的所有价电子孤对和键的完整说明(注意忽略内层轨道),不像$CHOOSE
支持CBOND
最好放在
$NBO
、$CORE
、$CHOOSE
模块之后,$DEL
模块之前NRTSTR,而且对于开壳层,不能同时存在$CHOOSE
和$NRTSTR
eg.
1
2
3
4
5
6
7
8
9
10$NRTSTR
STR1 ! C1 anion center
LONE 1 1 END
BOND S 1 2 S 1 4 S 1 5 D 2 3 S 2 6 S 3 7 S 3 8 END
END
STR2 ! C3 anion center
LONE 3 1 END
BOND D 1 2 S 1 4 S 1 5 S 2 3 S 2 6 S 3 7 S 3 8 END
END
$END
输出例子
烯丙基自由基开壳层计算出的alpha电子
- 第3行和第4行表示最多允许的参考Lewis结构和全部Lewis结构的数目
- 第5行当前任务需要多少内存
- 第10~12行表示当前体系共发现3个参考Lewis结构(有一定的多中心离域性,因此一种结构无法描述)
- 第13~15行:
rho*
表示主导的参考Lewis结构的non-Lewis电子为0.04795f(w)
表示基于这个参考Lewis结构再考虑其它二级Lewis结构后对体系的描述比起只考虑当前一种Lewis结构时的改进。越接近1改进越大(共振效应越显著),越接近0改进越小。
- 第17行中:
D(W)
只考虑这三种参考Lewis结构并变分优化其系数后剩下的残值。越小说明靠这些参考Lewis结构就越已经足够描述实际电子结构了F(W)
:在参考Lewis结构基础上再考虑其它二级Lewis结构后对体系电子结构描述的改进程度
1 | NATURAL RESONANCE THEORY ANALYSIS, alpha spin: |
- 对这三种参考Lewis式通过严格变分得到的权重
1 | fractional accuracy f(w) |
- 主导的参考Lewis结构对应的拓扑矩阵:
- 非对角元是原子间形式键级
- 对角元是原子上的孤对电子数
1 | TOPO matrix for the leading resonance structure: |
- 第一列中有星号的是参考Lewis结构,权重非常小的Lewis结构直接合并显示其权重总和
- 第二列是各个Lewis结构的最终的权重
- 相对于主导的参考Lewis结构的拓扑关系的变化
- 没加括号的是增加的项
- 有括号的是程除的项
- 单个原于的项是指给其增加一个或去掉一个电子
1 | Resonance |
- 对角元代表平均携带的孤对电子数
- 非对角元代表两个原子之间的NRT键级、共价和离子的贡献。(由于只有一个自旋的结果,大约是期望值的一半)
1 | Natural Bond Order: (total/covalent/ionic) |
- 每个原子的自然原子价(体现成键的数目),以及共价和离子的贡献量
1 | Natural Atomic Valencies: |
- 最后以SNRTSTR字段的格式输出各个参考Lewis结构的表示。
1 | $NRTSTRA |