|
|
本帖最后由 zjxitcc 于 2023-1-18 14:36 编辑
必然可收敛。由于你没给你这体系的坐标,我这里以O2为例(基态是三重态),以下操作同样适用于复杂分子
方法1. 用 UHF或UDFT的UNO轨道 作为 ROHF或RODFT 的初始轨道
UHF输入文件如下,先算UHF,并确保波函数稳定,然后产生UNO
- %chk=O2.chk
- %mem=8GB
- %nprocshared=8
- #p UHF/cc-pVDZ nosymm int=nobasistransform stable=opt
- title
- 0 3
- O 0.0 0.0 0.0
- O 0.0 0.0 1.1616
- --Link1--
- %chk=O2.chk
- %mem=8GB
- %nprocshared=8
- #p chkbasis nosymm int=nobasistransform guess(only,read,save,NaturalOrbitals) geom=allcheck
复制代码 然后生成fch文件,将O2.fch中没用的所有Beta部分信息删去(因为UNO只有一列轨道),再转化为chk文件,即运行
- formchk O2.chk O2.fch
- fch_u2r O2.fch
- unfchk O2_r.fch O2_rohf.chk
复制代码 做ROHF计算,O2_rohf.gjf文件内容如下
- %chk=O2_rohf.chk
- %mem=4GB
- %nprocshared=4
- #p ROHF chkbasis nosymm int=nobasistransform guess=read geom=allcheck
复制代码 提交给高斯。
方法2. 别的量化程序算完ROHF或RODFT,传轨道给高斯
例如先用PySCF算一下,然后导出fch文件。新建一个O2.py文件
- from pyscf import gto, scf
- from py2fch_direct import fchk
- mol = gto.M(
- atom = 'O 0 0 0; O 0 0 1.1616',
- basis = 'cc-pvdz',
- charge = 0,
- spin = 2
- )
- mf = scf.ROHF(mol)
- mf.kernel()
- fchk(mf, 'O2_rohf.fch')
复制代码 算完后获得O2_rohf.fch文件。后续操作想必都知道,就不详细写了。PySCF中对ROHF可以采用非常多 强力的收敛手段,见《PySCF程序包平均场计算的一些收敛技巧》,还可以检验ROHF波函数稳定性。
以上示例中的fch_u2r和fchk()为开源程序MOKIT的小程序或模块。
|
评分 Rate
-
查看全部评分 View all ratings
|