计算化学公社

标题: 关于用optDFTw程序生成的三个gjf文件计算存在的一些问题 [打印本页]

作者
Author:
qianbao    时间: 2018-6-5 21:14
提示: 该帖被管理员或版主屏蔽
作者
Author:
小范范1989    时间: 2018-6-5 21:41
使用optDFTw程序前首先要编辑一个Gaussian的长程校正泛函的单点任务文件作为模板,存到当前目录下template.gjf

或者楼主是换了文件名称,改了f90里面:
open(10,file="template.gjf",status="old")

作者
Author:
sobereva    时间: 2018-6-6 03:47
一个字一个字阅读optDFTw的帖子
作者
Author:
让你变成回忆    时间: 2018-6-6 08:10
本帖最后由 让你变成回忆 于 2018-6-6 08:13 编辑

保存一个template.gjf的模板,从open(10,file="template.gjf",status="old")可以看出这个文件是必须存在的。

其次,从open(11,file="N.gjf",status="replace")可以看出,最终生成的计算N电子体系的文件名应该为N.gjf。(其余N+1, N-1电子体系以此类推)。而你这生成的明显不是,难道是你自己手动改的?否则按理说不会生成你这样的输入文件。
作者
Author:
qianbao    时间: 2018-6-6 08:26
小范范1989 发表于 2018-6-5 21:41
使用optDFTw程序前首先要编辑一个Gaussian的长程校正泛函的单点任务文件作为模板,存到当前目录下template. ...

我确实是手动改了N.gjf的文件名。
open(10,file="template.gjf",status="old")  请问 这一行是在哪看的呀?还是自己需要在哪里编写吗?
作者
Author:
qianbao    时间: 2018-6-6 08:26
sobereva 发表于 2018-6-6 03:47
一个字一个字阅读optDFTw的帖子

好的老师
作者
Author:
qianbao    时间: 2018-6-6 08:27
本帖最后由 qianbao 于 2018-6-6 08:33 编辑
让你变成回忆 发表于 2018-6-6 08:10
保存一个template.gjf的模板,从open(10,file="template.gjf",status="old")可以看出这个文件是必须存在的 ...

open(11,file="N.gjf",status="replace")老师您好,这一处我没有找到在哪里显示
目前,我是这样操作的,请您帮忙看一下呗,谢谢:
1.编辑一个Gaussian的长程校正泛函的单点任务文件作为模板,存到当前目录下template.gjf:
2.双击点开optDFTw,就会基于这个文件产生对应不同电子数的N.gjf、N-1.gjf、N+1.gjf:
3.直接将这三个自动生成的gjf文件通入到服务器中,等待输出out文件
您看,我这样是否正确呢?
谢谢!





作者
Author:
让你变成回忆    时间: 2018-6-6 08:49
本帖最后由 让你变成回忆 于 2018-6-6 08:52 编辑
qianbao 发表于 2018-6-6 08:27
open(11,file="N.gjf",status="replace")老师您好,这一处我没有找到在哪里显示
目前,我是这样操 ...

明显不对。
这一处在optDFTw.f90这个源代码中。

优化w是一个迭代的过程,是需要根据当前的w的数值,计算出三个单点,然后算得sob老师博文中的J或者J^2的数值,如果收敛了,就输出当前的w数值,如果没收敛,则会继续迭代下去,直到J或者J^2的变化在给定的误差范围内。

我一般是在Linux下计算,Windows下应该也差不多。隐约记得在源代码中有个参数是可以控制计算平台的。因为在不同的平台下,有些命令不同(比如删除在linux下是rm,而在Windows下是del)。  你需要准备template.gjf文件,然后和编译好的可执行文件optDFTw放在同一个目录下,然后直接运行optDFTw就行了。

如果你是在Linux下计算的话,先给optDFT可执行的权限(chmod +x optDFTw),然后把optDFTw和template.gjf放在同一个目录下,执行./optDFTw   如果你连脚本怎么执行都不清楚,那就需要去补点linux的基本知识了。

