Shell单个或者批量提交高斯计算任务脚本及详解(g16/g09/g03版本)

编程入门 行业动态 更新时间:2024-10-23 16:17:07

Shell单个或者<a href=https://www.elefans.com/category/jswz/34/1770428.html style=批量提交高斯计算任务脚本及详解(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版本)

本文发布于:2024-02-13 04:36:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1690712.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:批量   详解   脚本   高斯   版本

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!