计算化学公社

标题: 关于不能交换轨道的问题(我也不知道怎么描述) [打印本页]

作者
Author:
王晓东    时间: 2021-1-16 21:10
标题: 关于不能交换轨道的问题(我也不知道怎么描述)
本帖最后由 王晓东 于 2021-1-18 15:16 编辑

问题:加上{multi; occ,14; closed,9; rotate, 9,10}后仍然不能交换9和10的轨道,用的是多参考态方法计算乙醛中将甲基上的一个H拉长的情况。求各位老师救救孩子吧。以下是输入文件:
gprint,orbitals
memory, 200, M
Angstrom

geom={
C1              
C2                  C1            B1
H3                  C1            B2    C2            A1
H4                  C2            B3    C1            A2    H3            D1  
H5                  C2            B4    C1            A3    H3            D2   
H6                  C2            B5    C1            A4    H3            D3
O7                  C1            B6    C2            A5    H5            D4   
}

   B1    =         1.49922308
   B2    =         1.10829885
   B3     =        1.09254615
   B4    =         1.08706806
   B5    =         1.09254350
   B6    =         1.20793598
   A1    =       115.24928791
   A2    =       109.36034132
   A3    =       110.89252875
   A4    =       109.36107951
   A5    =       124.65601184
   D1    =        58.30387156
   D2    =      -179.99688412
   D3    =       -58.29539732
   D4    =         0.00287994

basis = cc-pvdz
rhf
B5 = 2.5
{multi; occ,14; closed,9; wf,24,1,2}       ! 6e,5o
B5=1.1
{multi; occ,14; closed,9; wf,24,1,0}
{multi; occ,14; closed,9; rotate, 9,10}            
put, molden, before1.molden   

作者
Author:
pwzhou    时间: 2021-1-16 21:16
这种情况说明你想要的活化空间不合理,所以程序会自动把不合理的轨道踢出去。你可以说一下你的目前的活化空间都有哪些轨道,再具体看看是什么问题
作者
Author:
王晓东    时间: 2021-1-16 21:44
本帖最后由 王晓东 于 2021-1-16 21:48 编辑
pwzhou 发表于 2021-1-16 21:16
这种情况说明你想要的活化空间不合理,所以程序会自动把不合理的轨道踢出去。你可以说一下你的目前的活化空 ...

我想选的轨道是:C-O之间的pai键及其反键轨道,O孤对电子的p轨道,C-HZ之间的成键及其反键轨道
9和10轨道交换一下就可以得到想选的活化空间了,11-14的轨道都是我想要的,9是O孤对电子的p轨道
问题是:我加了交换9和10的命令之后还没有变化,是不是系统选的就是对的?不用自己改呢?


作者
Author:
zjxitcc    时间: 2021-1-16 21:56
本帖最后由 zjxitcc 于 2021-1-16 22:02 编辑