作者
Author:
qianbao    时间: 2018-6-6 14:37
让你变成回忆 发表于 2018-6-6 08:49
明显不对。
这一处在optDFTw.f90这个源代码中。

您能再细指出是哪里开始错误的吗?我准备了template.gjf文件,和这个程序是在同一个文件夹下面的;然后双击点开optDFTw.exe,它弹出一下就自动关掉了,同时生成3个gjf,用Gaussian09计算得到三个out文件。
write(*,*) "Running: g09 < N.gjf > N.out"
        call system("g09 < N.gjf > N.out")
        write(*,*) "Running: g09 < N-1.gjf > N-1.out"
        call system("g09 < N-1.gjf > N-1.out")
        write(*,*) "Running: g09 < N+1.gjf > N+1.out"
        call system("g09 < N+1.gjf > N+1.out")

作者
Author:
让你变成回忆    时间: 2018-6-6 14:46
本帖最后由 让你变成回忆 于 2018-6-6 14:48 编辑
qianbao 发表于 2018-6-6 14:37
您能再细指出是哪里开始错误的吗?我准备了template.gjf文件,和这个程序是在同一个文件夹下面的;然后双 ...

如果你在windows下计算,看看环境变量是否包含有Gaussian? 如果没有包含g09,那么在call system("g09 < N.gjf > N.out")这里明显是不能够计算的。所以瞬间完成三个分子的计算,然后程序体系找不到某些值,然后自动关掉。 难道你没发现,你给出的这段代码前面还有个if的判断吗?这明显是linux下的计算方式,windows下显然不是这样。    这个程序不是仅仅生成输入文件,然后让你自己去计算,而是会自动调用Gaussian来进行计算(就如你给出的代码call system这句话)。至于如何设置环境变量,网上一搜一大堆方法。

