# Gjf Editor

> 用于编辑或创建 Gaussian 输入文件（.gjf），支持添加 Link 0 指令（%chk、%oldchk、%nprocshared、%mem）、Route 行关键词、电荷和多重度。可对已有 gjf 文件进行参数填充，也可从零创建新的 gjf 文件。

- Skill: `cas-bigdatalab/gjf-editor` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add cas-bigdatalab/gjf-editor`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cas-bigdatalab/gjf-editor/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: cas-bigdatalab (https://skillmd.com/u/cas-bigdatalab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cas-bigdatalab/gjf-editor

---


# gjf_editor 技能

## 功能说明

该技能用于编辑或创建 Gaussian 输入文件（.gjf），主要功能包括：
- 为 OpenBabel 生成的基础 gjf 文件添加完整的计算参数（Link 0 指令、Route 行、电荷和多重度）
- 支持从零创建新的 gjf 文件（不提供输入文件时）
- 支持添加 `%oldchk` 参数用于 restart 计算

## 触发条件

- 当需要为 Gaussian 计算准备输入文件时使用此技能
- 当需要将简单的坐标文件转换为完整的 Gaussian 输入文件时使用此技能
- 当需要设置 restart 计算参数（%oldchk）时使用此技能

## 核心功能

- 添加 Link 0 指令：%chk、%oldchk、%nprocshared、%mem
- 设置 Route 行关键词
- 设置电荷和多重度
- 保留或自定义标题行
- 从零创建空的 gjf 文件模板

## 使用方法

```bash
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 文件

```bash
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 参数的单点能计算

```bash
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：从零创建新文件

```bash
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 文件仅包含参数部分，需手动添加坐标
