计算化学公社

标题: windows下materials studio批处理计算 [打印本页]

作者
Author:
QH1995    时间: 2021-3-6 20:21
标题: windows下materials studio批处理计算
本人是半路出家做量化计算的,所以很多时候都是摸着石头过河,这里我把最近掌握的windows下MS任务批处理和大家分享一下,有不足之处还请大家批评指正。
首先说一下,批处理最大的好处就是可以一次提交十几个甚至更多计算,让计算机自己去算就可以了,完全不用一个算完之后,自己在调整参数在计算,这样我们就可以安心的睡觉不用担心晚上的时间浪费了。方法如下:
一、获取待计算模型输入文件的绝对路径
首先,我们会先在MS界面上建立好模型,然后选择Modules下需要的泛函,并调整好参数,我们这里以Dmol3为例。
所有参数设置好之后,不要点Run,点旁边的Files——Save Files,就会自动生成输入文件。
(, 下载次数 Times of downloads: 72)
我们右键MS界面上新生成的文件夹,选择第三个Open Containing Folder,进一步打开对应的文件夹,里面会有一系列输入文件,可以在input上看到自己之前输入的参数。
(, 下载次数 Times of downloads: 58)
此时,我们需要获取当前的绝对路径,很简单的方法就是在红色区域内右键选择将地址复制为文本,这样我们就获得了第一个关键路径,我这里是C:\Users\11147\Desktop\1_Files\Documents\Test\sample\test1 DMol3 GeomOpt
(, 下载次数 Times of downloads: 82)
二、获取MS程序中运行脚本所在绝对路径
我这里是Dmol3模块为例,所以就是需要找RunDMol3.bat文件,其他同理。

有一个比较方便的方法就是直接ctrl+F搜索RunDMol3.bat,然后就会出现几个路径。我这里的路径是:   E:\Materials Studio 7.0\Materials Studio 17.1\etc\DMol3\bin
这样,第二个绝对路径就找到了。

三、建立bat脚本
首先新建一个文本格式文档(.txt)
我这里输入的是
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit

@echo off

REM 声明采用UTF-8编码   
chcp 65001



cd C:\Users\11147\Desktop\1_Files\Documents\Test\sample\"test1 DMol3 GeomOpt"
call E:\"Materials Studio 7.0"\"Materials Studio 17.1"\etc\DMol3\bin\RunDMol3 -np 8
test1
echo 任务test1完成
echo %date% %time%
echo.



pause


其中,第一行的%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit是指每次打开脚本时,都会要求以管理员身份运行。

第二行的@echo off就可以默认是一个开始语句,个人认为和@echo on没啥区别,就在输出时候显示有点区别,不影响计算。

第三行到第四行的REM 声明采用UTF-8编码      chcp 65001表示我们采用UTF-8的语言编码,这样我们就可以在后面echo输出汉字而不是乱码。

第五行表示进入我们要计算模型的文件夹内,就是上面提到的第一个绝对路径。
第六行表示唤起MS中的RunDmol3.bat,-np表示计算需要的核数,8表示用8个核数计算,test1是我们的任务名称,这里注意第六行的test1和第五行的test1 DMol3 GeomOpt中的test1一定要对上,不然计算出错,这也是我看到好多网上出错人们找不到问题的原因。
第七行表示输出完成提示。
第八行表示输出当前时间。
第九行表示输出空格。
第十行的pause表示上述计算完成后暂不退出,需按下任意键才能退出。


接下来,把txt格式换成bat格式就可以了。最后双击即可。


这里强调几点:
1、在第五行和第六行中,如果有的文件夹名称中间含有空格建议把这个文件夹名称用英文的双引号圈出。
2、最后计算完成后,需要我们刷新一下MS中project目录,就会把计算得到的数据可视化呈现。
3、对计算好的xsd文件需要Modules——DMol3——Analysis——Structure——Update,这样就把优化结构导出来了。

4、其实,我所说的内容和linux系统计算方法非常接近,而且都可以从MS自带的RunDMol3.Readme找到。
(, 下载次数 Times of downloads: 86)
如果有不对或者不完善的地方欢迎大家批评指正,Thx~


作者
Author:
ocbrother    时间: 2021-6-1 09:34
你好,请问Forcite 模块是不是不能用批处理。设置计算参数时,他没有Files 这个选项。
作者
Author:
QH1995    时间: 2021-6-1 15:38
ocbrother 发表于 2021-6-1 09:34
你好,请问Forcite 模块是不是不能用批处理。设置计算参数时,他没有Files 这个选项。

不好意思啊,我一般只用castep和dmol3这两个模块,forcite没有用过~
作者
Author:
ocbrother    时间: 2021-6-1 15:55
QH1995 发表于 2021-6-1 15:38
不好意思啊,我一般只用castep和dmol3这两个模块,forcite没有用过~

好的,谢谢你了

作者
Author:
吃生菜的阿强    时间: 2025-6-6 09:57
请问想要创建一个任务队列,可以直接在这个代码后重复添加以下内容吗?

cd C:\Users\11147\Desktop\1_Files\Documents\Test\sample\"test1 DMol3 GeomOpt"
call E:\"Materials Studio 7.0"\"Materials Studio 17.1"\etc\DMol3\bin\RunDMol3 -np 8 test1
echo 任务test1完成
echo %date% %time%
echo.




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