MOKIT算37s就搞定了,不用看、挑任何轨道。假设你装好了MOKIT(免费开源,https://gitlab.com/jxzou/mokit可下载),会调用高斯,GAMESS(免费开源),PySCF(免费开源), Molpro四个量化软件(假设你已经装好了)。

输入文件,以C-H键2.5A为例。
  1. %mem=2GB
  2. %nprocshared=2
  3. #p CASSCF/cc-pVDZ

  4. mokit{casscf_prog=molpro}

  5. 0 1
  6. C                  0.00000000    0.00000000    0.00000000
  7. C                  0.00000000    0.00000000    1.49922308
  8. H                  1.00241247    0.00000000   -0.47275319
  9. H                  0.54157865    0.87702310    1.86141106
  10. H                 -1.01559440   -0.00005523    1.88688914
  11. H                  1.23954924   -2.00664069    2.32802391
  12. O                 -0.99362501   -0.00000409   -0.68689058

复制代码

运行
  1. automr methanol_2.5_cc-pVDZ.gjf >& methanol_2.5_cc-pVDZ.out &
复制代码

结果:过程中自动检测为CASSCF(4,4)
  1. ...
  2. Enter subroutine do_cas...
  3. CASSCF(4,4) using program molpro
  4. doubly_occ=  10    nvir=  48
  5. No. of active alpha/beta e = 2/2

  6. E(CASCI)  =      -152.83274534 a.u.
  7. E(CASSCF) =      -152.83416525 a.u.
  8. Leave subroutine do_cas at Sat Jan 16 21:37:03 2021
复制代码


文件名_NO.fch文件,内含CASSCF自然轨道 和 轨道占据数,直接用GaussView或Multiwfn+VMD可观看(附件)。看后可知,是被拉长的C-H键成键、反键,C=O pi键成键、反键,合计(4,4)。

(, 下载次数 Times of downloads: 18)

你要是想算CASPT2,就把#p行的关键词改为CASPT2, 中间改为mokit{CASPT2_prog=molpro}即可。有了波函数文件,你后续还想做结构优化读取它就是了。


作者
Author:
王晓东    时间: 2021-1-16 22:28
zjxitcc 发表于 2021-1-16 21:56
MOKIT算37s就搞定了,不用看、挑任何轨道。假设你装好了MOKIT(免费开源,https://gitlab.com/jxzou/mokit ...

感谢感谢,我试一试
作者
Author:
pwzhou    时间: 2021-1-16 22:48
王晓东 发表于 2021-1-16 21:44
我想选的轨道是:C-O之间的pai键及其反键轨道,O孤对电子的p轨道,C-HZ之间的成键及其反键轨道
9和10轨 ...

孤对电子的应该是n轨道,你这个只算了基态,和n轨道没什么关系,除非多算几个激发态,把npi*态包含进来,否则n轨道肯定会被踢出去。后面的回复你可以看到,默认猜测的是(4,4),正好没有你这个n轨道。
作者
Author:
王晓东    时间: 2021-1-17 11:13
pwzhou 发表于 2021-1-16 22:48
孤对电子的应该是n轨道,你这个只算了基态,和n轨道没什么关系,除非多算几个激发态,把npi*态包含进来, ...

好的,谢谢您
也就是活化空间只用考虑四个轨道是吗
作者
Author:
biogon    时间: 2021-1-17 12:02
pwzhou 发表于 2021-1-16 21:16
这种情况说明你想要的活化空间不合理,所以程序会自动把不合理的轨道踢出去。你可以说一下你的目前的活化空 ...

molpro还能把选的不合适的轨道踢出去?
作者
Author:
zjxitcc    时间: 2021-1-17 15:10
王晓东 发表于 2021-1-17 11:13
好的,谢谢您
也就是活化空间只用考虑四个轨道是吗

对于基态这就够了。对于激发态未必,取决于具体情况。
作者
Author:
pwzhou    时间: 2021-1-17 17:47
biogon 发表于 2021-1-17 12:02
molpro还能把选的不合适的轨道踢出去?

明显不合理的轨道,一般程序都会踢出去的。有些不那么合理的就未必,但是最后的电子占据数会接近于2(占据轨道)或者0(非占据轨道),这个时候检查以后自己手动调整即可。
作者
Author:
王晓东    时间: 2021-1-17 21:53
pwzhou 发表于 2021-1-17 17:47
明显不合理的轨道,一般程序都会踢出去的。有些不那么合理的就未必,但是最后的电子占据数会接近于2(占 ...

好的,非常谢谢您
作者
Author:
王晓东    时间: 2021-1-17 21:54
zjxitcc 发表于 2021-1-17 15:10
对于基态这就够了。对于激发态未必,取决于具体情况。

非常谢谢您的回复
作者
Author:
Freeman    时间: 2021-1-18 13:43
“不能交换轨道”的具体症状是什么?
作者
Author:
王晓东    时间: 2021-1-22 10:24
Freeman 发表于 2021-1-18 13:43
“不能交换轨道”的具体症状是什么?

用波函数可视化软件查看轨道,发现轨道排列跟预期的不一致,想通过交换轨道强制使其与预期轨道排列一致
不过目前已经解决,如上所述,只考虑四个轨道作为活化空间
作者
Author:
Freeman    时间: 2021-1-22 13:25
王晓东 发表于 2021-1-22 10:24
用波函数可视化软件查看轨道,发现轨道排列跟预期的不一致,想通过交换轨道强制使其与预期轨道排列一致
...

这是官网手册上关于rotate的用法:(不好意思,Adobe没了之后我的浏览器就不能贴截图了)
ROTATE,iorb1.sym,iorb2,angle
Will perform 2×2 rotation of orbitals iorb1 and iorb2 in symmetry sym by the specified angle (in degree). angle=0 means to swap the orbitals (equivalent to angle=90) These vectors must be supplied before by ORBITAL and MOVE or ADD directives.
这里要指定轨道的不可约表示(不可约表示sym下的第iorb个轨道)和旋转角度。你的问题可能出在这个格式上。
作者
Author:
hhwang    时间: 2021-7-25 23:04
zjxitcc 发表于 2021-1-16 21:56
MOKIT算37s就搞定了,不用看、挑任何轨道。假设你装好了MOKIT(免费开源,https://gitlab.com/jxzou/mokit ...

老师,我安装了您上述提到的几个软件和mokit,在上交超算提交作业需要用到slurm脚本,我测试了mokit软件,直接在登录节点提交的输出文件有图片所示这些,可以正常运行,但是超算是禁止在节点上提交作业的。
如果用脚本提交则无法得到输出文件,也没有报错信息,脚本文件输入为:
#!/bin/bash


#SBATCH -J mokit_test
#SBATCH -p small
#SBATCH -n 2
#SBATCH -v
#SBATCH -o %j.out
#SBATCH -e %j.err
#SBATCH --ntasks-per-node=2


automr methanol_2.5_cc-pVDZ.gjf >& methanol_2.5_cc-pVDZ.out &

有一个问题是,老师,请问脚本这样写有什么问题吗?


作者
Author:
zjxitcc    时间: 2021-7-25 23:11
本帖最后由 zjxitcc 于 2021-7-25 23:13 编辑
hhwang 发表于 2021-7-25 23:04
老师,我安装了您上述提到的几个软件和mokit,在上交超算提交作业需要用到slurm脚本,我测试了mokit软件 ...

“超算是禁止在节点上提交作业的”不够准确,应该是 禁止在登录节点(主节点)提交计算任务。

你试试把
automr methanol_2.5_cc-pVDZ.gjf >& methanol_2.5_cc-pVDZ.out &
中最后一个&符号去掉。还不行的话再贴出你的输入文件、脚本内容等(注意仔细寻找报错信息,屏幕上、队列系统输出文件、automr输出文件等,总共就几秒,多盯一会,没有更多信息肯定是没法解决问题的,必然会有其他信息的,只是你可能没注意)

另外,你的截图是没给全?还是没算完?咋没看见CASSCF相关文件,你算的是CASSCF么?


作者
Author:
hhwang    时间: 2021-7-25 23:48
本帖最后由 hhwang 于 2021-7-26 00:01 编辑
zjxitcc 发表于 2021-7-25 23:11
“超算是禁止在节点上提交作业的”不够准确,应该是 禁止在登录节点(主节点)提交计算任务。

你试试 ...

不好意思呀老师,上面笔误。
谢谢老师,把 & 去掉之后能够计算了,我用的您上面给的输入文件进行的测试,但是methanol_2.5_cc-pVDZ.out出现了下述报错:
ERROR in subroutine read_gvb_energy_from_gms: no GVB energy found in
file methanol_2.5_cc-pVDZ_uhf_uno_asrot2gvb9.gms. You can open this file and check
whether the SCF oscillates. If yes, reducing the number of processors and re-run
may do dome help.
打开methanol_2.5_cc-pVDZ_uhf_uno_asrot2gvb9.gms文件之后报错信息如下:
The GAMESS executable gamess.01.x or else the DDIKICK executable ddikick.x could not be found in directory /lustre/home/acct-mezzy/mezzy/SOFTWARE/gamess/gamess, or else they did not properly link to executable permission.
我检查了一下gamess的环境变量,就写了一行:
export GMS=/lustre/home/acct-mezzy/mezzy/SOFTWARE/gamess/gamess/rungms                                                                                                                             检查 /lustre/home/acct-mezzy/mezzy/SOFTWARE/gamess/gamess文件夹,发现缺少了gamess.01.x,我的文件夹里是gamess.00.x,
老师,是我的gamess安装存在问题吗?还是其他的问题,请问该怎么解决呀?




作者
Author:
zjxitcc    时间: 2021-7-26 00:07
hhwang 发表于 2021-7-25 23:48
不好意思呀老师,上面笔误。
谢谢老师,把 & 去掉之后能够计算了,我用的您上面给的输入文件进行的测试 ...

看手册4.4.10节,MOKIT程序手册就在doc/目录下。
作者
Author:
hhwang    时间: 2021-7-26 01:35
zjxitcc 发表于 2021-7-26 00:07
看手册4.4.10节,MOKIT程序手册就在doc/目录下。

老师,现在又出现了下面问题,没有找到具体原因,请问为什么会有下面报错?
E(GVB) =      -152.92114156 a.u.
dat2fch: error while loading shared libraries: libmkl_rt.so: cannot open shared object file: No such file or directory
ERROR in subroutine do_gvb: failed to call utility dat2fch.
Did you delete it or forget to compile it?
作者
Author:
zjxitcc    时间: 2021-7-26 09:37
本帖最后由 zjxitcc 于 2021-7-26 09:39 编辑
hhwang 发表于 2021-7-26 01:35
老师,现在又出现了下面问题,没有找到具体原因,请问为什么会有下面报错?
E(GVB) =      -152.9211415 ...

表层原因:找不到动态库文件libmkl_rt.so
深一层原因:MKL库环境变量没写 或 没写对;或者在编译MOKIT时加载了Intel编译器(一般内含MKL)环境变量、但运行时忘记在脚本里加上 加载Intel编译器环境变量的指令。

例如,集群一般使用module load intelxxxx加载指定版本的Intel编译器,你可能编译时加载了,但没将其写进~/.bashrc,导致退出重登就失效了;你可能也没写进slurm脚本里,所以系统已经忘记你的Intel编译器环境变量了。
作者
Author:
hhwang    时间: 2021-7-26 19:14
zjxitcc 发表于 2021-7-26 09:37
表层原因:找不到动态库文件libmkl_rt.so
深一层原因:MKL库环境变量没写 或 没写对;或者在编译MOKIT时 ...

老师,现在在脚本和环境变量中加上了Intel编译器,但还是提醒
sh: dat2fch: command not found
ERROR in subroutine do_gvb: failed to call utility dat2fch.
Did you delete it or forget to compile it?
是缺少了dat2fch.sh文件吗?这个文件需要自己编译吗?
作者
Author:
zjxitcc    时间: 2021-7-26 21:24
本帖最后由 zjxitcc 于 2021-7-26 21:29 编辑
hhwang 发表于 2021-7-26 19:14
老师,现在在脚本和环境变量中加上了Intel编译器,但还是提醒
sh: dat2fch: command not found
ERROR i ...

不是,是缺少dat2fch可执行程序。这个报错不太可能,你上面dat2fch: error while loading shared libraries说明已存在dat2fch可执行程序,但缺Intel动态库;而你现在连dat2fch都找不到了,说明你的环境变量很有问题,要么他人、要么你自己随意更改了MOKIT环境变量,连dat2fch都找不到了;又或者是你编译MOKIT时压根没成功,你没注意看屏幕上有错误。

正常执行make all编译完,是有dat2fch可执行程序的。
作者
Author:
hhwang    时间: 2021-7-26 22:58
zjxitcc 发表于 2021-7-26 21:24
不是,是缺少dat2fch可执行程序。这个报错不太可能,你上面dat2fch: error while loading shared librari ...

老师,重新安装了mokit,methanol_2.5_cc-pVDZ.out文件结尾显示Normal termination of AutoMR at Mon Jul 26 22:52:21 2021,给出了活化空间CASSCF(4,4) ,这样应该是正常结束了。非常感谢您!!!




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3