计算化学公社

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

[综合交流] Gaussian-ORCA-xTB联用进行ONIOM计算

[复制链接 Copy URL]

82

帖子

4

威望

2534

eV
积分
2696

Level 5 (御坂)

跳转到指定楼层 Go to specific reply
楼主
最近论坛上好多联用,挺有意思的。以下欢迎拍砖。
这里试着把三个常用的三个量化软件进行ONIOM计算。
用的是社长原创的接口,这里稍微修改了点,以适应不同情形。
请看 gox.zip (1.91 MB, 下载次数 Times of downloads: 305)




试了几个例子,貌似还是可行的。
ONIOM用的不多,不恰当的地方请指出。欢迎试算恰当的实际例子。

用之前先把orca.sh中的orcapath定义为自己的实际路径。
其他照常运行,设置好三个程序正常的运行路径和环境变量。


例子一(Gau-xTB):
%nproc=1
#P ONIOM(B3LYP/def2SVP em=GD3BJ : External="sh ./xtb.sh") Opt(nomicro)



例子二(Gau-ORCA):
%nproc=1
#P ONIOM(External="sh ./orca.sh" : uff) Opt(nomicro)


例子三(Gau-ORCA-xTB三者联用):
%nproc=1
#P ONIOM(External="sh ./orca.sh" : External="sh ./xtb.sh") Opt(nomicro)


例子四(Gaussian非联用):
#P ONIOM(B3LYP/6-31G(d,p):UFF) Opt

以上仅双层的例子,三层的例子应该也可行。

References
http://bbs.keinsci.com/thread-10141-1-1.html
http://bbs.keinsci.com/thread-10106-1-1.html........


评分 Rate

参与人数
Participants 9
威望 +1 eV +39 收起 理由
Reason
tkaray + 5 GJ!
Alizzard + 4 谢谢
ggdh + 5 太强了!
ldatea + 5 好物!
zsu007 + 5 谢谢分享
hebrewsnabla + 5 GJ!
snljty + 5
ABetaCarw + 5 精品内容
sobereva + 1

查看全部评分 View all ratings

105

帖子

0

威望

1822

eV
积分
1927

Level 5 (御坂)

22#
发表于 Post on 2022-11-18 13:10:33 | 只看该作者 Only view this author
embedcharge的话,charge应该从底层级计算里提取,作为点电荷加入到高层级计算里,对吧?我没看到代码里有这个内容呀。

82

帖子

4

威望

2534

eV
积分
2696

Level 5 (御坂)

21#
 楼主 Author| 发表于 Post on 2022-11-18 08:59:47 | 只看该作者 Only view this author
michaelm 发表于 2022-11-17 04:50
请问大家,这种联用,可以使用EmbedCharge吗?

可以。ONIOM后头加=EmbedCharge。比如:
#P ONIOM(External="sh ./orca.sh" : External="sh ./xtb.sh")=EmbedCharge Opt(nomicro)

105

帖子

0

威望

1822

eV
积分
1927

Level 5 (御坂)

20#
发表于 Post on 2022-11-17 04:50:11 | 只看该作者 Only view this author
请问大家,这种联用,可以使用EmbedCharge吗?

1

帖子

0

威望

197

eV
积分
198

Level 3 能力者

19#
发表于 Post on 2022-1-2 11:49:23 | 只看该作者 Only view this author
winnerwill 发表于 2020-12-3 16:14
你试了按我在6L说的改了吗?很可能是这个环境变量的设置问题。
在xtb.sh开头加
export KMP_STACKSIZE= ...

xtb和gaussian连用,我发现原子个数变多之后(比如大于80个),计算会自动终止,最后一行输出:
Extracting data from xtb outputs via extderi

按您的方法,将ulimit -s unlimited和export KMP_STACKSIZE=4000000000加入到提交脚本中(batch文件),问题解决。感谢!

3

帖子

1

威望

910

eV
积分
933

Level 4 (黑子)

18#
发表于 Post on 2021-10-13 11:44:29 | 只看该作者 Only view this author
感谢分享!
最近在用这个脚本尝试计算一个5000原子的体系的时候,L层的scf要占据很久的时间(甚至有不收敛的情况),才想到可以备份restart文件的方法。
因为gaussian在计算的时候会调用xtb交替计算H层和L层,所以如果在脚本中添加restart_bak2和restart_bak文件,分别由移动restart_bak和restart得到,再在计算前将restart_bak2移动为restart,就可以在再次调用时读取上次的结果作为初猜了。这样看起来能节省很多时间。
xtb的restart默认是打开的,有问题读取失败大概也不会boom(未测试过)。

21

帖子

0

威望

217

eV
积分
238

Level 3 能力者

