CP2K液体扩散实操:预平衡与生产轨迹
108原子LJ氩四个独立初速度,从CSVR预平衡到NVE生产,提供完整输入、Slurm提交和真实结构/RDF图。
阅读本篇目录
研究扩散需要粒子真正离开原来的局部位置。晶体的短时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行生产能量。再次运行请使用新解压目录。

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固定的是总能量,不是每时每刻的温度。本次四条生产轨迹的平均温度分别约124.21、122.19、123.40、122.95 K;120 K是预平衡温控目标,不能将生产温度改写成四条都严格120 K。
图左显示相对初值的守恒量变化,按每原子归一,单位µeV/原子;右图将每200步温度取平均以便看趋势。原始每步数据完整保留。只看温度围绕某个数波动还不够,后续应同时检查RDF、MSD的线性窗口和独立样本差异,见MSD、扩散拟合与误差。