CP2K专题

CP2K液体扩散实操:预平衡与生产轨迹

108原子LJ氩四个独立初速度,从CSVR预平衡到NVE生产,提供完整输入、Slurm提交和真实结构/RDF图。

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

研究扩散需要粒子真正离开原来的局部位置。晶体的短时MSD主要反映振动,单个气相分子的运动也不是体相液体扩散。本例在集群实际计算一个小周期LJ氩体系,按准备模型→预平衡→生产→提取→拟合与检查走完整流程。

模型为108个Ar、18 Å立方周期盒,LJ参数ε/kB=119.8 K、σ=3.405 Å、截断7.5 Å,势能在截断处平移到零。初始FCC排布先在目标120 K下用CSVR预平衡10 ps,再移除温控做24 ps NVE生产;四个独立初速度分别运行。这里是经典LJ模型,不是第一性原理液体氩,也不把有限108原子/24 ps结果当作实验定值。

1. 下载,先重画全部参考数据#

下载液体氩完整输入、四条轨迹数值与画图包,新目录解压:

python3 -m zipfile -e cp2k-Ar108-liquid-diffusion-wave307-*.zip .
cd cp2k-Ar108-liquid-diffusion-wave307
bash preview.sh
bash run.sh

两条脚本只做1核后处理,不重新计算MD。results/包含MSD、RDF、能量表和统计,plots/为三张新图;reference/保留每个样本1201帧完整108原子坐标及12001行生产能量。再次运行请使用新解压目录。

实际液体氩末态结构与后半段RDF

2. 输入文件怎样安排#

ls inputs
cat inputs/seed1-eq/input.inp
cat inputs/seed1-prod/input.inp
cat run.slurm

每个种子有两个目录,seed1-eq为预平衡,seed1-prod为生产,其他三个同理。run_cases.py依次运行每个种子的这两步,生产读取自己对应的预平衡restart,不读取其他种子的状态。

关键参数:

参数 本例 用途
方法 FIST / Lennard-Jones 经典势,不进行每步DFT自洽
周期盒 18×18×18 ų 截断7.5 Å小于半盒长9 Å
预平衡 NVT、CSVR、5000步 2 fs×5000=10 ps
温控时间常数 100 fs 只用于本例预平衡
生产 NVE、12000步 2 fs×12000=24 ps
坐标输出 每10步 采样间隔20 fs
能量输出 每步 读取物理能量和守恒量

种子为202611081至202611084。改变种子会改变实际轨迹,统计目标应比较分布与误差,不要求不同种子每个坐标相同。

3. 预平衡中的MD段#

第一步完整文件在inputs/seed1-eq/input.inp,其中温控部分为:

&MD
 ENSEMBLE NVT
 STEPS 5000
 TIMESTEP [fs] 2
 TEMPERATURE 120
 &THERMOSTAT
  TYPE CSVR
  &CSVR
   TIMECON [fs] 100
  &END CSVR
 &END THERMOSTAT
&END MD

温控时间常数太短会强烈影响动力学,因此本例用它准备初态,随后在NVE下统计。其他体系要检查自己的温度、能量、密度或结构是否达到合适状态;10 ps不是所有液体通用的平衡时间。CP2K CSVR说明

4. 生产阶段完整输入#

展开查看seed1-prod/input.inp:完整参数与108原子结构
&GLOBAL
 PROJECT seed1-prod
 RUN_TYPE MD
 PRINT_LEVEL LOW
 SEED 202611081
&END GLOBAL
&EXT_RESTART
 RESTART_FILE_NAME ../seed1-eq/seed1-eq-1.restart
 RESTART_DEFAULT .FALSE.
 RESTART_POS .TRUE.
 RESTART_VEL .TRUE.
 RESTART_CELL .TRUE.
&END EXT_RESTART
&MOTION
 &MD
  ENSEMBLE NVE
  STEPS 12000
  TIMESTEP [fs] 2
  TEMPERATURE 120
 &END MD
 &PRINT
  &TRAJECTORY
   FORMAT XYZ
   &EACH
    MD 10
   &END EACH
  &END TRAJECTORY
  &CELL
   &EACH
    MD 10
   &END EACH
  &END CELL
  &RESTART
   BACKUP_COPIES 0
   &EACH
    MD 1000
   &END EACH
  &END RESTART
 &END PRINT
