소스 정보
- 저장소
- Phoinikas03/VASP_Agent
- 최근 소스 활동
- 2026년 7월 3일 16:57
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 4
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/Phoinikas03/VASP_Agent --skill workflow-relax명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | workflow-relax |
| description | 执行 VASP 结构松弛计算的自动化工作流。当用户要求进行结构松弛、优化晶体结构、或为特定材料准备 VASP 输入文件时触发该技能。 |
| version | 2.2.0 |
你是一个专业的计算材料学专家。这个 Skill 用于指导你自动化地完成 VASP 结构松弛(Structural Relaxation)所需输入文件的准备、计算执行与结果分析。
relax/
├── SKILL.md ← 本文件(工作流指令)
├── scripts/
│ ├── check_convergence.py ← 检查离子步/电子步收敛状态,输出 JSON
│ └── analyze_result.py ← 提取最终能量、力、压力、体积,输出 JSON
├── references/
│ ├── incar_params.md ← 按材料类型的 INCAR 参数经验表(含 DFT+U)
│ └── troubleshooting.md ← 常见报错与处理方案
└── templates/
├── INCAR_relax_full ← ISIF=3 全松弛模板(原子+晶胞)
└── INCAR_relax_ions ← ISIF=2 仅松弛原子坐标模板
Skill(structure-builder):根据 Materials Project ID 获取 POSCAR,或构建/校验初始结构duckduckgo_search / google_search:搜索文档、参数建议、报错解决方案visit_webpage:提取网页全文Skill (research-literature):检索特定材料的 DFT 计算参数文献及实验对比值Skill (workflow-convergence):对固定 POSCAR 做静态单点(NSW=0)ENCUT 与 KSPACING 收敛测试(1 meV/atom),产出 Convergence_Report.md。在需要严格确定截断能与 K 点网格、或与后续静态/EOS/带隙计算参数对齐时使用;不替代本 skill 中的离子松弛Skill (vasp-error-recovery):当松弛计算失败、未收敛、疑似卡住、或需要判断是否应先停止当前 run 再修改参数重跑时使用setup_vasp_inputs:生成 POTCAR 与 POSCAR 拷贝;若 INCAR 中含 KSPACING 则仅用 INCAR 定义 K 点、不生成 KPOINTS;否则按 kpoints_density 生成 KPOINTS;用户明确指定赝势变体时,通过 potcar_overrides 传入 JSON object(如 {"Cr": "Cr_pv"})Write / Edit:生成和修改工作区文件Bash:文件管理、运行后处理脚本Read / Grep:读取日志和输出文件注意:当前运行在无 GUI 的终端环境中。若需向用户提问,直接输出纯文本问题并停止生成,等待用户在终端输入回复。
执行方式(与系统 ITERATIVE EXECUTION RULE 一致):每次 VASP 运行(含 续算:CONTCAR→POSCAR 后的新一轮)须单独提交并在继续前检查收敛;严禁用 Bash/Python 的 for 循环或单条命令把多次松弛/多组 INCAR 试探一次性后台跑完。允许的一次性脚本仅限本 skill scripts/ 下列出的工具(如 check_convergence.py、analyze_result.py)。
询问用户属于以下哪种情况,等待回复:
Skill: structure-builder 下载或构建 POSCARSkill: structure-builder 的 fetch_mp_poscar.py 下载 POSCAR在写 INCAR 之前,先查阅本地参考文档:
Read references/incar_params.md,根据材料(金属/半导体/绝缘体/磁性/2D/强关联)确定:
ISMEAR / SIGMAISPIN + MAGMOMLDAU + LDAUU(DFT+U)IVDW(vdW 修正)ISIF 选择(全优化用 3,固定晶格用 2)仅当材料特殊(新型钙钛矿、稀土化合物等)且参考文档未覆盖时,调用 Skill: research-literature,并明确告知:
"BiFeO3")INCAR_explanation.md(可选)ENCUT / KSPACING 收敛:若希望与文献或后续计算(EOS、带隙、静态能量)严格可比的 ENCUT 与 KSPACING,在写入松弛用 INCAR 之前,必须先询问用户是否要进行 ENCUT/KSPACING 收敛测试(说明多步静态计算、耗时与机时),停止并等待回复。不得在未获用户同意时假定执行或自动载入收敛 skill。若用户同意,再载入 Skill: workflow-convergence(该 skill 内含执行前的用户确认流程),对当前 POSCAR 做静态单点收敛,将 Convergence_Report.md 中的参数填入松弛 INCAR。若用户拒绝或只关心几何优化,使用模板默认 ENCUT/KSPACING,并在 INCAR_explanation.md 中注明未做系统收敛。
Read templates/INCAR_relax_full(或 INCAR_relax_ions,视 ISIF 决定),按材料填入第 2 步确定的参数(模板已含 KSPACING / KGAMMA,可按体系收敛需求改 KSPACING)Write INCAR(写入工作区)Write INCAR_explanation.md,记录每个关键参数的选择依据及参考来源调用 setup_vasp_inputs,传入 poscar_path 和 incar_path,自动生成 POTCAR(并在 INCAR 含 KSPACING 时不生成 KPOINTS)。若用户明确要求特定 POTCAR 变体,在同一次工具调用中传入 potcar_overrides,例如 {"Cr": "Cr_pv"};如果工具拒绝该 override,停止并向用户报告错误,不得改用 Bash/Python 手工生成、拼接或复制 POTCAR。
仅当 INCAR 中未设置 KSPACING 时,才依赖 kpoints_density 生成 KPOINTS;金属等需更密网格时应优先收紧 KSPACING 数值,而非仅调大 kpoints_density。
按 Skill run-vasp,通过 Bash 调用 python .claude/skills/run-vasp/scripts/vasp_runner.py 提交计算;不得直接手写 mpirun ... vasp_std/vasp_gpu。单目录松弛任务应显式传 --log-file vasp_relax.log;若是续算,继续沿用该日志名或在向用户汇报时明确新的日志文件名。
等待完成时遵守仓库 LOCAL COMPUTE:鼓励周期性检查,对长任务优先采用较粗的检查间隔(例如 5 分钟),必要时再临时加密;避免长时间 TaskOutput + block: true 冻结 Web/IDE。优先用 block: false 的周期性轮询或带 sleep 的后台 Bash 检查直至结束,再跑 check_convergence.py 等。
计算结束后:
python scripts/check_convergence.py .
根据 JSON 输出判断:
| 字段 | 期望值 | 未达到时的处理 |
|---|---|---|
ionic_converged | true | 将 CONTCAR 复制为 POSCAR,增大 NSW 后续算;参考 references/troubleshooting.md |
nsw_reached | false | 若为 true 但 ionic_converged 为 false,同上续算 |
electronic_converged | true | 检查 errors 字段,参考 troubleshooting.md 调整 ALGO/NELM |
contcar_exists | true | 若为 false,说明计算异常退出,检查 errors 和 last_lines |
若遇到报错、未收敛、或日志长时间无更新,处理顺序必须是:
Read references/troubleshooting.mdcd "<Repository root>" && python .claude/skills/vasp-error-recovery/scripts/analyze_error.py --work-dir "<当前松弛目录>"
依据 vasp-error-recovery 的结构化输出判断:
NELM / ALGO / NSW / POTIM 等参数后续算若 vasp-error-recovery 建议先停旧 run,必须先向用户说明证据与拟修改方案,并等待用户明确同意。只有在用户明确同意后,才允许:
cd "<Repository root>" && python .claude/skills/run-vasp/scripts/terminate.py --work-dir "<当前松弛目录>" --reason "<停止原因>"
vasp_runner.py / mpirun计算成功后:
python scripts/analyze_result.py .
从 JSON 输出中读取并向用户汇报:
final_energy_eV / final_energy_per_atom:最终总能量max_force_eV_A:最大原子力(应小于 EDIFFG 的绝对值)pressure_kbar:最终压力(理想松弛结果应接近 0)volume_A3:最终晶胞体积contcar_path:松弛后结构文件路径(后续计算的输入)向用户报告:
CONTCAR,后续计算应以此为起点)INCAR、INCAR_explanation.md、CONTCAR、OUTCARSkill: workflow-electronic-structure)for/while 的 Bash/Python 一次提交多次松弛或多组参数;每次计算或续算均须单独提交并核查后再进行下一步。references/incar_params.md 和 troubleshooting.md;本地未覆盖时调用 Skill: research-literature 检索,而非直接调用 arxiv_search 或搜索工具,确保结果结构化且带引用。workflow-convergence;该流程为静态单点,与离子步松弛分离,完成后将参数并入松弛 INCAR。vasp-error-recovery:若松弛失败、长期无新输出、或准备判断是否终止旧 run,优先用 vasp-error-recovery 做证据化诊断;只有在用户明确同意后,才可调用 terminate.py。vasp_relax.log),不要只停留在外层 Bash/任务系统输出。