一键导入
convergence-test
Use when the user asks to test ENCUT convergence, k-point convergence, or any parameter sweep to determine converged computational settings.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when the user asks to test ENCUT convergence, k-point convergence, or any parameter sweep to determine converged computational settings.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create and manage computational chemistry workflows with CatGo. Supports VASP, CP2K, ORCA, MLP, LAMMPS. Build OER/HER/CO2RR workflows, geometry optimization, frequency analysis, Gibbs energy calculations.
Run and resume the CatGo md-orchestration poll loop — delegate each poll to a subagent (keep main context lean), verify convergence by force, auto-advance each converged species per-species (pipeline, not barrier), and resume a campaign from disk after context compaction / new session. Use when driving or resuming a campaign's job-watch loop. Pairs with catgo-campaign.
Run a CatGo file-first md-orchestration "campaign" — a multi-step / high-throughput computational-materials study (e.g. SAA HER screening) driven from a human-readable folder + markdown tree, not the DB workflow engine. Use when the user says "跑一个 campaign", "md 模式跑", "high-throughput screening", or wants an agent-in-the-loop study with stages/funnel/analysis/report. Requires `catgo` on PATH.
Route computational chemistry requests to the correct software and task skill. Entry point for all CatGo agent interactions.
Drive a file-first, agent-in-the-loop computational campaign via a folder + markdown tree (no DB). Use when the user opts out of the visual workflow engine.
Authoring conventions for CatGo md-orchestration campaigns — progressive markdown, README+INDEX pairs and keeping them current, logging interventions to LESSONS, human-readable (never-hash) names, and the progressive (top→stage→calc) plan. Use when creating/editing any campaign markdown (plan/README/INDEX/STATUS/LESSONS) so the file tree stays navigable and resumable. Pairs with catgo-campaign.
| name | convergence-test |
| description | Use when the user asks to test ENCUT convergence, k-point convergence, or any parameter sweep to determine converged computational settings. |
Before production calculations, verify that results are converged with respect to key numerical parameters. The two most important are:
Convergence is reached when the target property (energy, forces, band gap) changes by less than a threshold (typically 1 meV/atom for energy).
Convergence tests use a fan-out DAG: one input structure feeds into
multiple independent single_point calculations with different parameter
values.
+--> single_point(ENCUT=300)
|
structure_input ---+--> single_point(ENCUT=400)
|
+--> single_point(ENCUT=500)
|
+--> single_point(ENCUT=600)
|
+--> single_point(ENCUT=700)
Use single_point (not geo_opt) to isolate the parameter effect without
geometry changes confounding the comparison.
{"tool": "catgo_workflow_engine", "arguments": {
"action": "create", "name": "ENCUT convergence - TiO2"
}}
{"tool": "catgo_workflow_engine", "arguments": {
"action": "add_task", "workflow_id": "wf_conv",
"task_type": "single_point",
"params": {"software": "vasp", "ENCUT": 300, "system_name": "ENCUT=300"}
}}
{"tool": "catgo_workflow_engine", "arguments": {
"action": "add_task", "workflow_id": "wf_conv",
"task_type": "single_point",
"params": {"software": "vasp", "ENCUT": 400, "system_name": "ENCUT=400"}
}}
{"tool": "catgo_workflow_engine", "arguments": {
"action": "add_task", "workflow_id": "wf_conv",
"task_type": "single_point",
"params": {"software": "vasp", "ENCUT": 500, "system_name": "ENCUT=500"}
}}
Repeat for ENCUT = 600, 700, 800.
{"tool": "catgo_workflow_engine", "arguments": {
"action": "submit", "workflow_id": "wf_conv"
}}
{"tool": "catgo_workflow_engine", "arguments": {
"action": "get_result", "workflow_id": "wf_conv", "task_id": "task_encut300"
}}
{"tool": "catgo_analyze", "arguments": {
"action": "convergence", "workflow_id": "wf_conv"
}}
{"tool": "catgo_workflow_engine", "arguments": {
"action": "add_task", "workflow_id": "wf_conv",
"task_type": "single_point",
"params": {"software": "vasp", "ENCUT": 520, "KPOINTS": [2,2,1],
"system_name": "2x2x1"}
}}
{"tool": "catgo_workflow_engine", "arguments": {
"action": "add_task", "workflow_id": "wf_conv",
"task_type": "single_point",
"params": {"software": "vasp", "ENCUT": 520, "KPOINTS": [4,4,1],
"system_name": "4x4x1"}
}}
Repeat for 6x6x1, 8x8x1. Use the converged ENCUT from the previous test.
from catgo.workflow import Workflow
wf = Workflow("ENCUT convergence - TiO2")
inp = wf.add_task("structure_input", structure=tio2_json)
encut_values = [300, 400, 500, 600, 700, 800]
tasks = {}
for encut in encut_values:
tasks[encut] = wf.add_task("single_point",
structure=inp.output.structure,
software="vasp", ENCUT=encut,
system_name=f"ENCUT={encut}")
wf.submit()
wf = Workflow("KPOINTS convergence - TiO2 slab")
inp = wf.add_task("structure_input", structure=tio2_slab_json)
kpoints_list = [[2,2,1], [4,4,1], [6,6,1], [8,8,1], [10,10,1]]
for kp in kpoints_list:
label = f"{kp[0]}x{kp[1]}x{kp[2]}"
wf.add_task("single_point",
structure=inp.output.structure,
software="vasp", ENCUT=520, KPOINTS=kp,
system_name=label)
wf.submit()
| Property | Threshold | Typical Converged ENCUT |
|---|---|---|
| Total energy | 1 meV/atom | 1.3x max(ENMAX) in POTCAR |
| Forces | 5 meV/A | Same as energy |
| Band gap | 10 meV | May need higher ENCUT |
| Stress tensor | 0.1 kbar | Often needs 1.5x ENMAX |
| System | Starting ENCUT Range | Notes |
|---|---|---|
| Simple metals (Cu, Pt) | 300-500 | Usually converges quickly |
| Oxides (TiO2, RuO2) | 400-600 | O has high ENMAX |
| Nitrides, carbides | 400-600 | N, C have moderate ENMAX |
| F-containing | 500-800 | F has very high ENMAX |
This avoids the combinatorial explosion of testing all ENCUT x KPOINTS pairs.
single_point, not geo_opt. Geometry changes at different
ENCUT introduce noise that masks the convergence behavior.