计算化学公社

 找回密码 Forget password
 注册 Register
Views: 541|回复 Reply: 4
打印 Print 上一主题 Last thread 下一主题 Next thread

[新手求助] 求助算多个中间体能量最小化任务的运行脚本

[复制链接 Copy URL]

45

帖子

0

威望

272

eV
积分
317

Level 3 能力者

各位老师好!现在我想要跑一下60多个分子的能量最小化,我现在用的服务器系统是Linux系统,因为输入文件有点多,想要有一个一次性输入脚本依次运行这些输入文件的命令,目前尝试了两个命令
第一个是:nohup g09 < input1.gjf | tee output1.out & wait
nohup g09 < input2.gjf | tee output2.out & wait
nohup g09 < input3.gjf | tee output3.out & wait
第二个是:nohup g09 < input4.gjf | tee output4.out &
nohup g09 < input5.gjf | tee output5.out &
nohup g09 < input6.gjf | tee output6.out &
运行的时候发现,第一种命令在一开始产生了3个out文件,但是有两个文件是空的,在运行完第一个文件后就停止了;第二种命令是3个任务同时运行的同时都在产生out文件,这可能不太适合我这么多的分子
请教各位老师,我应该怎么写这个依次运行文件的脚本?下面是我的输入文件

5万

帖子

99

威望

5万

eV
积分
112426

管理员

公社社长

2#
发表于 Post on 2023-11-24 07:05:43 | 只看该作者 Only view this author
使用Gaussian时的几个实用脚本和命令
http://sobereva.com/258http://bbs.keinsci.com/thread-190-1-1.html
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

105

帖子

0

威望

487

eV
积分
592

Level 4 (黑子)

3#
发表于 Post on 2023-11-24 12:17:39 | 只看该作者 Only view this author
我理解一下,你想要的是依次运行这些gjf,假设他们都在一个目录下,可以使用这个脚本。
  1. #!/bin/bash

  2. for i in {1..60}
  3. do
  4.   input_file="input${i}.gjf"
  5.   output_file="output${i}.out"
  6.   g09 < $input_file | tee $output_file
  7. done
复制代码

你需要nohup的话,这个命令我不怎么了解,一种方法是直接把上述的存为.sh。
然后nohup ./runall.sh &
need offer

45

帖子

0

威望

272

eV
积分
317

Level 3 能力者

4#
 楼主 Author| 发表于 Post on 2023-11-26 19:43:03 | 只看该作者 Only view this author
Loading0760 发表于 2023-11-24 12:17
我理解一下,你想要的是依次运行这些gjf,假设他们都在一个目录下,可以使用这个脚本。

你需要nohup的话 ...

谢谢,我试过了for 循环可以,下面是我运行的代码,格式为.sh
具体在Linux系统下运行命令是
1:用formdos g16.sh 先转化sh文件
2:赋予文件权限:sudo chmod +x g16.sh
3:按照提示输入密码
4:输入./g16.sh 就可以了
#!/bin/bash

# 定义任务数量
num_tasks=60

# 循环遍历任务列表
for ((i=1; i<=num_tasks; i++)); do
    # 构建任务文件名
    task="test${i}.gjf"

    # 构建命令
    command="g16 < $task > ${task%.gjf}.out"

    # 打印当前任务命令
    echo "Running: $command"

    # 执行任务命令,并在后台运行
    eval $command &

    # 获取当前任务的进程ID
    pid=$!

    # 等待当前任务完成
    wait $pid

    # 检查任务是否成功完成
    if [ $? -eq 0 ]; then
        echo "Task completed successfully."
    else
        echo "Task failed. Exiting."
        exit 1
    fi
done

echo "All tasks completed successfully."

45

帖子

0

威望

272

eV
积分
317

Level 3 能力者

5#
 楼主 Author| 发表于 Post on 2023-11-26 19:43:44 | 只看该作者 Only view this author
sobereva 发表于 2023-11-24 07:05
使用Gaussian时的几个实用脚本和命令
http://sobereva.com/258(http://bbs.keinsci.com/thread-190-1-1.h ...

谢谢老师

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-25 22:24 , Processed in 0.171022 second(s), 23 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list