CP2K专题

CP2K 晶胞优化与压力

Si8立方晶胞从初始体积到最终静态应力,区分晶胞与原子自由度。

更新于 2026-10-28约 6 分钟阅读按任务与环境选择适用配置
阅读本篇目录

想寻找给定外压下的晶胞参数,应使用 RUN_TYPE CELL_OPT。它允许晶胞和原子坐标一起优化;对称性、角度、体积或方向约束决定哪些晶胞自由度可以变化。本篇用Si8立方晶胞,保留立方形状,调整边长。

下载完整输入、真实结构和原始输出、数据与绘图脚本,解压后进入 run.sh 所在目录。采用CP2K 2026.2 P100构建:GNU13.3、MPICH5.0.1、CUDA12.9、OpenBLAS0.3.33、ScaLAPACK2.2.3,双精度 cp2k.psmp;每个工作流使用一个MPI进程、四个OpenMP线程和一张P100。分析用ASE3.29.0。

1 提交这一组#

sbatch submit.slurm cell

这是核时P100模板。套餐用户用 yskit 生成自己的分区脚本,保留脚本里的 bash run.sh cell;在分配的计算资源中执行,不在登录节点运行科学计算。

inputs 是可修改输入,reference/cases 是本文实际结果,work/cases 是你的新计算。脚本按“优化→取最终结构→静态单点→检查力/应力→转换结构→画图”顺序执行,不只停在程序退出。已有work时请新解压,避免覆盖原结果。

2 指定立方晶胞与优化目标#

初始a=5.35 Å,PBE/DZVP-MOLOPT-SR-GTH、Si GTH-PBE-q4、600/60 Ry、2×2×2 k网格、对角化与Broyden混合。STRESS_TENSOR ANALYTICAL 请求解析应力。

完整 input.inp:si-cell-opt-k2#

&GLOBAL
 PROJECT geometry
 RUN_TYPE CELL_OPT
 PRINT_LEVEL MEDIUM
&END GLOBAL
&FORCE_EVAL
 METHOD QS
 STRESS_TENSOR ANALYTICAL
 &DFT
  &KPOINTS
   SCHEME MONKHORST-PACK 2 2 2
  &END KPOINTS
  BASIS_SET_FILE_NAME ../DATA/BASIS_MOLOPT
  POTENTIAL_FILE_NAME ../DATA/GTH_POTENTIALS
  &QS
   EPS_DEFAULT 1.0E-12
  &END QS
  &MGRID
   CUTOFF 600
   REL_CUTOFF 60
  &END MGRID
  &SCF
   EPS_SCF 1.0E-7
   MAX_SCF 120
   SCF_GUESS ATOMIC
   ADDED_MOS 4
   &DIAGONALIZATION
    ALGORITHM STANDARD
   &END DIAGONALIZATION
   &MIXING
    METHOD BROYDEN_MIXING
    ALPHA 0.3
    NBROYDEN 8
   &END MIXING
  &END SCF
  &XC
   &XC_FUNCTIONAL PBE
   &END XC_FUNCTIONAL
  &END XC
 &END DFT
 &SUBSYS
  &CELL
   A 5.350000000000 0.000000000000 0.000000000000
   B 0.000000000000 5.350000000000 0.000000000000
   C 0.000000000000 0.000000000000 5.350000000000
   PERIODIC XYZ
   SYMMETRY CUBIC
  &END CELL
  &COORD
   Si 0.000000000000 0.000000000000 0.000000000000
   Si 1.337500000000 1.337500000000 1.337500000000
   Si 0.000000000000 2.675000000000 2.675000000000
   Si 1.337500000000 4.012500000000 4.012500000000
   Si 2.675000000000 0.000000000000 2.675000000000
   Si 4.012500000000 1.337500000000 4.012500000000
   Si 2.675000000000 2.675000000000 0.000000000000
   Si 4.012500000000 4.012500000000 1.337500000000
  &END COORD
  &KIND Si
   BASIS_SET DZVP-MOLOPT-SR-GTH
   POTENTIAL GTH-PBE-q4
  &END KIND
 &END SUBSYS
 &PRINT
  &FORCES ON
  &END FORCES
  &STRESS_TENSOR ON
  &END STRESS_TENSOR
 &END PRINT
&END FORCE_EVAL
&MOTION
 &CELL_OPT
  OPTIMIZER BFGS
  MAX_ITER 80
  MAX_FORCE 3.5E-4
  RMS_FORCE 2.0E-4
  MAX_DR 0.003
  RMS_DR 0.0015
  EXTERNAL_PRESSURE 0
  PRESSURE_TOLERANCE 200
  KEEP_ANGLES .TRUE.
  KEEP_SYMMETRY .TRUE.
 &END CELL_OPT
&END MOTION

关键设置:SYMMETRY CUBIC 表明立方晶胞,KEEP_SYMMETRY TRUE 保持立方形状;KEEP_ANGLES TRUE 保持角度,EXTERNAL_PRESSURE 0 以零外压为目标,压力单位bar;容差200 bar=0.02 GPa。这里没有设置KEEP_VOLUME,因此允许体积变化。

CELL_OPT同时放松原子。若保持体积或固定某些方向,要明确增加相应约束,不能把无约束块体优化直接用于真空薄层。

3 读取晶格、力与应力#

grep -E 'GEOMETRY OPTIMIZATION COMPLETED|Internal pressure|Pressure is converged' work/cases/si-cell-opt-k2/output.log
grep -A 5 'STRESS| Analytical stress tensor' work/cases/si-cell-opt-k2/final-static/output.log
cat work/analysis/RESULTS.json

Si8晶胞优化能量与晶格常数变化

量 本例结果
初始a 5.350000 Å
最终a=b=c 5.471025 Å
最终晶胞角 90°、90°、90°
最终静态平均压力 约4.408 bar
最终静态最大原子力矢量模 约4.04×10⁻⁷ eV/Å

压力由实际应力张量的迹除以三取得。原生日志还会列出应力本征向量,不要把后面的本征向量表当成应力张量。

4 用最终结构做后续性质#

脚本在 final-static 中生成以最终原子与晶胞为输入的 ENERGY_FORCE,重新自洽求能量、力和应力。后续DOS、能带或声子应从确认后的最终结构开始,不要仍使用初始5.35 Å晶胞。

提取结构和画图#

module load ase/3.29.0
python analyze.py work
python convert_structures.py work
python plot_results.py work
ls work/converted
ls work/figures

analyze.py读取原生日志,convert_structures.py实际调用 ase convert,将原生最终CIF转换为EXTXYZ,核对元素、坐标和晶胞;图片均从这些结构与数据生成。只重画本文结果时,把命令中的work换成reference。

本例用于学习流程,给出的a依赖有限高斯基组、网格、赝势和k采样;需要材料参数时,应继续做这些设置的收敛。只要原子位置变化、晶胞不变的情况看原子与约束优化;薄层看二维晶胞。设置依据CP2K2026.2 CELL_OPT手册。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