Install
openclaw skills install cp2k-input-generatorThis skill should be used when generating CP2K input files (.inp) for quantum chemistry calculations. Use when users request CP2K input file creation from structural files (cif, pdb, xyz, etc.) or CP2K output files, with specifications for calculation types (energy calculation, geometry optimization, molecular dynamics, frequency analysis, NEB, etc.), computational methods (DFT, QMMM, MM), and other parameters.
openclaw skills install cp2k-input-generator本 Skill 用于根据用户的计算要求和结构文件,生成准确可用的 CP2K 输入文件。支持多种计算类型、结构格式和计算方法,并能够根据体系特征自动选择合适的参数。
当用户提及以下内容时应该使用此 Skill:
向用户确认或从描述中提取以下信息:
必需参数:
计算类型 (RUN_TYPE):
结构文件:
重要参数(如果没有提供需要询问): 3. 计算方法:
周期性条件:
电荷和自旋:
可选参数(如果没有提供可以使用默认值): 6. 交换关联泛函: PBE, BLYP, PBE0, HSE06 等 7. 基组类型: DZVP-MOLOPT, TZVP-MOLOPT 等 8. k点采样: Monkhorst-Pack 网格 9. CUTOFF: 平面波截止能量 10. SCF 收敛判据 11. MD 参数: 系综,温度,时间步长,步数 12. 几何优化参数: 优化器,收敛判据,最大迭代次数
使用 read_file 工具读取结构文件内容,然后:
根据体系特征和计算需求,智能选择参数:
基组选择:
体系大小判断:
- 小体系 (<50 原子): TZVP-MOLOPT-GTH
- 中等体系 (50-200 原子): DZVP-MOLOPT-SR-GTH
- 大体系 (>200 原子): DZVP-MOLOPT-SR-GTH
CUTOFF 选择:
- 小分子: 300-350 Ry
- 中等体系: 400-500 Ry
- 大体系: 500-600 Ry
k点选择:
周期性体系:
- 原胞: 4x4x4 或 6x6x6
- 2x2x2 超胞: 2x2x2
- 3x3x3 超胞: Γ 点 (1x1x1)
- 4x4x4 超胞: Γ 点 (1x1x1)
- 表面模型: 8x8x1 或 6x6x1
SCF 参数:
- MAX_SCF: 128 (标准), 300 (困难体系)
- EPS_SCF: 5.0E-06 (标准), 1.0E-05 (快速), 1.0E-07 (高精度)
- DIAGONALIZATION: STANDARD (小体系), DAVIDSON (大体系)
- MIXING: BROYDEN_MIXING 或 PULAY_MIXING
根据计算类型生成相应的输入文件结构:
&GLOBAL
PROJECT <project_name>
PRINT_LEVEL <level>
RUN_TYPE <calculation_type>
&END GLOBAL
&FORCE_EVAL
METHOD <Quickstep/QMMM/Classical>
&SUBSYS
&CELL
晶胞定义
&END CELL
&COORD
原子坐标
&END COORD
&KIND
每种元素类型的基组和赝势
&END KIND
&END SUBSYS
&DFT
BASIS_SET_FILE_NAME
POTENTIAL_FILE_NAME
CHARGE
MULTIPLICITY
[UKS] (如果自旋极化)
&KPOINTS
k点设置
&END KPOINTS
&QS
&END QS
&POISSON
&END POISSON
&XC
&XC_FUNCTIONAL <PBE/BLYP/PBE0/HSE06>
&END XC_FUNCTIONAL
&END XC
&MGRID
CUTOFF
REL_CUTOFF
NGRIDS
&END MGRID
&SCF
收敛设置
&END SCF
&END DFT
&END FORCE_EVAL
&MOTION
根据计算类型添加相应设置
&END MOTION
GEO_OPT (几何优化):
&MOTION
&GEO_OPT
TYPE MINIMIZATION
OPTIMIZER <BFGS/CG/LBFGS>
&BFGS
TRUST_RADIUS 0.2
&END BFGS
MAX_ITER 500
MAX_DR 3E-3
RMS_DR 1.5E-3
MAX_FORCE 4.5E-4
RMS_FORCE 3E-4
&END GEO_OPT
&PRINT
&TRAJECTORY
FORMAT xyz
&END TRAJECTORY
&END PRINT
&END MOTION
MD (分子动力学):
&MOTION
&MD
ENSEMBLE <NVT/NVE/NPT>
STEPS 50000
TIMESTEP 0.2-1.0 # fs
TEMPERATURE 300
&THERMOSTAT
TYPE <CSVR/NOSE/LANGEVIN>
&<THERMOSTAT_TYPE>
TIMECON 100
&END <THERMOSTAT_TYPE>
&END THERMOSTAT
&END MD
&PRINT
&TRAJECTORY
&EACH
MD 10
&END EACH
FORMAT xyz
&END TRAJECTORY
&END PRINT
&END MOTION
FREQUENCY (频率分析):
&MOTION
&FREQUENCY
&PRINT
&EIGENVECTORS
&END EIGENVECTORS
&END PRINT
&END FREQUENCY
&END MOTION
NEB (弹性带):
&MOTION
&NEB
NIMAGE 7
K_SPRING 0.5
TOL_FORCE 0.02
&END NEB
&END MOTION
自旋极化计算:
UKS 关键字MULTIPLICITY 值金属体系:
&SMearing METHOD FERMI_DIRAC WIDTH 0.01表面/平板模型:
QMMM 计算:
xTB 方法:
&QS 中设置 METHOD xTB&xTB 部分对于复杂的输入文件生成,可以使用 scripts/generate_cp2k_input.py 脚本:
python scripts/generate_cp2k_input.py <calculation_type> <structure_file> \
-o function.inp \
-p <project_name> \
-c <charge> \
-m <multiplicity> \
-f <functional>
支持的命令:
energy: 单点能量计算opt: 几何优化md: 分子动力学生成输入文件后,检查:
语法正确性:
&SECTION 都有对应的 &END SECTION参数一致性:
文件路径:
资源预估:
将生成的输入文件写入 function.inp:
# 使用 write_to_file 工具
write_to_file(
filePath="/path/to/function.inp",
content=inp_content
)
在 references/cp2k_input_reference.md 中包含:
当遇到复杂情况或特殊需求时,参考:
CP2K 官方文档: https://www.cp2k.org/
用户工作区的示例文件:
/file/SP/: 单点计算示例/file/opt/: 几何优化示例/file/MD/: 分子动力学示例/file/NEB/: NEB 计算示例/file/DOS/: 态密度示例/file/freq/: 频率分析示例/file/QMMM/: QMMM 计算示例在生成输入文件时,如果需要详细参考:
read_file("references/cp2k_input_reference.md")
| 计算类型 | RUN_TYPE | 主要用途 | 关键参数 |
|---|---|---|---|
| 单点能量 | ENERGY | 计算体系总能量 | CUTOFF, k-points |
| 能量+力 | ENERGY_FORCE | MD前准备 | 同上 |
| 几何优化 | GEO_OPT | 优化结构 | OPTIMIZER, 收敛判据 |
| 分子动力学 | MD | 模拟时间演化 | ENSEMBLE, TIMESTEP, STEPS |
| 频率分析 | FREQUENCY | 计算振动频率 | - |
| 能带结构 | BAND_STRUCTURE | 固体能带 | k点路径 |
| 态密度 | ENERGY + 特殊k点 | 电子态密度 | 高密度k点 |
| NEB | NEB | 反应路径 | NIMAGE, K_SPRING |
| QMMM | ENERGY/QMMM | 大体系精确计算 | QM/MM分区 |
问题 1: SCF 不收敛 解决方案:
问题 2: 计算太慢 解决方案:
问题 3: 内存不足 解决方案:
问题 4: 结果不准确 解决方案:
默认输出文件名为 function.inp,但如果用户指定了项目名称,可以使用:
{project_name}.inp{calculation_type}.inpcalc_{date}.inp始终确保输出文件在用户指定的位置。