作者
Author:
qianbao    时间: 2018-6-6 15:41
让你变成回忆 发表于 2018-6-6 14:46
如果你在windows下计算,看看环境变量是否包含有Gaussian? 如果没有包含g09,那么在call system("g09 <  ...

老师您好,在您的耐心指导下,我终于有了一点点进展,非常感谢!添加环境变量后,倒是没有立即 退出。然而,走到这,又出现错误了。isys=1 !=1: Windows  =2: Linux关于程序的设置是在这里吧,无论isys=1还是2,都是一样的结果。

作者
Author:
让你变成回忆    时间: 2018-6-6 16:00
qianbao 发表于 2018-6-6 15:41
老师您好,在您的耐心指导下,我终于有了一点点进展,非常感谢!添加环境变量后,倒是没有立即 退出。然 ...

把计算的out文件截图。
作者
Author:
qianbao    时间: 2018-6-6 16:04
让你变成回忆 发表于 2018-6-6 16:00
把计算的out文件截图。

谢谢您!太谢谢了!

作者
Author:
让你变成回忆    时间: 2018-6-6 16:59
本帖最后由 让你变成回忆 于 2018-6-6 17:05 编辑
qianbao 发表于 2018-6-6 16:04
谢谢您!太谢谢了!

我不清楚你那儿出现这个问题是什么,你提供的com文件(发帖的时候提供的)在我这边是能够正常计算的,我用的版本是g16。这个问题就等sob老师来回答了。

作者
Author:
qianbao    时间: 2018-6-6 18:39
让你变成回忆 发表于 2018-6-6 16:59
我不清楚你那儿出现这个问题是什么,你提供的com文件(发帖的时候提供的)在我这边是能够正常计算的,我 ...

那再追问您一下,这个输出文件的内容(w的数值)是在这个optDFTw的程序中看到的吧,然而我现在出错了,对吗?
谢谢!

作者
Author:
让你变成回忆    时间: 2018-6-6 19:44
qianbao 发表于 2018-6-6 18:39
那再追问您一下,这个输出文件的内容(w的数值)是在这个optDFTw的程序中看到的吧,然而我现在出错了,对 ...

是的。
不过你可以在命令行下,输入命令。然后把输出结果重定向到某个文件。这个操作我没试过,不过我觉得应该没问题。

作者
Author:
sobereva    时间: 2018-6-7 03:26
qianbao 发表于 2018-6-6 15:41
老师您好,在您的耐心指导下,我终于有了一点点进展,非常感谢!添加环境变量后,倒是没有立即 退出。然 ...


你直接用预编译版就完了,干嘛要打源代码的注意
我在编译的时候isys都已经根据要编译的平台设好了

作者
Author:
sobereva    时间: 2018-6-7 03:29
qianbao 发表于 2018-6-6 16:04
谢谢您!太谢谢了!

你当前用的win 32bit Gaussian,nproc最多只能设4,你设24显然跑不了
你用optDFTw之前应当先确保自己会用命令行方式调用Gaussian算一个最简单的任务
作者
Author:
qianbao    时间: 2018-6-7 09:55
sobereva 发表于 2018-6-7 03:29
你当前用的win 32bit Gaussian,nproc最多只能设4,你设24显然跑不了
你用optDFTw之前应当先确保自己会 ...

老师,我改成4之后,用博文里的例子先试算一下,现在程序还是不允许我继续运行,您帮忙看一下,现在我应该怎么改正呢?
谢谢老师!

作者
Author:
qianbao    时间: 2018-6-7 10:04
sobereva 发表于 2018-6-7 03:26
你直接用预编译版就完了,干嘛要打源代码的注意
我在编译的时候isys都已经根据要编译的平台设好了

老师,是这样子的,第一种运行该程序是:我将optDFTw程序下载到Windows7的计算机中,然后添加template.gjf,双击运行的optDFTw程序;第二种是Linux的24核服务器中添加了optDFTw的脚本,但是学长在写这个脚本时出现个问题,就是不能自动运行,长时间不用就会停止后台计算w。
所以,老师您看,我可以在自己的电脑上运行这个程序吗?不用服务器
作者
Author:
sobereva    时间: 2018-6-8 03:55
qianbao 发表于 2018-6-7 09:55
老师,我改成4之后,用博文里的例子先试算一下,现在程序还是不允许我继续运行,您帮忙看一下,现在我应 ...

win 32bit Gaussian内存只能分配大约1400MB左右,4GB肯定跑不了
作者
Author:
sobereva    时间: 2018-6-8 03:56
qianbao 发表于 2018-6-7 10:04
老师,是这样子的,第一种运行该程序是:我将optDFTw程序下载到Windows7的计算机中,然后添加template.gj ...

你在自己机子上若算得动显然可以
作者
Author:
qianbao    时间: 2018-6-8 19:42
sobereva 发表于 2018-6-8 03:56
你在自己机子上若算得动显然可以

好的,谢谢老师!
我改成1GB后,陆续出现这样的界面:图片1和2(最初用老师博文里面的例子,N.out和N-1.out显示502错误,N+1.out不计算)
现在计算机查出虚拟内存不够,给我自动安装一个增加内存的(没找到具体是什么):我再计算,感觉是走上正轨了!好像对了!:图3和4
最后一张是我计算机的内存:图5
谢谢老师!

作者
Author:
qianbao    时间: 2018-6-8 19:54
让你变成回忆 发表于 2018-6-6 19:44
是的。
不过你可以在命令行下,输入命令。然后把输出结果重定向到某个文件。这个操作我没试过,不过我觉 ...

谢谢您!
作者
Author:
qianbao    时间: 2018-6-8 20:22
sobereva 发表于 2018-6-7 03:29
你当前用的win 32bit Gaussian,nproc最多只能设4,你设24显然跑不了
你用optDFTw之前应当先确保自己会 ...

老师,怎么看它运行需要多少内存啊?
作者
Author:
sobereva    时间: 2018-6-9 03:21
qianbao 发表于 2018-6-8 20:22
老师,怎么看它运行需要多少内存啊?

DFT计算耗不了多少内存,对于32bit windows版一律设成%mem=1400MB就完了




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