Gaussian中有用的IOp一览

Gaussian中有用的IOp一览
List of useful IOp in Gaussian

文/Sobereva @北京科音
First release: 2011-Feb-2  Last update: 2020-Nov-9


Gaussian中IOp极多,包含了控制程序运行的几乎全部信息,IOp的介绍可参考笔者的《Gaussian的Link、IOp与非标准计算路径》(http://sobereva.com/57)。大部分重要、常用的IOp都可以直接通过相应关键词控制,由于关键词明显更容易记忆,这类IOp我很不建议通过编号输入(比如总有人非要把pop=full写成IOp(6/7=3)),基本不会出现在本文,但其中有个别经常在输入文件中看到,为了方便对照也列出来。有少部分有用或很有用的IOp在Gaussian中并没有直接提供对应的关键词,这样的IOp我在本文进行了总结,其中打星号的特别重要,是应当熟悉的。这里主要是解释每条IOp的要点,并不完整,与官方提供的相应IOp说明也并不相同,使用时建议同时查阅官方的解释(http://gaussian.com/iops/),有个别的IOp在官方文档是查不到的。Gaussian版本不同,IOp信息也会发生一定改变,本文以Gaussian09为依据。


*IOp(1/7=N) 设定优化时的收敛限。力的RMS收敛限设定为N*10^-6(即Threshold显示的值),最大受力被设为1.5*N*10^-6。RMS位移会设为4*N*10^-6 bohr,最大位移会被设为6*N*10^-6 bohr。
*IOp(1/8=N) 在优化的时候以N*0.01 bohr/弧度为最初置信半径,如果优化中不动态更新置信半径,则每一步步长都不会大于这个值(并非是必须等于这个值)。减小其数值有助于解决收敛震荡问题,如果势能面平缓,则应当加大以加快优化速度。默认是30。等价于opt关键词中maxstep选项。
 IOp(1/9=x) 设定对置信半径的处理。默认对于寻找极小点会每步自动更新置信半径,对于过渡态寻找则不会。=1代表不更新,=2代表更新,对应opt中NoTrustUpdate和TrustUpdate关键词。当步长超过置信半径时处理方法用10和20来选择,10代表将位移向量乘以刻度因子使其模等于置信半径(对寻找过渡态是默认的),20代表在置信半径对应的超球面上寻找能量极小点(对寻找极小点是默认的)。
*IOp(1/11=x) =1即noeigentest关键词,=2为总是测试势能面曲率符号,错了就停止任务,即eigentest关键词。默认对LST/QST方法找过渡态及寻找极小点不测试,对Z矩阵或笛卡尔下TS任务进行检测。
 IOp(1/39) 控制计算极化率、频率等任务时有限差分的步长,或者IRC的步长。
 IOp(1/40=N) EF方法优化(没有解析导数的方法默认用的优化方法)过程中每N步重新精确计算一次Hessian矩阵,期间只是使用一阶导数更新之前的Hessian矩阵。
 IOp(1/111=N) 设定温度为N/1000 K,若N为负数则为N/1000000 K。
 IOp(1/112=N) 设定压力为N/1000 atm,若N为负数则为N/1000000 atm。
 IOp(2/12=x) 默认是1,仅当距离为0时才报错,即geom=nocrowd。=2是小于0.5埃就报错,即geom=crowd。=3是即便原子间距离为0,L202也不报错,此选项似乎目前不能用。
 IOp(2/14=x) 使用内坐标时,控制是否测试内坐标线性依赖性,默认不做测试。见手册geom=independent。
*IOp(2/15=x) 控制L202对对称性处理的细节。nosymm相当于1。2是仍然将分子弄到标准朝向,但不利用对称性,3是根本不调用处理对称性的模块。4是用较松的标准判断对称性,然后将体系严格地对称化成这种对称性。
*IOp(2/16=x) 如果优化过程中遇到点群改变怎么处理。1是继续走但关了对称性,2是继续走仍使用旧对称性,3是继续走并使用新对称性,4是停止任务。默认是3。
 IOp(2/17=N) 决定对称性时,距离比较的容差为10^-N。
 IOp(2/18=N) 决定对称性时,非距离比较的容差为10^-N。当IOp(2/17=4,2/18=3)时相当于symm=loose。
*IOp(3/10=x) 设定以何种基函数方式储存波函数信息。1000和2000控制是否将指数相同的S和P壳层组合成SP壳层,默认是2000(组合),1000代表分裂开(int=SplitSP关键词)。100000将收缩基组完全去收缩化,即基函数数目将与高斯函数数目一致。
 IOp(3/18=1) 输出赝势信息,和用了GFPrint关键词的效果一样。
*IOp(3/24=1) 1、10、100可以分别以老方式、Gen的输入格式、某种易读的方式输出基组信息。1000输出壳层所属中心坐标。x0000、x00000可以控制输出的基组、密度拟合基组信息是否先做归一化。
 IOp(3/26=N) 控制L311、L314的双电子积分精度,计算到10^-N,默认为N=10。设为11可以做到尽可能精确。这个目前没什么用,L311和L314模块已经废弃了
 IOp(3/27=N) 扔掉数值小于10^-N以下的双电子积分信息,默认N=10。
 IOp(3/29=N) 使单电子积分(L302)的精度做到10^-N,默认是N=13。
*IOp(3/32=2) 避免去除线性相关的基函数。默认是检验重叠矩阵本征值,发现存在线性相关问题就去掉多余基函数。
*IOp(3/33=1) 输出单电子积分、核哈密顿、势能、多极矩/重叠积分矩阵(overlap那项)。=3用标准格式输出双电子积分,=4用debug格式输出双电子积分(对半经验无效)。=5相当于1、3联用,=6相当于1、4联用。(注,要想输出双电子积分,光写这IOp是没用的,还得写extralinks(L316) scf=conventional noraff)
 IOp(3/53=N) 设定ECP积分精度为10^-N,-1则不截断。
*IOp(3/59=N) 与3/32相关,控制扔掉重叠矩阵本征向量的标准为10^-N。
 IOp(3/60=x) 控制对广义收缩基组的正交化和简化处理。-1是不做正交化和简化,默认是2,即做正交化并去掉系数小的GTF。1是正交化并只去除系数为0的GTF,N是做正交化并去除系数小于10^-N的GTF。在Gaussian与其它量化程序计算结果相比较时此选项有用。
 IOp(3/74=x) 设用什么密度泛函,负数都是交换和相关泛函组合好的,包括那些杂化泛函,如-5=B3LYP,-24=O3LYP,-33=X3LYP。0-99以内的都是代表相关泛函,100及以上的都是代表交换泛函,这两个可以任意组合起来,比如402=BLYP。
*IOp(3/76=MMMMMNNNNN) 将HF交换项和DFT交换项按照NNNNN/10000比MMMMM/10000的比例组合。
*IOp(3/77=MMMMMNNNNN) 使LDA和高阶交换泛函按照NNNNN/10000比MMMMM/10000的比例组合。
*IOp(3/78=MMMMMNNNNN) 使LDA和高阶相关泛函按照NNNNN/10000比MMMMM/10000的比例组合。
*IOp(3/86=N) 扔掉角动量量子数>=N的基函数。
*IOp(3/93=1) 设定核电荷用点电荷描述,而Gaussian对标量相对论计算默认用的是s型高斯函数描述,为了与文献比较有时需要设定此项。
 IOp(3/107) 设置定义短程和长程HF交换项的ω值。0时使用标准HF交换项,MMMMMNNNNN时短程用NNNNN/10000的HF交换而长程用MMMMM/10000的HF交换。这两个数对应于输出文件中HFx后面的wShort和wLong。
 IOp(3/108) 设置定义短程和长程DFT交换项的ω值。0时使用标准DFT交换项,MMMMMNNNNN时短程用NNNNN/10000的DFT交换而长程用MMMMM/10000的DFT交换。这两个数对应于输出文件中DFx后面的wShort和wLong。
(注:上面两个选项字面上的意思有点误导性。实际上,将3/107和3/108都设为MMMMM00000,就相当于用了ω参数为MMMMM/10000的范围分离泛函。对GGA加LC-时ω默认是0.47/Bohr,等价于0470000000。wB97X默认是ω=0.3,等价于0300000000,但注意wB97X短程是杂化泛函,其杂化比例有参数另设。3/119、3/120、3/121可以具体用来设长程和短程HF、DFT交换/相关项的数值)
 IOp(3/109) 设定短程和长程DFT相关项。0时使用标准DFT相关项,MMMMMNNNNN时短程用NNNNN/10000的DFT相关而长程用MMMMM/10000的DFT相关。
 IOp(3/111=1) PBC计算一开始额外输出每个晶胞与中心的距离。
 IOp(3/116=x) 具体控制SCF任务的类型,比如限制性、非限制性、实数、复数等问题。
*IOp(3/124=4) 去掉色散校正。例如wB97XD结合这个关键词的时候就会把其自带的色散校正关闭掉。
*IOp(3/125=x) 给MP2计算的二阶微扰能(E2)中自旋平行项和自旋相反项贡献设定校正系数,-3是让自旋相反项为0,-2是让自旋平行项为0,-1是让两项都为0(即还原到HF结果)。设为MMMMMNNNNN是自旋平行项与自旋相反项的能量贡献以MMMMM/10000比NNNNN/10000的比例组合,利用这个可以实现比如SCS-MP2,即IOp(3/125=0333312000)。
 IOp(4/6=x) 设定读入的初猜波函数是否做正交归一性检查、正交化和投影。
 IOp(4/11=x) 设置初猜类型、Harris初猜时所用的积分格点设定。
*IOp(4/15=N) 设定初猜时的自旋多重度为N。
 IOp(4/39=N) 设定guess=mix时的角度为Pi/N,默认N=4。
*IOp(4/43=3) 在CASSCF任务中且组态数很多时,使所有组态的信息都输出出来(默认是仅在组态数少的时候才输出)。
 IOp(4/68=N) 设定分子力学优化微迭代的收敛标准为10^-N。
*IOp(5/7=-1) MCSCF中不做迭代只做CI(用于实现CAS-CI)。设为N时SCF和MCSCF最大迭代次数为N次。
 IOp(5/9=1) 使用SCF直接最小化(L503)使密度矩阵收敛到10^-3时切换到普通SCF过程。
*IOp(5/13=1) SCF不收敛时仍继续执行后续任务。默认是0(等价2),不收敛就停。
*IOp(5/14=x) For L502,=1对于RHF任务,迭代结束后以UHF波函数形式记录,对UHF任务起到跳过自旋湮灭的作用(注意得到的密度矩阵将完全错误);=2保存自旋湮灭后的密度矩阵,故波函数分析模块L607使用的波函数将会是自旋湮灭后的;10=在第一次迭代计算完双电子项后结束;=20仅从储存的实空间Fock矩阵重新计算能带结构。
 IOp(5/15=2) 利用对称性约束使得各个不可约表示轨道的占据方式在迭代过程中保持和初猜波函数一样(用SCF=QC也可以达到相同目的)。默认=1,即允许发生改变。
 IOp(5/16=x) For L502,设定SCF中对角化方法。
 IOp(5/17=x) For L510,设定MCSCF中对角化方法,1000=为多参考态MP2生成数据,10000=试图控制根翻转。
*IOp(5/33=x) =1在每次迭代时输出:单电子能量(动能+核吸引势能)、电子间库仑作用能(对于杂化泛函,HF交换能部分完全包含在其中)、DFT交换能和DFT相关能。后三项之和即为电子间总相互作用能。=3在每次迭代后输出核哈密顿矩阵、MO系数、本征值、密度/自旋密度矩阵、Fock矩阵等一大堆矩阵。PBC计算时在最后迭代后还能输出不同k点的晶体轨道能。
 IOp(5/37=N) 每N次迭代完整构成一次Fock矩阵,而不是默认的每20次一次(期间通过incremental Fock增量方法近似构建Fock矩阵以节约时间)。-1则不用增量方法构成Fock矩阵。
*IOp(5/38=x) 控制直接SCF过程(每次迭代重算积分)中积分精度。默认=5,允许VarAcc(积分精度可变),=1不允许,=2比当前收敛情况精度高三位小数,=3在最终迭代前用当前收敛情况同样的精度,最终迭代时高两位小数。=4首先收敛到10^-5(这个过程电子积分精度为10^-6),然后再完全收敛到期望精度,=7全精度双电子积分。
 IOp(5/42=N) 为1时在MCSCF模块中对所有轨道做定域化,设为N时只对前N个轨道做定域化。
*IOp(5/70=N) 设定解决SCF收敛问题的分数占据方法(温度展宽)的温度为N。
 IOp(5/75=N)~(5/78=N) 分别设定分数占据涉及的Alpha电子数、Alpha轨道数、Beta电子数、Beta轨道数。
 IOp(5/80)、IOp(5/81)、IOp(5/82) 设定SCF中共轭梯度法的选项,分别设定最大步长、所用方法和最大步数、收敛标准。
 IOp(5/83=N) SCF中DIIS最大子空间维度,默认是20。
 IOp(5/86=x) 设定能量升高时是否降低DIIS子空间维度,何时开启能级移动及能级移动的量。
 IOp(5/87=x) 设定构建Fock矩阵的精度,越大越准。默认是10。等价于用int=acc2e=x关键词
 IOp(5/102=N) 设CAS-MP2最大组态数是N,默认是1000。
*IOp(5/103=N) 设置IOp(5/33=3)输出的每个k点的占据和非占据轨道数目都为N,默认是5。
*IOp(6/7=3) 输出所有的分子轨道信息,即pop=full。
*IOp(6/8=3) 在L601模块中输出密度矩阵。
*IOp(6/17=x) 设定L602(诸如prop关键词会涉及)计算电场及梯度、静电势属性时包含哪些成分的贡献。=0计算全部贡献,=1只计算原子核的贡献,=2只计算电子的贡献,-N只计算N号壳层的贡献。
 IOp(6/20=x) 设定拟合静电势电荷的方法和元素半径的定义。-1=读入自行设定的拟合点,1000=只拟合重原子电荷,10000只拟合活性原子电荷。
*IOp(6/26=x) 设定L602、L604模块中使用哪种密度,默认是1=总密度,2=Alpha密度(好像程序不认)、3=Beta密度、4=自旋密度。
 IOp(6/27=22) 不仅输出Mulliken电荷,还输出Mulliken键级矩阵,即pop=bonding,实际上只是把Gross布居对角元设成了0而已。此选项数值千位数若是1,可以读入自定义权重而不是均分交叉项来做Mulliken分析。
*IOp(6/33=2) 输出拟合静电势时的点(单位为埃)和每个点的精确静电势(a.u.)。
 IOp(6/35~39、6/53~55) 详细设定aim模块(L609)的任务类型和参数
*IOp(6/41=N) 拟合ESP电荷时每个原子用N个同中心的点层为,默认N=4。
*IOp(6/42=N) 拟合ESP电荷时每单位面积的点为N个,默认N=1。17时每个原子大概用2500个点,对于大分子可以稍微降低这个值以减少计算量。
 IOp(6/51=N) 做Extended Koopman's Theorem (EKT)计算,获得10个IP和EA,见test0362、test0363的例子。
 IOp(6/65=-1) 做NCS分析时让所有NLMO的贡献都显示出来
 IOp(6/75=x) 输出CM2电荷。Lowdin电荷、Mayer键级也一起输出。x应设为计算波函数所用的理论方法和基组,可以为以下值:
 1 = HF/MIDI!(5D)   
 2 = HF/MIDI!(6D)   
 3 = HF/6-31G*      
 4 = BPW91/MIDI!(5D)
 5 = BPW91/MIDI!(6D)
 6 = B3LYP/MIDI!(5D)
 7 = BPW91/6-31G*   
 8 = HF/6-31+G*     
 9 = HF/cc-pVDZ     
10 = BPW91/DZVP(6D) 
11 = AM1            
12 = PM3            
14 = ZINDO/S2     
 IOp(6/76=x) 将L607(NBO模块)的线性依赖判断阈值设为10^-x。默认x=6。
 IOp(6/79=1) 输出Hirshfeld电荷(第一列是Hirshfeld电荷,后三列分别是原子的x/y/z偶极矩(a.u.)),G09可以直接用pop=hirshfeld。g03中必须用6d基函数,否则结果是NaN,g09没这个问题。=3时还利用原子偶极、四极矩计算原子间相互作用能。
*IOp(6/80=1) 输出Lowdin电荷、Mayer键级。
*IOp(6/83=111) 输出每个原子的不同角动量原子轨道的布居数,以及每个分子轨道中各种角动量原子轨道的成分,分子轨道中d、f原子轨道的贡献和及具体组成也会被输出。
*IOp(6/84=-1) 6/83默认只分析占据轨道,此指令让其分析所有轨道。设为N是分析全部占据轨道和N个最低空轨道。
*IOp(7/32=x) 将能量、核坐标、受力、力常数之类的信息输出到scratch/fort.7文件中,可以通过参数设定输出哪些内容,以及什么坐标下、什么格式。
 IOp(7/33=1) 做freq时,输出更多细节信息,如偶极矩导数、极化率导数、振动极化率来自各振动模式的贡献等。
*IOp(7/64=3) 在freq任务中,将振动频率做洛伦兹展宽成为红外光谱x-y数据点,可以导入诸如origin等程序绘制红外光谱图。如果也做了Raman,也会得到Raman光谱x-y数据点。
 IOp(7/90=N) 对大体系只分析最低N个振动模式,此功能似乎目前不能用。
 IOp(8/11=N) 0是默认,当MO系数大于1000,或占据轨道与虚轨道能量小于0.001,或内核-价轨道混合过量时,自动终止任务。1则只输出提示而不终止任务。
 IOp(9/25=x) 控制每一次迭代、或是第一次和最后一次迭代,或是不输出电子对儿对相关能的贡献。
 IOp(9/26=M) 每次使用硬盘储存M个占据轨道的积分变换,对于解决积分变换过程中硬盘不够有帮助,可将M依次设小直到能算。
 IOp(9/26=1) 归一化后HF波函数(微扰波函数除外),即令总波函数的模Norm(A)=1,可参考手册CID关键词。默认只是对参考态HF行列式波函数归一化(Intermediate normalization)。
*IOp(9/28=-1) 在CID/CISD迭代的最后一轮把波函数的全部组态系数都打印出来。由于用了中间归一化,所以还需要除以NORM(A)才是真正的系数。-3是不输出系数,设为N是输出系数大于0.0001*N的组态(默认打印大于0.1的)。
 IOp(9/30=x) 控制计算单粒子密度矩阵。
 IOp(9/40=x) 对于L906(半直接MP2),=1时MP2使用CASSCF波函数作为参考态,相当于CASSCF任务中同时写上MP2关键词。对于L914(CIS、TDDFT等任务),输出每个激发态信息时将其中组合系数绝对值大于10^-x的行列式输出出来,默认是x=1。
 IOp(9/44=3) 算基态密度以及来自基态的跃迁密度,还计算所有激发态间的跃迁密度。默认是2,只算算基态密度以及来自基态的跃迁密度。1是计算每个激发态密度。这些结果会被填到rwf文件633位置内。
 IOp(9/46=N) Davidson迭代中(在CIS、TDDFT等任务中都会用到),最低N个态系数收敛就宣告迭代阶数,而不是等所有要算的激发态的系数都收敛才结束。
 IOp(9/47=x) Davidson迭代中,=1时不做任何迭代(只用初猜),=2时只做一次迭代后停止。
 IOp(9/76=N) Davidson迭代中最大向量数。
 IOp(11/18=N) 将原子中心基函数下的2PDM(Two-particle-density-matrix)写入rwf文件N号位置里。
*IOp(11/28=x) x为负数:计算指定类型的2PDM。x为正数:指定1PDM、W、2PDM信息分别储存到的rwf文件的x、x+1、x+2位置,默认是626。
 IOp(11/29=x) =1将1PDM从MO转到AO,=10将2PDM从MO转到AO,=100将AO 2PDM根据壳层排序。
*IOp(11/33=3) 输出2PDM。一般结合IOp(11/18=N),计算相应类型的2PDM。
*IOp(99/6=100) 输出.wfn文件,=1100在.wfn中使用自然轨道,=1200/1300连带着磁轨道导数信息。
*IOp(99/13=x) 控制这次调用L9999是否就是整个任务的结束,1=是,2=否,3=回到Link 1。
*IOp(99/18=N) 默认是0,即输出.wfn不包含虚轨道,-1包含所有虚轨道,N输出N个虚轨道。