计算化学公社

标题: 半经典分子动力学程序PROGDYN使用教程 [打印本页]

作者
Author:
Accelerator    时间: 2018-8-14 08:53
标题: 半经典分子动力学程序PROGDYN使用教程
本帖最后由 Accelerator 于 2022-5-18 17:16 编辑

    德州农工的单重态子(D A Singleton)编写的半经典分子动力学程序PROGDYN是研究bifurcation现象以及显式溶剂化等的行业标准。这里介绍一下这个程序(不带ONIOM的版本)的使用。
(典型的bifurcation势能面。这种情况下无法通过TST预测产物比例,只能进行分子动力学模拟)
    PROGDYN目前是基于bash和awk的程序。虽然是公开的,但移植到不同机器上需要修改源代码,并不十分方便。
    在介绍如何使用之前,首先讲解一下PROGDYN的工作流程。该程序需要两个输入文件,freqinHP和progdyn.conf。动力学轨迹的初始结构用Gaussian做频率计算(同时注意写上freq=hpmode保留力常数的更多有效数字),得到的输出文件重命名为freqinHP;progdyn.conf则配置动力学的相关信息。对每一条轨迹,程序从freqinHP中读取初始构型,通过不同的方式初始化后做半经典分子动力学模拟(对每一步求QM的力常数用于下一步),直到轨迹达到终止条件。
(, 下载次数 Times of downloads: 203)
  程序的主体位于binall400文件夹内(可以随意重命名);bin里包含很多文件,但progdyn只需要其中的randgen就够了。n400则是与存放输入和输出文件的场所。
(, 下载次数 Times of downloads: 212)
    binall400中包含一系列文件。其中freqinHP是输入文件,progdynstarterHP是程序的入口;progdyn.conf是混入的奇怪的东西不需要这个。移植这一程序时,首先需要确保机器上安装了openbabel。接下来修改progdynstarterHP的以下几处:
  1. #export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:'/home/ymma/mopac':'~/bin/lib'
  2. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:'/home/accelerator/progdyn/bin/lib'
  3. #export BABEL_LIBDIR='/scratch/user/ymma/babel/build/lib'
  4. #export BABEL_DATADIR='/scratch/user/ymma/babel/openbabel-2.4.1/data'
  5. export LC_ALL=C
  6. echo $1
  7. scratchdir=$1
  8. export g09root=/home/accelerator
  9. . $g09root/g09/bsd/g09.profile
  10. origdir=`pwd`
  11. cd $origdir
  12. logfile=ymmalog
  13. randdir=/home/accelerator/progdyn/bin
  14. proggramdir=/home/accelerator/progdyn/binall400
  15. freqfile=/home/accelerator/progdyn/binall400/freqinHP

  16. echo
  17. echo ORIGDIR at the beginning of run:
  18. echo $origdir
  19. ls $origdir
  20. echo
  21. echo SCRATCHDIR at the beginning of run:
  22. echo $scratchdir
  23. ls $scratchdir
  24. echo
  25. echo PROGGRAMDIR at the beginning of run::
  26. echo $proggramdir
  27. ls $proggramdir

  28. rm -f nogo    # assume that if someone is starting a job, they want it to go.
  29. rm -f diagnostics goingwell tempdone # diagnostics contains extra info from previous runs, other two files are from older versions of progdyn
  30. if (test -s g09.com) then
  31.    sed -i '/guess=tcheck/d' g09.com      # no chk file on first point