17#
发表于 Post on 2020-12-7 11:50:58 | 只看该作者 Only view this author
winnerwill 发表于 2020-12-7 11:09
就是看看输入文件是不是在传输后不是Linux格式而是Windows格式的行尾符.
比如进入运行目录,执行以下命令 ...

哦,我试过用dos2unix转了ONIOM-ggx。gjf这个算例,ASCII格式。在G16A可以跑,在G16C就不行。
我用unix2dos转成ASCII CRLF,用G16A也可以顺利跑通。
应该是高斯问题,或者我这个G16C安装包就有问题。

21

帖子

0

威望

217

eV
积分
238

Level 3 能力者

16#
发表于 Post on 2020-12-7 11:43:44 | 只看该作者 Only view this author
winnerwill 发表于 2020-12-7 11:09
就是看看输入文件是不是在传输后不是Linux格式而是Windows格式的行尾符.
比如进入运行目录,执行以下命令 ...

哦,我看了 ONIOM-ggx.gjf在我这是ASCII的。应该是高斯16C版本问题,或者是我这个安装包有问题。

82

帖子

4

威望

2534

eV
积分
2696

Level 5 (御坂)

15#
 楼主 Author| 发表于 Post on 2020-12-7 11:09:59 | 只看该作者 Only view this author
Alizzard 发表于 2020-12-7 09:04
确实是跟高斯有关
我用A.01计算算例,没问题,非常丝滑。
用C.01计算算例就不行。

就是看看输入文件是不是在传输后不是Linux格式而是Windows格式的行尾符.
比如进入运行目录,执行以下命令: file *
看看输出结果是什么.或者在可以显示行尾符的Notepad++之类显示看看.

21

帖子

0

威望

217

eV
积分
238

Level 3 能力者

14#
发表于 Post on 2020-12-7 09:04:25 | 只看该作者 Only view this author
winnerwill 发表于 2020-12-5 11:09
你这个看来还有问题是跟高斯有关的。你进入运行目录下看看输入文件行尾符是什么?另外按你之前执行顺序, ...

确实是跟高斯有关
我用A.01计算算例,没问题,非常丝滑。
用C.01计算算例就不行。
两者直接计算算例的ONIOM2.gjf都没问题。
“进入运行目录下看看输入文件行尾符是什么”我没明白这是什么意思。

82

帖子

4

威望

2534

eV
积分
2696

Level 5 (御坂)

13#
 楼主 Author| 发表于 Post on 2020-12-5 11:09:53 | 只看该作者 Only view this author
Alizzard 发表于 2020-12-4 09:28
我再确认下,是这么加这两行么?

#!/bin/bash

你这个看来还有问题是跟高斯有关的。你进入运行目录下看看输入文件行尾符是什么?另外按你之前执行顺序,在执行g16命令之前echo下运行的环境变量,看看有无异常。

21

帖子

0

威望

217

eV
积分
238

Level 3 能力者

12#
发表于 Post on 2020-12-4 09:28:07 | 只看该作者 Only view this author
本帖最后由 Alizzard 于 2020-12-4 09:29 编辑
winnerwill 发表于 2020-12-3 16:14
你试了按我在6L说的改了吗?很可能是这个环境变量的设置问题。
在xtb.sh开头加
export KMP_STACKSIZE= ...

我再确认下,是这么加这两行么?

#!/bin/bash
  
#This script was written by Dr. Tian Lu at Beijing Kein Research Center for Natural Sciences (www.keinsci.com)
#Contact: sobereva@sina.com
export KMP_STACKSIZE=4000000
ulimit -s unlimited

if [[ ! -x genxyz ]]; then chmod +x genxyz; fi
if [[ ! -x extderi ]]; then chmod +x extderi; fi

read atoms derivs charge spin < $2

#Create temporary .xyz file
#the element index should be replaced with element name, and the coordinate should be convert to Angstrom
echo "Generating mol.tmp"
cat >> mol.tmp <<EOF
$atoms
……

具体结果见11楼

21

帖子

0

威望

217

eV
积分
238

Level 3 能力者

11#
发表于 Post on 2020-12-4 09:14:47 | 只看该作者 Only view this author
winnerwill 发表于 2020-12-3 16:14
你试了按我在6L说的改了吗?很可能是这个环境变量的设置问题。
在xtb.sh开头加
export KMP_STACKSIZE= ...

试了,依旧是这个问题