&END MOTION
&FORCE_EVAL
 METHOD FIST
 &MM
  &FORCEFIELD
   &SPLINE
    EPS_SPLINE 1E-10
   &END SPLINE
   DO_ELECTROSTATICS .FALSE.
   SHIFT_CUTOFF .TRUE.
   &CHARGE
    ATOM Ar
    CHARGE 0.0
   &END CHARGE
   &NONBONDED
    &LENNARD-JONES
     ATOMS Ar Ar
     EPSILON [K_e] 119.8
     SIGMA [angstrom] 3.405
     RCUT [angstrom] 7.5
    &END LENNARD-JONES
   &END NONBONDED
  &END FORCEFIELD
  &POISSON
   &EWALD
    EWALD_TYPE NONE
   &END EWALD
  &END POISSON
 &END MM
 &SUBSYS
  &CELL
   ABC 18 18 18
   PERIODIC XYZ
  &END CELL
  &COORD
   Ar 0.000000000000 0.000000000000 0.000000000000
   Ar 3.000000000000 3.000000000000 0.000000000000
   Ar 3.000000000000 0.000000000000 3.000000000000
   Ar 0.000000000000 3.000000000000 3.000000000000
   Ar 0.000000000000 0.000000000000 6.000000000000
   Ar 3.000000000000 3.000000000000 6.000000000000
   Ar 3.000000000000 0.000000000000 9.000000000000
   Ar 0.000000000000 3.000000000000 9.000000000000
   Ar 0.000000000000 0.000000000000 12.000000000000
   Ar 3.000000000000 3.000000000000 12.000000000000
   Ar 3.000000000000 0.000000000000 15.000000000000
   Ar 0.000000000000 3.000000000000 15.000000000000
   Ar 0.000000000000 6.000000000000 0.000000000000
   Ar 3.000000000000 9.000000000000 0.000000000000
   Ar 3.000000000000 6.000000000000 3.000000000000
   Ar 0.000000000000 9.000000000000 3.000000000000
   Ar 0.000000000000 6.000000000000 6.000000000000
   Ar 3.000000000000 9.000000000000 6.000000000000
   Ar 3.000000000000 6.000000000000 9.000000000000
   Ar 0.000000000000 9.000000000000 9.000000000000
   Ar 0.000000000000 6.000000000000 12.000000000000
   Ar 3.000000000000 9.000000000000 12.000000000000
   Ar 3.000000000000 6.000000000000 15.000000000000
   Ar 0.000000000000 9.000000000000 15.000000000000
   Ar 0.000000000000 12.000000000000 0.000000000000
   Ar 3.000000000000 15.000000000000 0.000000000000
   Ar 3.000000000000 12.000000000000 3.000000000000
   Ar 0.000000000000 15.000000000000 3.000000000000
   Ar 0.000000000000 12.000000000000 6.000000000000
   Ar 3.000000000000 15.000000000000 6.000000000000
   Ar 3.000000000000 12.000000000000 9.000000000000
   Ar 0.000000000000 15.000000000000 9.000000000000
   Ar 0.000000000000 12.000000000000 12.000000000000
   Ar 3.000000000000 15.000000000000 12.000000000000
   Ar 3.000000000000 12.000000000000 15.000000000000
   Ar 0.000000000000 15.000000000000 15.000000000000
   Ar 6.000000000000 0.000000000000 0.000000000000
   Ar 9.000000000000 3.000000000000 0.000000000000
   Ar 9.000000000000 0.000000000000 3.000000000000
   Ar 6.000000000000 3.000000000000 3.000000000000
   Ar 6.000000000000 0.000000000000 6.000000000000
   Ar 9.000000000000 3.000000000000 6.000000000000
   Ar 9.000000000000 0.000000000000 9.000000000000
   Ar 6.000000000000 3.000000000000 9.000000000000
   Ar 6.000000000000 0.000000000000 12.000000000000
   Ar 9.000000000000 3.000000000000 12.000000000000
   Ar 9.000000000000 0.000000000000 15.000000000000
   Ar 6.000000000000 3.000000000000 15.000000000000
   Ar 6.000000000000 6.000000000000 0.000000000000
   Ar 9.000000000000 9.000000000000 0.000000000000
   Ar 9.000000000000 6.000000000000 3.000000000000
   Ar 6.000000000000 9.000000000000 3.000000000000
   Ar 6.000000000000 6.000000000000 6.000000000000
   Ar 9.000000000000 9.000000000000 6.000000000000
   Ar 9.000000000000 6.000000000000 9.000000000000
   Ar 6.000000000000 9.000000000000 9.000000000000
   Ar 6.000000000000 6.000000000000 12.000000000000
   Ar 9.000000000000 9.000000000000 12.000000000000
   Ar 9.000000000000 6.000000000000 15.000000000000
   Ar 6.000000000000 9.000000000000 15.000000000000
   Ar 6.000000000000 12.000000000000 0.000000000000
   Ar 9.000000000000 15.000000000000 0.000000000000
   Ar 9.000000000000 12.000000000000 3.000000000000
   Ar 6.000000000000 15.000000000000 3.000000000000
   Ar 6.000000000000 12.000000000000 6.000000000000
   Ar 9.000000000000 15.000000000000 6.000000000000
   Ar 9.000000000000 12.000000000000 9.000000000000
   Ar 6.000000000000 15.000000000000 9.000000000000
   Ar 6.000000000000 12.000000000000 12.000000000000
   Ar 9.000000000000 15.000000000000 12.000000000000
   Ar 9.000000000000 12.000000000000 15.000000000000
   Ar 6.000000000000 15.000000000000 15.000000000000
   Ar 12.000000000000 0.000000000000 0.000000000000
   Ar 15.000000000000 3.000000000000 0.000000000000
   Ar 15.000000000000 0.000000000000 3.000000000000
   Ar 12.000000000000 3.000000000000 3.000000000000
   Ar 12.000000000000 0.000000000000 6.000000000000
   Ar 15.000000000000 3.000000000000 6.000000000000
   Ar 15.000000000000 0.000000000000 9.000000000000
   Ar 12.000000000000 3.000000000000 9.000000000000
   Ar 12.000000000000 0.000000000000 12.000000000000
   Ar 15.000000000000 3.000000000000 12.000000000000
   Ar 15.000000000000 0.000000000000 15.000000000000
   Ar 12.000000000000 3.000000000000 15.000000000000
   Ar 12.000000000000 6.000000000000 0.000000000000
   Ar 15.000000000000 9.000000000000 0.000000000000
   Ar 15.000000000000 6.000000000000 3.000000000000
   Ar 12.000000000000 9.000000000000 3.000000000000
   Ar 12.000000000000 6.000000000000 6.000000000000
   Ar 15.000000000000 9.000000000000 6.000000000000
   Ar 15.000000000000 6.000000000000 9.000000000000
   Ar 12.000000000000 9.000000000000 9.000000000000
   Ar 12.000000000000 6.000000000000 12.000000000000
   Ar 15.000000000000 9.000000000000 12.000000000000
   Ar 15.000000000000 6.000000000000 15.000000000000
   Ar 12.000000000000 9.000000000000 15.000000000000
   Ar 12.000000000000 12.000000000000 0.000000000000
   Ar 15.000000000000 15.000000000000 0.000000000000
   Ar 15.000000000000 12.000000000000 3.000000000000
   Ar 12.000000000000 15.000000000000 3.000000000000
   Ar 12.000000000000 12.000000000000 6.000000000000
   Ar 15.000000000000 15.000000000000 6.000000000000
   Ar 15.000000000000 12.000000000000 9.000000000000
   Ar 12.000000000000 15.000000000000 9.000000000000
   Ar 12.000000000000 12.000000000000 12.000000000000
   Ar 15.000000000000 15.000000000000 12.000000000000
   Ar 15.000000000000 12.000000000000 15.000000000000
   Ar 12.000000000000 15.000000000000 15.000000000000
  &END COORD
  &TOPOLOGY
   CONN_FILE_FORMAT OFF
  &END TOPOLOGY
 &END SUBSYS