复制代码

    由于PROGDYN调用Gaussian进行计算,自然要配置相应的环境变量。randdir即为之前提到的随机数生成器randgen的位置;proggramdir为binall400文件所在地,freqfile指向freqinHP文件。如果需要同时运行很多PROGDYN任务的话一定要注意这两个变量是否正确。
    如果在集群上运行的话还需要配置一下babel的相关信息,这里不需要所以注释掉了。
    n400目录只需要一个文件即progdyn.conf,指定了轨迹的计算方法,自旋多重度和电荷数,并行数和内存占用,初始化方式,apply force等许多重要信息。其中关于每一条设置的含义都有详细的注释。画风是这样的:
  1. #***method, charge, multiplicity, memory, processors, title
  2. #*** method --The following word is copied exactly to the gaussian input file.
  3. method MP2/cc-pvdz
  4. #To do a nonstandard route, make nonstandard 1.  For normal calcs, use nonstandard 0 or else leave it out.
  5. #Then make a file called "nonstandard" containing the nonstandard route with no extra lines.
  6. nonstandard 0
  7. # NMRoptions As is NMRtype=1 will add a section for an NMR calc at every NMRevery intervals.  If you want to combine the two use nonstandard
  8. #NMRtype 1
  9. #NMRmethod2 B97D/6-31G*
  10. #NMRmethod LC-wPBE/6-31G*
  11. #NMRmethod3 B3LYP/cc-pvtz
  12. #NMRevery 4
  13. #NMRrand 1
  14. #NMRcc 1
  15. #loadlimit 10.0
  16. #geometry linear
  17. rotationmode 1
  18. #*** method2 --The options here are restricted, unrestricted, and read. restricted is the default
  19. #If the method is U..., put unrestricted here and the .com files will have in them guess=mix.
  20. #If you put read here, the .com files will contain guess=tcheck, which sometimes makes things faster, sometimes not.
  21. #The use of read requires a specifically defined checkpoint file name using the keyword checkpoint.
  22. method2 restricted
  23. charge 0
  24. multiplicity 1
  25. #oniomchargemult 1 1
  26. processors 3
  27. #*** memory --The following "word" is copied exactly to the gaussian input file after %mem=.
  28. memory 7gb
复制代码

    最基本的是修改计算水平,一定要确保和freqinHP一致,否则每一步的能量都与freqinHP中读取的能量相差太大,会被判定为结构不合理而中止运行。
还需要修改的是proganal文件。该文件用于实时分析轨迹。
  1. <font size="2">C2C6=Distance(2,6)
  2. C3C26=Distance(3,26)
  3. C5C7=Distance(5,7)
  4. printf("%s %.3f   %s %.3f   %s %.3f  ","C2C6",C2C6,"C3C26",C3C26,"C5C7",C5C7)
  5.    if (runpoint>500) {
  6.       print "   Too many points.  XXXX"
  7.       }
  8.    if ((C2C6<1.7) && (C5C7<1.7)) {
  9.       print "Vinylfuran is dienophile XXXX"
  10.       }
  11.    if ((C2C6<1.7) && (C3C26<1.7)) {
  12.       print "Cyclopentadienone is dienophile XXXX"
  13.       }
  14.    if (C2C6>2.5) {
  15.       print "Returned to SM XXXX"
  16.       }
  17.    system("date '+%b:%d:%Y %T'")
  18.    system("tail -1 Echeck | grep XXXX")
  19.    }</font>
复制代码

    需要修改的是这一段,即轨迹的终止条件。这里的例子中freqinHP是一个DA反应的过渡态,proganal中测量三个C-C键键长,在键长小于临界值时认为已经运行到产物形成阶段并结束该轨迹。

    修改好这些之后就可以提交运算了。首先cd到n400内,新建一个tmp文件夹存放程序的临时文件,并运行
(绝对路径的前项省略)/binall400/progdynstarterHP tmp
如果没有报错的话,至少会在n400里生成以下文件:
g09.com geoPlusVel geoRecord Echeck dynfollowfile runpointnumber isomernumber
    其中isomernumber指的是“当前是第几条轨迹”。一条轨迹完成后程序并不会停止运行,而是继续从初始构型开始生成更多的轨迹。geoPlusVel记录了当前的几何构型和各个原子的速度;geoRecord记录了起始构型的几何结构和速度;dynfollowfile则按照proganal指定的输出轨迹信息。画风如下:
    根据自己书写的终止条件,可以在dynfollowfile里查找已经结束的轨迹情况。
     bad total energy的含义是轨迹的第二步电子能量与起始构型相差太大,被判定为发生了错误而重新开始下一条轨迹。在progdyn.conf中有一个initialdist的选项,指定轨迹的初始化方式。在这里除了过渡态的虚频模式之外,其他振动模式也都给了初始位移(选项4),因此发生bad total energy是很正常的。    initialdist的设置对于轨迹结果至关重要,默认设置为4,是物理意义以及与实验的相符都较好的选择。
    由于Gaussian的并行效率惩罚,并不会只运行一个PROGDYN任务。前面展示的progdyn.conf中CPU和内存都设置得很小,正是因为同时运行着许多同类任务。Singleton习惯在一个20核心节点上同时运行6个任务。
    得到大量轨迹后最简单的应用就是用于得到产物比例的信息。本例中可能得到两个产物(Vinylfuran和Cyclopentadienone分别作为亲双烯体)。得到的通往两种产物的轨迹比例为1.47,与实验值1.6符合可以接受。
    PROGDYN的代码一般在使用过的文章的SI里都有;这里提供下载:链接: https://pan.baidu.com/s/10sUwJgdqZ4v1tUxaP2ogiQ?pwd=munm 提取码: munm

