批量提交高斯计算任务脚本及详解(g16/g09/g03版本)"/>
Shell单个或者批量提交高斯计算任务脚本及详解(g16/g09/g03版本)
我的电脑安装的高斯版本为g16版,下面是基于该版本的提交,如果是其它版本请做对应的修改,只需要将其中关键词“g16”改成对应的版本即可,如改为“g09”或者“g03”。
1. 测试高斯是否已安装(安装方法请参考sobereva博文Gaussian的安装方法):
在终端输入[room@localhost ~ ] $ g16
如果出现下列字样,说明已经安装好g16版本高斯
Entering Gaussian System, Link 0=g16:g16
2. 假设在终端当前文件下存在名为 test.gjf 的输入文件,文本内容如下,注意尾行需要空一行,否则会报错:
%nprocshared=6
%mem=2500MB
# opt b3lyp/3-21g* geom=connectivityTitle Card Required0 1O -0.95826889 -0.45595053 0.00000000H 0.00173111 -0.45595053 0.00000000H -1.27872348 0.44898530 0.000000001 2 1.0 3 1.023
3. 提交上面任务(单个任务)
直接使用命令:g16 test.gjf & (这时文件夹会生成一个test.log文件,即为计算输出文件,计算实例很快就能计算完成。)
或者使用下面命令,输出信息会输出到自己定义的文件:
g16 < test.gjf > test.out (信息都输出到test.out里。末尾可以再加上&令任务在后台运行)
4. 批量提交终端目录下所有高斯任务(比如数百个输入文件放在同一目录下,显然一个一个计算不现实):
新建后缀为.sh的文件,比如:g16.sh,将下面代码复制粘贴到该文件
#!/bin/bash
for input in *.gjf
do
output=`echo ${input}|sed "s/gjf/out/g"`
g16 < ${input} > ${output}
done
授权g16.sh为可执行文件命令:chmod 777 g16.sh
提交命令:./g16.sh &
至此可以批量计算该文件夹下所有高斯输入文件。
对以上脚本的解释:
#!/bin/bash
for input in *.gjf #for循环读取所有后缀为 .gjf 的输入文件
do
output=`echo ${input}|sed "s/gjf/out/g"` #将文件的后缀由 gjf 改为 out,方便计算结果的写入
g16 < ${input} > ${output} #执行高斯计算,并将计算结果写入到output对应文件
done
5.批量提交终端目录下所有文件夹子目录下的高斯任务:
脚本如下,同4的操作步骤,实际上脚本是在4的基础上嵌套一个for循环实现对文件夹的读取
#!/bin/bash
for i in $(ls -F | grep /$)
do
cd ${i}for input in *.gjfdooutput=`echo ${input}|sed "s/gjf/out/g"`g16 < ${input} > ${output}done
cd ..
done
更多推荐
Shell单个或者批量提交高斯计算任务脚本及详解(g16/g09/g03版本)
发布评论