计算化学公社
标题:
简单的交互式脚本将gjf文件批量转化为ORCA的inp文件
[打印本页]
作者Author:
Tanghaoru
时间:
2026-1-26 01:26
标题:
简单的交互式脚本将gjf文件批量转化为ORCA的inp文件
本帖最后由 Tanghaoru 于 2026-2-7 23:47 编辑
1 脚本介绍
“gjf_to_inp.sh”脚本是调用Multiwfn进行批量转化,可将当前文件夹中的gjf文件转化ORCA的inp输入文件。
该脚本的特点:将多个inp模板集合到一个脚本中,避免了为了多个计算任务准备多个转化脚本。每次只需要输入对应任务的数字指令就能将gjf文件转化为特定任务的inp文件。
2 运行前的准备
2.1 确定你的模板文件的位置,即把一些inp模板文件放在一个指定的文件夹中
# location of template files
TEMPLATE_DIR=
"
/home/hao/work/template
"
2.2 可自行定义选项
例如想添加一个optimization的选项,直接在echo "1) frequency"的下一行添加echo "2) optimization"。
echo "Available templates:"
echo "1) frequency"
echo ""
添加后的形式
echo "Available templates:"
echo "1) frequency"
echo "2) optimization"
echo ""
ps:可以根据自己喜好将frequency改为其他名字
2.3 可自行定义选项代表的inp文件
想在1)后添加optimization任务的模板文件,则直接将在;;后再加五行信息。
例如
case $choice in
1)
template_src="${TEMPLATE_DIR}/freq.inp"
task_type="B3LYP D3 def2-SVP freq"
task_prefix="freq"
;;
*)
echo "Invalid choice! Please select 1-10."
exit 1
;;
esac
添加后为
1)
template_src="${TEMPLATE_DIR}/freq.inp"
task_type="B3LYP D3 def2-SVP freq"
task_prefix="freq"
;;
2)
template_src="${TEMPLATE_DIR}/opt.inp"
task_type="B97-3c opt"
task_prefix="opt"
;;
*)
echo "Invalid choice! Please select 1-10."
exit 1
;;
esac
ps:task_type里的内容只是提醒当前模板下的关键词是啥;task-prefix中的内容是提醒任务的类别,这个将会影响生成的inp文件的名字。但都不影响脚本的运行,可根据喜好自行修改。template_src中的freq.inp、opt.inp得根据inp模板文件的名称进行修改,这将影响脚本调用哪个模板文件。
2.4 配置Multiwfn的路径
大概在当前脚本的第130行处,根据自己的实际路径进行修改。
/opt/Multiwfn/Multiwfn
${inf} << EOF > /dev/null 2>&1
3 运行流程(我的运行环境为:Ubuntu-24.04, wsl)
3.1 先执行
chmod +x gjf_to_inp.sh
,用于添加执行权限
3.2 在命令窗口中输入
./gjf_to_inp.sh
3.3 随后窗口会出现
Available templates:
1) frequency
2) optimization
输入
相应任务的数字
,再
输入
“
y
”,再
点击 “回车键/enter
”,就会最终提醒
Conversion completed!
Total: 2 files converted
最终相应任务的inp文件会出现在当前文件夹中。
附件中有脚本出现的相关的inp模板文件,可根据自己需要自行修改模板inp文件中的关键词。
第一次尝试写个教程,如有错误,欢迎批评指正。
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3