我的电脑安装的高斯版本为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=connectivity

Title Card Required

0 1
 O                 -0.95826889   -0.45595053    0.00000000
 H                  0.00173111   -0.45595053    0.00000000
 H                 -1.27872348    0.44898530    0.00000000

 1 2 1.0 3 1.0
 2
 3

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 *.gjf
    do
    output=`echo ${input}|sed "s/gjf/out/g"`
    g16 < ${input} > ${output}
    done
cd ..
done

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