hemingzhang@hemingzhang:~/soft/gox/examples$ g16 ONIOM-ggx.gjf
normal termination of xtb
abnormal termination of xtb
forrtl: severe (24): end-of-file during read, unit 10, file /home/hemingzhang/soft/gox/examples/xtbout
Image              PC                Routine            Line        Source            
extderi            00000000004075AB  Unknown               Unknown  Unknown
extderi            000000000042D442  Unknown               Unknown  Unknown
extderi            000000000040447A  Unknown               Unknown  Unknown
extderi            00000000004041E2  Unknown               Unknown  Unknown
libc-2.31.so       00001513EE4390B3  __libc_start_main     Unknown  Unknown
extderi            00000000004040E9  Unknown               Unknown  Unknown
mv: 无法获取'molden.input' 的文件状态(stat): 没有那个文件或目录
FIO-F-217/formatted read/unit=31/attempt to read past end of file.
File name = '/home/hemingzhang/tmp/Gau-81582.EOu',    formatted, sequential access   record = 1
In source file runexo.f, at line number 22
  /home/hemingzhang/soft/g16/l402.exe() [0x1a28e77]
  /home/hemingzhang/soft/g16/l402.exe() [0x19e2c1f]
  /home/hemingzhang/soft/g16/l402.exe() [0x19c06ff]
  /home/hemingzhang/soft/g16/l402.exe() [0x19c0338]
  /home/hemingzhang/soft/g16/l402.exe() [0x19c626e]
  /home/hemingzhang/soft/g16/l402.exe() [0x19c180e]
  /home/hemingzhang/soft/g16/l402.exe() [0x73751b]
  /home/hemingzhang/soft/g16/l402.exe() [0x51a530]
  /home/hemingzhang/soft/g16/l402.exe() [0x4202e0]
  /home/hemingzhang/soft/g16/l402.exe() [0x416c99]
  /home/hemingzhang/soft/g16/l402.exe() [0x4128a2]
  /home/hemingzhang/soft/g16/l402.exe() [0x4127a4]
  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x14df47d640b3]
  /home/hemingzhang/soft/g16/l402.exe() [0x40cee9]
Aborted (core dumped)
hemingzhang@hemingzhang:~/soft/gox/examples$



出现了“abnormal termination of xtb”,但我用xtb单独跑ONIOM-ggx这个结构的优化没问题。

gaussian 结果末尾:
(Enter /home/hemingzhang/soft/g16/l402.exe)
External calculation of energy and first derivatives.
Running external command "./xtb.sh M"
         input file       "/home/hemingzhang/tmp/Gau-81582.EIn"
         output file      "/home/hemingzhang/tmp/Gau-81582.EOu"
         message file     "/home/hemingzhang/tmp/Gau-81582.EMs"
         fchk file        "/home/hemingzhang/tmp/Gau-81582.EFC"
         mat. el file     "/home/hemingzhang/tmp/Gau-81582.EUF"
Generating mol.tmp
Generating mol.xyz via genxyz
Running: xtb mol.xyz --chrg 0 --uhf 0 --grad > xtbout
xtb running finished with Exit code of external program call: 128 !
Extracting data from xtb outputs via extderi

82

帖子

4

威望

2534

eV
积分
2696

Level 5 (御坂)

10#
 楼主 Author| 发表于 Post on 2020-12-3 16:14:08 | 只看该作者 Only view this author
Alizzard 发表于 2020-12-3 10:41
你好,我用的xtb.sh是解压gox.zip后examples里面的。
Gaussian输出末尾是:
(Enter /home/hemingzhang ...

你试了按我在6L说的改了吗?很可能是这个环境变量的设置问题。
在xtb.sh开头加
export KMP_STACKSIZE=4000000000
ulimit -s unlimited

上面的值看自己的系统决定。
另外如果xtb.sh有可执行权限就可以不用加sh,如果没有就要加上sh

21

帖子

0

威望

217

eV
积分
238

Level 3 能力者

9#
发表于 Post on 2020-12-3 10:41:12 | 只看该作者 Only view this author
winnerwill 发表于 2020-12-2 21:17
你用的xtb.sh是文件夹里面附带的修改版吗?
运行的Gaussian输出文件末尾是什么内容?

你好,我用的xtb.sh是解压gox.zip后examples里面的。
Gaussian输出末尾是:
(Enter /home/hemingzhang/soft/g16/l402.exe)
External calculation of energy and first derivatives.
Running external command "./xtb.sh M"
         input file       "/home/hemingzhang/tmp/Gau-57834.EIn"
         output file      "/home/hemingzhang/tmp/Gau-57834.EOu"
         message file     "/home/hemingzhang/tmp/Gau-57834.EMs"
         fchk file        "/home/hemingzhang/tmp/Gau-57834.EFC"
         mat. el file     "/home/hemingzhang/tmp/Gau-57834.EUF"
Generating mol.tmp
Generating mol.xyz via genxyz
Running: xtb mol.xyz --chrg 0 --uhf 0 --grad > xtbout
xtb running finished with Exit code of external program call: 128 !
Extracting data from xtb outputs via extderi

ONIOM-ggx.log

34.22 KB, 下载次数 Times of downloads: 5

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

GMT+8, 2026-2-19 18:54 , Processed in 0.187015 second(s), 25 queries , Gzip On.

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