计算化学公社

标题: 升级PySOC使其支持g16(更新calcsoc脚本) [打印本页]

作者
Author:
ggdh    时间: 2020-10-13 21:37
标题: 升级PySOC使其支持g16(更新calcsoc脚本)
本帖最后由 ggdh 于 2020-12-23 06:33 编辑

1.升级pysoc脚本使其支持g16
PySOC的详细介绍见:使用Gaussian+PySOC在TDDFT下计算旋轨耦合矩阵元
虽然目前还可以用ORCA算SOC,但有时候懒得切换程序了。
原版的PySOC不支持g16,主要是g16和g09的log文件有差别,使其读取的时候出现了一点小问题。需要进行下面的一些修改:
1.修改pysoc.py所在目录下的soc.py的第84行把:
elif 'NFC=' in line:
改成
elif 'NFC=' in line and 'NBasis' in line:
2.把soc.py的103行的
['AO basis set','primitive gaussians']
改成
['AO basis set','Effective','primitive gaussians']
3.然后把sob_PySOC_MolSOC/pysoc/bin/soc.py中164行附近的下面两行中的g09改成g16
cmd0 = g09root+'/g09/bsd/g09.profile'
cmd1 = g09root+'/g09/rwfdump gaussian.rwf'

4.在计算所用的init.py文件中设置g16的路径,比如我的是下面这样,各位根据自己的实际情况设就好。
g16root = '/home/zc'
sys.path.append(g16root+'/g16')


另外也为小白和懒人准备了脚本,附件中的update_pysoc.sh,自动完成升级,以及自动对init.py的设置,具体用法见第三部分

2.快捷计算soc的calcsoc脚本
特性:
1.不需要手动修改文件名
2.在命令行中指定计算的态的数量
3.在命令行中切换不同的molsoc版本
4.自动识别log文件的版本(g09/g16),并据此自动修改程序(注意,如果这里用的是g09的log,但是机器上没有设置g09root环境变量,那就可能会出错)
运行方法:
确保当前目录下有abc.log abc.rwf文件,然后运行:
  1. calcsoc -s 1 -t 2 -p 3 abc.log
复制代码
说明:
-s 1  选择S1态
-t 2 选择T1,T2态
-p 3 选择sob制作的molsoc 3号版本,不同版本的含义见sob的那篇博文,或者运行
  1. calcsoc -h
复制代码
进行快速查看如下图;
(, 下载次数 Times of downloads: 85)
运行时,会产生一个abc-soc的文件夹,相关的临时文件都会放在这个文件夹中进行计算。这个文件夹仅仅用于出错了调试,一般不需要进入。
计算完成后会在当前目录下(有abc.log的文件的目录)产生abc_soc.dat文件,其中就包含了所需的SOC的数据。


3.从头开始安装步骤
需求:
1 python 3.7环境
2 设置了g09root(如果需要分析g09的log) 或者g16root (如果需要分析g16的log)的环境变量。
安装步骤:
1.下载sob_PySOC_MolSOC.zip,并解压文件,注意文件中的还有子压缩包pysoc.zip和molsoc_modified.zip, 也需要分别解压。
2. 把文件夹及子文件夹上传到服务器(Linux系统)
3. 把附件中的2个文件:update_pysoc.sh, calcsoc文件拷贝到服务器上的sob_PySOC_MolSOC/pysoc/bin文件夹当中
4. 到sob_PySOC_MolSOC/pysoc/bin下,运行
  1. chmod +x *
复制代码
5.把sob_PySOC_MolSOC/pysoc/bin加入到PATH变量中
6.运行update_pysoc.sh (这里在任意地方运行都可,因为会通过第四步设定的PATH路径找到相应的需要修改的文件位置)
此处会显示一些信息,包括是否成功升级,以及对init.py 的自动设置。
7.运行calcsoc进行分析




