gjf_editor 技能
功能说明
该技能用于编辑或创建 Gaussian 输入文件(.gjf),主要功能包括:
- 为 OpenBabel 生成的基础 gjf 文件添加完整的计算参数(Link 0 指令、Route 行、电荷和多重度)
- 支持从零创建新的 gjf 文件(不提供输入文件时)
- 支持添加
%oldchk参数用于 restart 计算
触发条件
- 当需要为 Gaussian 计算准备输入文件时使用此技能
- 当需要将简单的坐标文件转换为完整的 Gaussian 输入文件时使用此技能
- 当需要设置 restart 计算参数(%oldchk)时使用此技能
核心功能
- 添加 Link 0 指令:%chk、%oldchk、%nprocshared、%mem
- 设置 Route 行关键词
- 设置电荷和多重度
- 保留或自定义标题行
- 从零创建空的 gjf 文件模板
使用方法
python scripts/run_gjf_editor.py --input_path <输入文件> --output_path <输出文件> --chk <检查点文件> --keywords <关键词>
参数说明
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| input_path | string | 否 | - | 输入 gjf 文件路径,省略则创建新文件 |
| output_path | string | 是 | - | 输出 gjf 文件路径 |
| chk | string | 是 | - | 检查点文件名,如 acetic_opt.chk |
| oldchk | string | 否 | - | 上一步检查点文件名,用于 restart |
| nprocshared | int | 否 | 16 | CPU 核数 |
| mem | string | 否 | 8GB | 内存设置 |
| keywords | string | 是 | - | Route 关键词,如 B3LYP/6-31G(d) |
| charge | int | 否 | 0 | 分子总电荷 |
| multiplicity | int | 否 | 1 | 自旋多重度 |
| title | string | 否 | Acetic acid opt freq | 标题行 |
示例
示例 1:编辑已有 gjf 文件
python scripts/run_gjf_editor.py \
--input_path acetic_no_param.gjf \
--output_path acetic_opt.gjf \
--chk acetic_opt.chk \
--keywords "B3LYP/6-31G(d) opt freq" \
--nprocshared 16 \
--mem 8GB \
--charge 0 \
--multiplicity 1 \
--title "Acetic acid opt freq"
示例 2:带 restart 参数的单点能计算
python scripts/run_gjf_editor.py \
--input_path acetic_no_param.gjf \
--output_path acetic_sp.gjf \
--oldchk acetic_opt.chk \
--chk acetic_sp.chk \
--keywords "B3LYP/6-31G(d) geom=allcheck guess=read" \
--nprocshared 16 \
--mem 8GB
示例 3:从零创建新文件
python scripts/run_gjf_editor.py \
--output_path new_molecule.gjf \
--chk new_molecule.chk \
--keywords "B3LYP/6-31G(d) opt"
输出格式
生成的 gjf 文件结构:
%oldchk=acetic_opt.chk ← 可选,仅当提供 oldchk 参数时
%chk=acetic_sp.chk
%nprocshared=16
%mem=8GB
#p B3LYP/6-31G(d) geom=allcheck guess=read
Acetic acid opt freq
0 1
[坐标行] ← 从输入文件提取或为空
注意事项
- UTF-8 编码读写
- 输出目录不存在时自动创建
- 若不提供输入文件,生成的 gjf 文件仅包含参数部分,需手动添加坐标