&END FORCE_EVAL

RESTART_DEFAULT=.FALSE.先关闭默认继承,再显式读取位置、速度和晶胞。这样切换到新的NVE阶段,不继承原来的温控状态和步计数;生产从0重新计时。输入里仍保留完整初始坐标,但实际生产初态的位置由预平衡restart覆盖,不是重新从那份FCC坐标开始。

普通同一轨迹续算若需要保留步计数、温控等,应按原生续算教程使用相应状态,不能把这里切换系综的选择直接套过去。CP2K restart字段

5. 提交自己的新计算#

在资料包根目录:

sbatch run.slurm
squeue -u "$USER"

脚本申请P100分区1张卡、1个CPU核,依次做四组预平衡/生产,完成后提取自己的结果。CP2K2026.2构建使用GNU13.3、MPICH5.0.1、CUDA12.9、OpenBLAS0.3.33及ScaLAPACK2.2.3。这里使用FIST的CPU执行路径;申请GPU节点资源不代表本例提供GPU加速数据。 不在登录节点运行新MD。

有work/时脚本停止,避免覆盖。参考输出与新计算分开:新轨迹在work/,新提取数据在my-raw/、my-results/,新图在my-plots/。

tail work/seed1-prod/seed1-prod-1.ener
tail work/seed1-prod/output.log
ls my-results my-plots

6. 温度与能量怎样读#

四条实际NVE轨迹的守恒量变化与温度

NVE固定的是总能量,不是每时每刻的温度。本次四条生产轨迹的平均温度分别约124.21、122.19、123.40、122.95 K;120 K是预平衡温控目标,不能将生产温度改写成四条都严格120 K。

图左显示相对初值的守恒量变化,按每原子归一,单位µeV/原子;右图将每200步温度取平均以便看趋势。原始每步数据完整保留。只看温度围绕某个数波动还不够,后续应同时检查RDF、MSD的线性窗口和独立样本差异,见MSD、扩散拟合与误差。

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

查看配图

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

100%查看原图 ↗