作者
Author:
sobereva    时间: 2020-10-13 21:45
好,我已在原帖中提及此帖
作者
Author:
pwzhou    时间: 2020-12-2 21:18
试了一下并不好用,还是无法正确读取,用的16的A03版本
作者
Author:
ggdh    时间: 2020-12-9 18:12
pwzhou 发表于 2020-12-2 21:18
试了一下并不好用,还是无法正确读取,用的16的A03版本

有没有啥出错提示没?
作者
Author:
snljty    时间: 2020-12-11 14:13
本帖最后由 snljty 于 2020-12-14 17:58 编辑
ggdh 发表于 2020-12-9 18:12
有没有啥出错提示没?
补充:抱歉忘了说了。所有g09都替换成g16了,包括二进制文件。还是不行。
刚拿g16试着跑了一下,用的http://sobereva.com/411里面Os配合物的例子。版本G16 A.03
gaussian.log里面只有一行有NFC=字段,而这行也有NBasis=字段。所以这个修改至少对于我这个文件,是没有效果的。
NBasis=   543 NAE=   107 NBE=   107 NFC=    26 NFV=     0

直接报错是soc.py提示没有定义mo_ene变量,这个变量是mo_ene = read_file('MO_energy', 'Dump of file', nt, nr )读出来的。但是当前目录下并没有生成MO_energy文件。

QM_code gauss_tddft                                                                                    
open file gaussian.log                                                                                 
[[1, 2.5829], [3, 3.974], [4, 4.0286], [7, 4.3022], [8, 4.327], [9, 4.3461], [10, 4.3647], [12, 4.4727],
[14, 4.5438], [15, 4.5714]]                                                                             
2 3.9243                                                                                                
['ANG', 'Zeff', 'DIP']                                                                                 
Error when reading gaussian output                                                                     
Traceback (most recent call last):                                                                     
  File "xxxxxxxxx/PySOC/pysoc/bin/soc.py", line 492, in <module>                                         
    write_file(mo_ene, 'mo_ene.dat', '{}  ')                                                            
NameError: name 'mo_ene' is not defined                                                                 
forrtl: No such file or directory                                                                       
forrtl: severe (29): file not found, unit 171, file xxxxxxxxx/soc_td_input.dat               


作者
Author:
pwzhou    时间: 2020-12-11 14:35
snljty 发表于 2020-12-11 14:13
刚拿g16试着跑了一下,用的http://sobereva.com/411里面Os配合物的例子。版本G16 A.03
gaussian.log里面 ...

我的也是这样的情况
作者
Author:
tiandikuoyuan    时间: 2020-12-14 17:19
尝试了一下,还需要将soc.py中g09全部修改为g16,init.py中也是一样要修改
作者
Author:
snljty    时间: 2020-12-14 17:44
tiandikuoyuan 发表于 2020-12-14 17:19
尝试了一下,还需要将soc.py中g09全部修改为g16,init.py中也是一样要修改

我上面的都改过了,还是不行。
作者
Author:
tiandikuoyuan    时间: 2020-12-14 18:31
snljty 发表于 2020-12-14 17:44
我上面的都改过了,还是不行。

试了Os配合物的例子,加了赝势确实会报错,还是用G09或者orca吧
作者
Author:
ggdh    时间: 2020-12-22 18:47
tiandikuoyuan 发表于 2020-12-14 17:19
尝试了一下,还需要将soc.py中g09全部修改为g16,init.py中也是一样要修改

新的脚本可以自动进行这些设置了。
作者
Author:
ggdh    时间: 2020-12-22 18:49
snljty 发表于 2020-12-11 14:13
补充:抱歉忘了说了。所有g09都替换成g16了,包括二进制文件。还是不行。
刚拿g16试着跑了一下,用的http:/ ...

有赝势的log文件,由于g16和g09的输出有差异,导致错误
之前的脚本没有注意到赝势的情况。现在的船新版本ok了。
作者
Author:
ggdh    时间: 2020-12-22 18:50
pwzhou 发表于 2020-12-2 21:18
试了一下并不好用,还是无法正确读取,用的16的A03版本