本文首先发表于作者的公众号Rita是美少女上所以图片上经常有水印(x



作者
Author:
sobereva    时间: 2018-8-14 09:46
有的图片显示不出来
作者
Author:
Accelerator    时间: 2018-8-14 10:02
sobereva 发表于 2018-8-14 09:46
有的图片显示不出来

我这里看正常。刚刚重新上传了一下 一共是5个图
发帖和编辑都要审核好不方便...
作者
Author:
sobereva    时间: 2018-8-14 10:11
Accelerator 发表于 2018-8-14 10:02
我这里看正常。刚刚重新上传了一下 一共是5个图
发帖和编辑都要审核好不方便...

说明内容有敏感词
在论坛里发山寨广告的太多,之前还有机器人大规模轰炸过本论坛,不得不设了很多敏感词,碰到敏感词的时候就需要管理员审核

之前的图有的看不到是因为直接复制了微信的图片,微信图片没法外链。

作者
Author:
ABetaCarw    时间: 2018-8-14 16:26
弱弱问一句
https://thuchemst.github.io
为啥停更了?
作者
Author:
pyscf    时间: 2018-8-15 00:57
有点意思
作者
Author:
Accelerator    时间: 2018-8-15 01:37
ABetaCarw 发表于 2018-8-14 16:26
弱弱问一句
https://thuchemst.github.io
为啥停更了?

因为去年的我懒 然后今年的我不再负责这个了(
ps 如果你关注了清化科协的话就会发现清化科协也停更了(不是
作者
Author:
Daniel_Arndt    时间: 2018-8-15 07:41
我当初使用的时候,使用的Progdyn还不依赖openbabel。当初使用的时候,有个大问题,就是输出的xyz文件中的电子能有些错位。具体来说,就是第一帧的电子能出现在第二帧中,第二帧的电子能出现在第三帧中,依此类推。还有个小问题,就是原子数目超过50时,高斯的log文件的格式有点变化,然后需要自己手动修改Progdyn的代码,否则出错。不知道这两个问题现在有没有解决。
作者
Author:
Daniel_Arndt    时间: 2018-8-15 07:46
国内好像做quasi classical trajectory做得比较多的是张东辉,他一般是写成准经典轨线。
作者
Author:
Accelerator    时间: 2018-8-15 10:01
Daniel_Arndt 发表于 2018-8-15 07:41
我当初使用的时候,使用的Progdyn还不依赖openbabel。当初使用的时候,有个大问题,就是输出的xyz文件中的 ...

感谢提醒。检查了一下,输出的轨迹里单点能仍然是错位的。超过50个原子的体系还没有尝试过。
查看了一下代码,应该只是在书写traj的时候把旧的单点和progdynb生成的新的构型写到了一起,并不会影响轨迹的正确性。前面在计算动能时还有一句注释“This is for the point prior to the current point”,看来Singleton是知道这件事情的。
作者
Author:
Accelerator    时间: 2018-8-15 10:04
本帖最后由 Accelerator 于 2018-8-15 10:12 编辑

借楼赞美一下Singleton其人;LZ现在在这里做暑研,快要70岁了还每天亲自写代码,手把手教学生,到现在已经拿到5个MOOC证书了。组会就像放课后茶会一样,感觉这里的学生工作真的是出于爱去做的,并不是因为怕老板什么的。我超喜欢这里的。
作者
Author:
Daniel_Arndt    时间: 2018-8-26 00:24
这会想起来当时还有一个问题。我当时在progdyn.conf里设置的processors是8,然后我考虑到一个节点是24核,就写了个很简单的bash脚本,在一个节点上同时跑三个轨线。结果,三个文件夹里出现的第一个xyz文件完全相同。我后来发现是randgen在同一秒中内生成的随机数完全一样,awk在同一秒内的随机数也完全一样。其实也不是什么大问题,就是处理数据时删掉两个文件即可。我后来自己给randgen加了个锁。
作者
Author:
Accelerator    时间: 2018-8-26 04:34
Daniel_Arndt 发表于 2018-8-26 00:24
这会想起来当时还有一个问题。我当时在progdyn.conf里设置的processors是8,然后我考虑到一个节点是24核, ...

还有这种事情.jpg
不过我也是在同一个节点运行很多任务,还没有遇到过这种情况。
作者
Author:
chemqzx    时间: 2019-3-7 17:06
本帖最后由 chemqzx 于 2019-3-8 16:10 编辑

网盘分享没有了,方便的话可以上传一下吗?谢谢,十分感谢
作者
Author:
pyscf    时间: 2019-3-21 06:42
请问这个程序的公开链接在哪?好想找不到了
网盘链接也失效了。。。。
作者
Author:
Accelerator    时间: 2019-3-21 13:29
pyscf 发表于 2019-3-21 06:42
请问这个程序的公开链接在哪?好想找不到了
网盘链接也失效了。。。。

链接: https://pan.baidu.com/s/1Qyc6ssYwK0tGuge3ORrH1w 提取码: 3r56
应该是没有公开链接的,最新版本可以邮件联系Singelton索取
作者
Author:
Accelerator    时间: 2019-3-21 13:29
chemqzx 发表于 2019-3-7 17:06
网盘分享没有了,方便的话可以上传一下吗?谢谢,十分感谢

抱歉才看到,网盘链接已经在ls更新
作者
Author:
pyscf    时间: 2019-3-22 01:01
Accelerator 发表于 2019-3-21 13:29
链接: https://pan.baidu.com/s/1Qyc6ssYwK0tGuge3ORrH1w 提取码: 3r56
应该是没有公开链接的,最新版本 ...

谢谢了
这么搞确定老板不会生气吗
作者
Author:
Daniel_Arndt    时间: 2019-3-23 02:22
pyscf 发表于 2019-3-22 01:01
谢谢了
这么搞确定老板不会生气吗

我觉得以Daniel A. Singleton的脾气,他应该不会说什么的。我去年发现杨百翰大学有本科生在GitHub上发布Progdyn,页面的介绍中都没有提及Singleton。。。。。。
作者
Author:
chemqzx    时间: 2019-6-19 15:43
Accelerator 发表于 2019-3-21 13:29
抱歉才看到,网盘链接已经在ls更新

谢谢!
作者
Author:
找雷    时间: 2019-12-19 12:06
本帖最后由 找雷 于 2019-12-19 12:09 编辑

跪谢!
作者
Author:
青青河边草    时间: 2020-3-8 02:23
您好,请教一个问题啊,progdyn程序中的progdyn.conf输入文件里,有这个设置:“#*** classical --  for quassiclassical dynamics, the default, use 0.  for classical dynamics, use 1. #if there are no normal modes and the velocities are to be generated from scratch, use classical 2", 所以0,1,2各在什么情况下选择啊?期待您的回复,非常感谢!
作者
Author:
Daniel_Arndt    时间: 2020-3-14 05:47
青青河边草 发表于 2020-3-8 02:23
您好,请教一个问题啊,progdyn程序中的progdyn.conf输入文件里,有这个设置:“#*** classical --  for qu ...

If you have followed the tutorial, you should use 0. In quasi-classical trajectory, tunneling is not considered while vibrations are quantized. If you still want to know why, you can have a look at William Hase's work or Daniel Singleton's work. By the way, William Hase is at Texas Tech University and Daniel Singleton is at Texas A&M University.

Sorry, I am using a computer at the school office and it doesn't have Chinese input yet.
作者
Author:
青青河边草    时间: 2020-3-31 14:45
Daniel_Arndt 发表于 2020-3-14 05:47
If you have followed the tutorial, you should use 0. In quasi-classical trajectory, tunneling is n ...

Thank you very much! I appreciate it.
作者
Author:
ene    时间: 2020-4-15 20:41
本帖最后由 ene 于 2020-4-15 20:52 编辑

程序自带的randgen貌似是用drand48+srand48实现的,同一秒内产生的随机数是完全一样的。我用sprng弄了一个类似的randgen,不受运行频率的限制。
(, 下载次数 Times of downloads: 20)





作者
Author:
Daniel_Arndt    时间: 2020-4-16 02:54
ene 发表于 2020-4-15 20:41
程序自带的randgen貌似是用drand48+srand48实现的,同一秒内产生的随机数是完全一样的。我用sprng弄了一个 ...

根据我之前的测试,Daniel A. Singleton写的randgen每一秒产生十万个随机数,而且,同一秒内执行randgen,得到的输出完全一样。其实如果你不是在同一台计算机上运行多个progdyn,这一点不会带来太大影响。

我最初使用progdyn时,曾经尝试过在同一台计算机上同时运行三个progdyn。结果,三个文件夹中,第一条轨线完全相同,但之后的轨线就没有出现完全相同的现象。后来,我才发现是randgen在同一秒内的输出相同,同时,progdyn中还调用了awk里面的随机数函数,那个随机数函数也是同一秒内的输出相同。

如果你认为多个文件夹中的第一条轨线完全相同有点浪费机时的话,你可以用这个工具 http://www.unixwiz.net/tools/lockrun.html 避免randgen在同一秒内被多次调用。还有个办法就是修改proggenHP里面调用随机数函数的代码。我之前曾经用过下面的代码:
("cat /dev/urandom | tr -dc '0-9' | head -c 9") | getline seed
srand(seed); tester=rand()*1000
作者
Author:
Accelerator    时间: 2020-4-16 09:26
Daniel_Arndt 发表于 2020-4-16 02:54
根据我之前的测试,Daniel A. Singleton写的randgen每一秒产生十万个随机数,而且,同一秒内执行randgen ...

Singleton的解决方法就是运行progdyn时每相邻两次调用之间都间隔一个sleep 5000(
作者
Author:
ene    时间: 2020-4-16 11:42
Daniel_Arndt 发表于 2020-4-16 02:54
根据我之前的测试,Daniel A. Singleton写的randgen每一秒产生十万个随机数,而且,同一秒内执行randgen ...

原来如此,看来仅仅修改randgen还不够,得把progdyn里面其他的东西调整一下才可以
作者
Author:
sobereva    时间: 2020-4-16 13:49
其实用Gaussian的BOMD也可以做同样的准经典动力学模拟,感觉用起来更清爽和省事。只需通过shell循环就可以模拟大量轨迹,每次模拟通过IOp(1/44=N)设置随机数种子就可以让每次的结果不同,没有前面讨论的随机数的问题

作者
Author:
Accelerator    时间: 2020-5-14 19:46
重要提醒:发现有些机器上progdyn移植过去后,当initialdis不等于0时,会产生非常古怪的初始构型。经过仔细研究发现,对proggenHP中function shiftStructure()改成如下内容即可解决:
  1. function shiftStructure() {
  2. #   for (i=1;i<=numAtoms+9;i++) print header[i] > "temp394.gzmat"
  3. #   for (j=1;j<=numCoord;j++) {
  4. #      zGeo[j]=zGeoOrig[j]
  5. #      for (i=1;i<=numFreq;i++) {
  6. #         zGeo[j]=zGeo[j]+shift[i]*dzdm[i,j]
  7. #         }
  8. #      print label[j],zGeo[j] > "temp394.gzmat"
  9. #      }
  10. #   close("temp394.gzmat")
  11. #   system("obabel -igzmat temp394.gzmat -oxyz > temp394.xyz")
  12. #   for (i=1;i<=5;i++) getline < "temp394.xyz"
  13. #   for (j=1;j<=numAtoms;j++) {
  14. #      getline < "temp394.xyz"
  15. #      geoArr[j,1]=$2; geoArr[j,2]=$3; geoArr[j,3]=$4
  16. #      }
  17. #   close("temp394.xyz")
  18. # original algorithm replaced by above (Singleton), but it seems that the above procedure is buggy, and then I suggest still using the following old algorithm.
  19.   for (i=1;i<=numFreq;i++) {
  20.      for (j=1;j<=numAtoms;j++) {
  21.         for (k=1;k<=3;k++) {
  22.            shiftMode[i,j,k]=mode[i,j,k]*shift[i]
  23.            geoArr[j,k]=geoArr[j,k]+shiftMode[i,j,k]
  24.            }
  25.         }
  26.      }
  27.    }
复制代码

作者
Author:
Accelerator    时间: 2020-5-14 19:52
sobereva 发表于 2020-4-16 13:49
其实用Gaussian的BOMD也可以做同样的准经典动力学模拟,感觉用起来更清爽和省事。只需通过shell循环就可以 ...

progdyn一个优点是可以生成随机的初始结构,从而表现出反应过程中并非所有轨迹都精确通过过渡态。在文献里也见过只是将progdyn作为随机结构生成器,然后用Gaussian读取结构和速度去做BOMD的做法。
作者
Author:
Daniel_Arndt    时间: 2020-5-15 07:05
Accelerator 发表于 2020-5-14 19:52
progdyn一个优点是可以生成随机的初始结构,从而表现出反应过程中并非所有轨迹都精确通过过渡态。在文献 ...

根据我的一位师兄之前的测试,IOp(1/44)是生成随机的初始结构。

要算一些time gap的时候,progdyn明显比Gaussian方便,毕竟两者的propagation不一样。我师兄当初用Gaussian做的,最后要算time gap时,我帮他写了一个脚本,把Gaussian的BOMD的输出文件转换成xyz格式。一开始,我想用openbabel来做的,结果发现openbabel只会转换第一帧。我不会写Fortran代码,自己折腾了半天,用bash写了一套类似parser的代码,把“D+00”这种格式转换成数字,才弄好了。
作者
Author:
sobereva    时间: 2020-5-16 00:01
Accelerator 发表于 2020-5-14 19:52
progdyn一个优点是可以生成随机的初始结构,从而表现出反应过程中并非所有轨迹都精确通过过渡态。在文献 ...

Gaussian的BOMD直接就会根据随机数对初始结构按照振动模式进行随机位移(q),这里Ei是Gaussian根据当前RTemp和振动频率判断的振动模式i所处的振动态对应的振动能

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

势能面二分可以纯用Gaussian的BOMD来跑

作者
Author:
sobereva    时间: 2020-5-16 00:04
Daniel_Arndt 发表于 2020-5-15 07:05
根据我的一位师兄之前的测试,IOp(1/44)是生成随机的初始结构。

要算一些time gap的时候,progdyn明显 ...

D是Fortran里强调浮点数是双精度时候用的形式。把D替换成E后,其它程序通常就都可以正常识别为科学计数法

我感觉Gaussian跑势能面二分问题非常方便,一个基于过渡态结构的gjf文件结合一个不超过10行的shell循环脚本完全搞定

按照下文的做法,可以很方便地直接利用Multiwfn批量产生每个BOMD任务最后一帧的结构
一键把所有gjf文件转成xyz文件、把所有Gaussian输出文件转成gjf文件的脚本
http://sobereva.com/530http://bbs.keinsci.com/thread-16161-1-1.html
都转成xyz文件后,再合并成多帧xyz载入VMD,之后写个VMD tcl脚本进行统计分析方便极了。



作者
Author:
Accelerator    时间: 2020-5-16 11:16
sobereva 发表于 2020-5-16 00:01
Gaussian的BOMD直接就会根据随机数对初始结构按照振动模式进行随机位移(q),这里Ei是Gaussian根据当前RTe ...

这个机制应该对应的是progdyn里的initialdis=3.progdyn一般使用的initialdis=2或4,前者是以初始结构为中心服从玻尔兹曼分布,后者则是允许振动能级被激发并满足经典极限。Singleton在很早以前的文章中也使用过Gaussian这种生成方法,但认为不如initialdis=2或4有物理意义,后来就统一不用了。
作者
Author:
Laura_    时间: 2020-9-1 15:12
想请问一下,如何通过这套程序去跑IRC呢?用高斯一直跑不出来,想通过动力学的方法去跑IRC,感谢指点!
作者
Author:
zjxitcc    时间: 2020-9-1 15:29
Laura_ 发表于 2020-9-1 15:12
想请问一下,如何通过这套程序去跑IRC呢?用高斯一直跑不出来,想通过动力学的方法去跑IRC,感谢指点!

大材小用了。高斯里调调步长,换换IRC算法,一般就能跑出来了。另外,实在不行做个局部的二维势能面扫描,能在势能面上看出是鞍点就行。
作者
Author:
Laura_    时间: 2020-9-1 20:14
zjxitcc 发表于 2020-9-1 15:29
大材小用了。高斯里调调步长,换换IRC算法,一般就能跑出来了。另外,实在不行做个局部的二维势能面扫描 ...

因为不确定前后体,跑IRC又跑不出来,所以想通过动力学的方法来跑IRC,请问老师有什么建议嘛?感谢!
作者
Author:
Daniel_Arndt    时间: 2020-9-2 09:09
Laura_ 发表于 2020-9-1 20:14
因为不确定前后体,跑IRC又跑不出来,所以想通过动力学的方法来跑IRC,请问老师有什么建议嘛?感谢!

我不建议你这么干。首先,用progdyn基本上都是为了研究non-IRC behavior;其次,用progdyn跑动力学之前要确保自己找到的过渡态对应于决速步,或者说整个反应路径都清楚了之后再跑动力学。我不认为你现在有跑动力学的必要。

你如果真的费了很大力气都没有跑成IRC、而且非得尝试progdyn不可的话,你也许可以尝试progdyn里面的DRP(dynamic reaction path)功能。我也只是在这篇文献 J. Am. Chem. Soc. 2020, 142, 29, 12865–12877 里面看到过这个东西,progdyn里面有这部分代码,但我从未使用过这个功能,更没有仔细研究过。
作者
Author:
Laura_    时间: 2020-9-3 14:26
Daniel_Arndt 发表于 2020-9-2 09:09
我不建议你这么干。首先,用progdyn基本上都是为了研究non-IRC behavior;其次,用progdyn跑动力学之前要 ...

谢谢老师的指点!
作者
Author:
sobereva    时间: 2020-9-8 11:39
Laura_ 发表于 2020-9-1 15:12
想请问一下,如何通过这套程序去跑IRC呢?用高斯一直跑不出来,想通过动力学的方法去跑IRC,感谢指点!

IRC本来就是相当于原子运动速度无穷慢的时候走的理想化的路径,显然不是靠跑动力学跑出来的。就算你跑大量轨迹然后取平均,不仅花的时间很多,得到的路径顶多也只是真实IRC的一个近似,相对于直接用IRC关键词完全是费力不讨好
作者
Author:
Laura_    时间: 2020-9-14 09:32
sobereva 发表于 2020-9-8 11:39
IRC本来就是相当于原子运动速度无穷慢的时候走的理想化的路径,显然不是靠跑动力学跑出来的。就算你跑大 ...

感谢老师的指点!谢谢老师帮助我更好的认识与理解
作者
Author:
ccq    时间: 2020-10-14 17:12
各位老师好,目前我在用progdyn程序,发现当原子数目超过50的时候g09.com文件无法读取到原子坐标信息,想请教一下各位老师是如何解决这个问题的呢?谢谢!
作者
Author:
Accelerator    时间: 2020-10-14 18:01
ccq 发表于 2020-10-14 17:12
各位老师好,目前我在用progdyn程序,发现当原子数目超过50的时候g09.com文件无法读取到原子坐标信息,想请 ...

progdyn.conf里有注释相应的解决办法,在关键字里加上iop(3/124=3),使得对于较大的分子输出文件的格式统一。
如实在不行,直接修改源代码里读取相应部分的语句也可。
作者
Author:
Daniel_Arndt    时间: 2020-10-15 01:35
ccq 发表于 2020-10-14 17:12
各位老师好,目前我在用progdyn程序,发现当原子数目超过50的时候g09.com文件无法读取到原子坐标信息,想请 ...

我之前用过的一个办法是将“scf=nosymm”改成“Symmetry=None”,当时解决了这个问题。但具体是什么原因,我已经记不清了。

还有一个可能行得通的办法。有人跟我说过,Gaussian的源代码中,当原子数大于50时,就默认不输出“Input orientation”了。我也检查过我之前使用的高斯的输出文件,确实如此。超过50个原子时,要在输入文件中加入“geom=printinputorient”来取消默认的设定。我没有使用过这个办法,但你可以尝试添加“geom=printinputorient”关键词。
作者
Author:
ccq    时间: 2020-10-19 10:28
Accelerator 发表于 2020-10-14 18:01
progdyn.conf里有注释相应的解决办法,在关键字里加上iop(3/124=3),使得对于较大的分子输出文件的格式统 ...

收到!谢谢老师!老师我还有一个问题想请教您,我的程序无法跑到starting proggen这一步骤,在diagnostics中显示只停留在了第二步的starting prog2ndpoint,是否也是因为原子坐标的问题呢?
作者
Author:
ccq    时间: 2020-10-19 10:50
Daniel_Arndt 发表于 2020-10-15 01:35
我之前用过的一个办法是将“scf=nosymm”改成“Symmetry=None”,当时解决了这个问题。但具体是什么原因 ...

谢谢老师!我尝试用了geom=printinputorient关键词解决了以上问题!
作者
Author:
zwy2020    时间: 2021-8-6 15:42

请问这个程序的公开链接在哪?好想找不到了
网盘链接也失效了。。。。,在个人专栏也找不到噶
作者
Author:
Daniel_Arndt    时间: 2021-8-7 12:29
zwy2020 发表于 2021-8-6 15:42
请问这个程序的公开链接在哪?好想找不到了
网盘链接也失效了。。。。,在个人专栏也找不到噶

程序作者Daniel A. Singleton的使用了progdyn的文章里面会在Supporting Information部分附上代码。
作者
Author:
zwy2020    时间: 2021-8-7 19:02
Daniel_Arndt 发表于 2021-8-7 12:29
程序作者Daniel A. Singleton的使用了progdyn的文章里面会在Supporting Information部分附上代码。

嗯嗯,找到了,还有一些问题,希望请教您
作者
Author:
星斗如盘    时间: 2021-8-10 19:14
有PROGDYN编译后的安装包吗?
作者
Author:
星斗如盘    时间: 2021-8-10 19:20
本帖最后由 星斗如盘 于 2021-8-10 19:35 编辑
sobereva 发表于 2020-4-16 13:49
其实用Gaussian的BOMD也可以做同样的准经典动力学模拟,感觉用起来更清爽和省事。只需通过shell循环就可以 ...

这个具体怎么操作呢?我使用ADMP,通过shell循环了100次,结果100次的结果都一样。
以前尝试过用xtb跑动力学,循环100次是可以得到不同的结果,不过使用xtb不能更改计算水平。现在想在b3lyp-D3/6-31g(d)水平下跑一下过渡态

作者
Author:
sobereva    时间: 2021-8-10 19:34
星斗如盘 发表于 2021-8-10 19:20
这个具体怎么操作呢?我使用ADMP,通过shell循环了100次,结果100次的结果都一样。

ADMP和BOMD的情况完全不同,我前面说的是BOMD
Gaussian里的ADMP没法等效地实现
作者
Author:
星斗如盘    时间: 2021-8-10 19:43
sobereva 发表于 2021-8-10 19:34
ADMP和BOMD的情况完全不同,我前面说的是BOMD
Gaussian里的ADMP没法等效地实现

使用IOp(1/44=N),N设置为多少比较合适呢?
作者
Author:
sobereva    时间: 2021-8-11 02:43
星斗如盘 发表于 2021-8-10 19:43
使用IOp(1/44=N),N设置为多少比较合适呢?

随意
这只是个随机数种子,不懂什么叫随机数种子的话google一下便知
作者
Author:
Kikyou    时间: 2022-5-16 18:46
求一下软件的下载链接
作者
Author:
Accelerator    时间: 2022-5-18 17:11
本帖最后由 Accelerator 于 2022-5-18 17:16 编辑
Kikyou 发表于 2022-5-16 18:46
求一下软件的下载链接

链接: https://pan.baidu.com/s/10sUwJgdqZ4v1tUxaP2ogiQ?pwd=munm 提取码: munm

作者
Author:
Kikyou    时间: 2022-5-18 17:48
Accelerator 发表于 2022-5-18 17:11
链接: https://pan.baidu.com/s/10sUwJgdqZ4v1tUxaP2ogiQ?pwd=munm 提取码: munm

收到,谢谢老师!
作者
Author:
baobaoxiaoqizi    时间: 2023-3-30 20:19
想请教一下,初始的freqinHP频率文件是只包含了一个结构吗?还是要先给过渡态不同的初始速度,生成多个起始结构呢?这部分是怎么操作的呢?
作者
Author:
Accelerator    时间: 2023-3-30 22:09
baobaoxiaoqizi 发表于 2023-3-30 20:19
想请教一下,初始的freqinHP频率文件是只包含了一个结构吗?还是要先给过渡态不同的初始速度,生成多个起始 ...

只需一个。初始速度和初始结构是自动生成的
作者
Author:
baobaoxiaoqizi    时间: 2023-4-20 10:05
Accelerator 发表于 2023-3-30 22:09
只需一个。初始速度和初始结构是自动生成的

十分感谢您的回复,理解了。
还有一个问题,我尝试您的算例跑动力学,但是发现总是报错,看了log文件的输出信息,发现内存不够:
Out-of-memory error in routine RdGeom-AllZAt (IEnd=      21250090 MxCore=      20000000)
Use %mem=23MW to provide the minimum amount of memory required to complete this step.
Error termination via Lnk1e in /data/home/baoly/soft/g16/l101.exe at Mon Apr 10 20:09:43 2023.

而且命令行:
%nproc=1
Will use up to    1 processors via shared memory.
%mem=20000000,
这与progdyn.conf文件所设置的内存数和核数不一致,不知道是哪里出现的问题,想向您请教。
[网盘链接:https://pan.baidu.com/s/17_3u5n1NzAG_qpXc1UAeqA  提取码:i43t]
作者
Author:
youxx189    时间: 2023-6-30 17:19
Accelerator 发表于 2019-3-21 13:29
抱歉才看到,网盘链接已经在ls更新

您好  请问现在有安装包嘛?求!
作者
Author:
黑胡桃    时间: 2024-5-31 12:01
楼主好,我最近用到这个程序,但是出现了报错。我看了一下,应该是初始的构象读取出错了,所有原子都在一个位置。但是我看了freqinHP文件是没有问题的,所有的路径应该也是对的不知道哪里出问题了




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