自学内容网 自学内容网

AMBER学习记录--使用Multiwfn计算有机小分子的RESP电荷--问题及解决

1 ORCA+Multiwfn在wsl中的安装

        ORCA的安装参考量子化学程序ORCA的安装方法 - 思想家公社的门口:量子化学·分子模拟·二次元 (sobereva.com)

        Multiwfn的安装 参考保姆级安装Linux版Multiwfn教程_multiwfn安装过程-CSDN博客

2 计算C3G的RESP电荷

2.1从pubchem上下载C3G的结构

        puchem ID号为197081,下载格式为sdf,此时我们使用openbabel工具将其转换为pdb格式.

 sudo obabel -isdf C3G.sdf -O C3G.pdb

2.2运行脚本,计算RESP电荷

        从Multiwfn安装目录下的example/RESP下复制脚本到当前目录,比如RESP2_ORCA.sh,该脚本包括几何优化步骤。接下来,修改脚本中的nprocs和maxcore参数,同时设置ORCA和orca_2mkl两个参数的路径。比如:

nprocs=10
maxcore=2000

ORCA="/home/xxx/software/orca_6_0_0_shared_openmpi416_avx2/orca"
orca_2mkl="/home/xxx/software/orca_6_0_0_shared_openmpi416_avx2/orca_2mkl"

3 报错及解决

3.1报错及描述

        已按照sob老师的安装步骤下载了orca和openmpi,同时配置了环境。但还是显示mpirun not found,而且输入mpiexec -V,也会显示正确的openmpi版本,输入which mpirun也会显示正确的路径。单核版本可以运行,而多核不能运行。

3.2解决

        找不到mpirun,但环境里已经配置了变量。于是,我将该环境写在了RESP2_ORCA.sh脚本中,重启wsl之后,便可以进行多核操作了。

        而且我还发现如果使用当前用户,而不是用root用户时,也会报错,报错内容是权限受阻。于是我加上了sudo,但加上了sudo以后,又有新的错误。

        我按照提示,在脚本中加入了两行便可以运行了

export OMPI_ALLOW_RUN_AS_ROOT=1
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1

        但是运行到最后发现如下报错:

        查看该博客forrtl: severe(174):SIGSEGV,segmentation fault occurred 问题解决 (ulimit -s 设置堆栈最大值)_forrtl: severe (174): sigsegv, segmentation fault -CSDN博客

        发现,这是由于运行程序较大,而Linux系统初始的堆栈大小(stack size)太小的缘故。我们只要将其调大,一般把stack size设置成没有限制,这样就没有错误了! 

        这里我使用的是临时的方法,即在脚本中加入一行代码即可:

ulimit -s unlimited

        结果如图:有两个文件,格式为chg的是RESP电荷。但是没有最终的结果,也就是C3G.chg文件。

        查看输出,最后有报错信息,bad sustitution,

        

        首先,bad substitution的字面意思是“替换错误”。查看博客得到,从 ubuntu 6.10 开始,ubuntu 就将先前默认的bash shell 更换成了dash shell;其表现为 /bin/sh 链接到了/bin/dash而不是传统的/bin/bash。

        参考该文将/bin/sh 指向bash。syntax error: bad substitution是什么问题-CSDN博客

        最后发现,运行成功了,得到了C3G的RESP电荷。

        


原文地址:https://blog.csdn.net/handsome213/article/details/142396677

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!