再试试新版的。另外附送了calcsoc 也欢迎尝试
作者
Author:
snljty    时间: 2020-12-22 19:51
ggdh 发表于 2020-12-22 18:49
有赝势的log文件,由于g16和g09的输出有差异,导致错误
之前的脚本没有注意到赝势的情况。现在的船新版 ...

谢谢您!刚试了一下,计算没有报错(除了卢老师删了跃迁偶极矩部分导致的那个报错。)数值上和g09的结果有一定差别(加了g09defaults),我再看看。
作者
Author:
yinhang    时间: 2020-12-25 13:51
请教老师,Gaussian中的QMMM结果是否适用于pysoc。
作者
Author:
sobereva    时间: 2021-1-2 20:26
yinhang 发表于 2020-12-25 13:51
请教老师,Gaussian中的QMMM结果是否适用于pysoc。

没法用
作者
Author:
yinhang    时间: 2021-1-2 21:23
sobereva 发表于 2021-1-2 20:26
没法用

多谢卢老师
作者
Author:
leebo    时间: 2022-4-18 16:40
ggdh 发表于 2020-12-9 18:12
有没有啥出错提示没?

钟老师好,我使用calcsoc -s 1 -t 3 -p 3 gaussian.log的时候,出现以下提示,请问这对结果有啥影响吗?谢谢。


open file gaussian.rwf
MOA_coeffs 524R
/share/apps/g16.b01/g16/bsd/g16.profile: 85: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 86: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 87: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 88: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 89: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 90: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 91: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 92: ulimit: Illegal option -u
AO_overlap 514R
/share/apps/g16.b01/g16/bsd/g16.profile: 85: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 86: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 87: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 88: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 89: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 90: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 91: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 92: ulimit: Illegal option -u
XY_coeffs 635R
/share/apps/g16.b01/g16/bsd/g16.profile: 85: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 86: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 87: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 88: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 89: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 90: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 91: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 92: ulimit: Illegal option -u
MOB_coeffs 526R
/share/apps/g16.b01/g16/bsd/g16.profile: 85: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 86: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 87: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 88: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 89: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 90: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 91: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 92: ulimit: Illegal option -u
MO_energy 522R
/share/apps/g16.b01/g16/bsd/g16.profile: 85: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 86: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 87: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 88: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 89: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 90: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 91: ulimit: bad number
/share/apps/g16.b01/g16/bsd/g16.profile: 92: ulimit: Illegal option -u
作者
Author:
abin    时间: 2022-4-18 18:04
用ORCA搞吧……

我记得这个方案需要rwf 文件,
实际操作起来比较费事,我指拷贝文件方面……

【ORCA旋轨耦合矩阵元 OLED TADF相关 (spin-orbit coupling matrix elements)-哔哩哔哩】 https://b23.tv/vw7XSwg
作者
Author:
ggdh    时间: 2022-4-18 19:12
leebo 发表于 2022-4-18 16:40
钟老师好,我使用calcsoc -s 1 -t 3 -p 3 gaussian.log的时候,出现以下提示,请问这对结果有啥影响吗? ...

如果能出结果 应该是没有影响的  
这些报错就是设g16环境变量的报错
作者
Author:
leebo    时间: 2022-4-18 22:16
ggdh 发表于 2022-4-18 19:12
如果能出结果 应该是没有影响的  
这些报错就是设g16环境变量的报错

谢谢钟老师
作者
Author:
ouqi0711    时间: 2022-6-18 12:51
ggdh 发表于 2020-12-22 18:49
有赝势的log文件,由于g16和g09的输出有差异,导致错误
之前的脚本没有注意到赝势的情况。现在的船新版 ...

您好,我刚刚尝试下载了您附件中的两个脚本,运行后还是会在mo_ene的地方出错,不知道应该做如何修改呢?
作者
Author:
shulinluo    时间: 2025-6-27 11:11
大佬,使用了最新版本,g16还是会报错NameError: name 'mo_ene' is not defined,不知道该咋解决,折腾了半天也跑不通




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