|
本帖最后由 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文件,然后运行:
- calcsoc -s 1 -t 2 -p 3 abc.log
复制代码 说明:
-s 1 选择S1态
-t 2 选择T1,T2态
-p 3 选择sob制作的molsoc 3号版本,不同版本的含义见sob的那篇博文,或者运行
进行快速查看如下图;
运行时,会产生一个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下,运行
5.把sob_PySOC_MolSOC/pysoc/bin加入到PATH变量中
6.运行update_pysoc.sh (这里在任意地方运行都可,因为会通过第四步设定的PATH路径找到相应的需要修改的文件位置)
此处会显示一些信息,包括是否成功升级,以及对init.py 的自动设置。
7.运行calcsoc进行分析
|
评分 Rate
-
查看全部评分 View all ratings
|