QE专题

QE分子动力学与CP

同一水分子BO与CP完整终端流程、初始化、重启及双时间步守恒。

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

下载完整输入、赝势、真实结果和绘图脚本。解压后,inputs/是可修改输入,reference/是本次真实参考输出,复跑结果写入 work/。下面的计算命令在已分配的相应资源内运行。

1 两种分子动力学#

pw.x的Born–Oppenheimer MD每一步电子自洽,再积分原子;cp.x用虚拟电子质量同时传播电子和离子,需要先把电子准备到接近基态,再检查扩展守恒能与电子/离子运动的分离。CP的电子虚拟动能不等于真实电子温度。

本例是12 Bohr有限周期盒中的单个水分子、零初速度,用几何偏离产生短时振动。轨迹约14.51 fs,用于终端操作和短时守恒检查,不计算液态水的扩散、黏度或稳定热力学性质。

实际水分子和有限周期盒

2 Born–Oppenheimer MD完整输入#

&CONTROL calculation='md',restart_mode='from_scratch',prefix='water',pseudo_dir='../pseudo',outdir='./tmp',nstep=60,dt=5,tprnfor=.true.,tstress=.true.,verbosity='high' /
&SYSTEM ibrav=1,celldm(1)=12,nat=3,ntyp=2,nbnd=8,ecutwfc=60,ecutrho=240 /
&ELECTRONS conv_thr=1d-8,mixing_beta=.4,electron_maxstep=150 /
&IONS ion_dynamics='verlet',ion_temperature='not_controlled',ion_velocities='from_input' /
ATOMIC_SPECIES
O 15.999 O_HSCV_PBE-1.0.upf
H 1.008 H_HSCV_PBE-1.0.upf
ATOMIC_POSITIONS angstrom
O 3.175063 3.175063 3.175063
H 4.132263 3.175063 3.175063
H 2.935076 4.102360 3.175063
ATOMIC_VELOCITIES
O 0 0 0
H 0 0 0
H 0 0 0
K_POINTS gamma
bash run.sh water-bomd-5
bash run.sh water-bomd-2p5
grep "Ekin + Etot" work/water-bomd-5/pw.in.out

两组步长分别5和2.5个Rydberg原子时间单位,60/120步,实际步长约0.241888/0.120944 fs,总物理时间相同。电子conv_thr=1E-8 Ry;初速度用ATOMIC_VELOCITIES明确设为0,未使用恒温器。

3 CP先做电子初始化#

CP部分使用qe/7.6-p100的NVHPC构建;当前CPU构建的cp.x存在数值兼容问题,请保持本篇指定程序和启动方式。完整流程申请单张P100:

sbatch cp-workflow.sbatch
squeue -u "$USER"

模板依次执行water-cp-p100初始化、water-cp-dt3、water-cp-dt1p5两个分支。初始化输入:

&CONTROL calculation='cp',restart_mode='from_scratch',prefix='water',pseudo_dir='../pseudo',outdir='./tmp',ndr=51,ndw=51,nstep=500,iprint=1,isave=100,dt=3d0,etot_conv_thr=1d-8,ekin_conv_thr=1d-7,tprnfor=.true.,tstress=.true. /
&SYSTEM ibrav=1,celldm(1)=12,nat=3,ntyp=2,nbnd=4,ecutwfc=60,ecutrho=240,input_dft='PBE' /
&ELECTRONS electron_dynamics='sd',emass=200d0,emass_cutoff=2.5,orthogonalization='ortho',ortho_eps=1d-9,ortho_max=30 /
&IONS ion_dynamics='none' /
&CELL cell_dynamics='none' /
ATOMIC_SPECIES
O 15.999 O_HSCV_PBE-1.0.upf
H 1.008 H_HSCV_PBE-1.0.upf
ATOMIC_POSITIONS angstrom
O 3.175063 3.175063 3.175063
H 4.132263 3.175063 3.175063
H 2.935076 4.102360 3.175063

固定离子,electron_dynamics=sd降低电子能量;本次487步满足初始化判据。它的迭代时间不是已经发生的分子运动时间。本例初始化能量与同结构/赝势/截断的pw.x参考相差约0.00036 eV;应检查能量与后续守恒,不能仅根据虚拟电子动能小就直接进入长轨迹。

4 从初始化重启CP轨迹#

&CONTROL calculation='cp',restart_mode='restart',prefix='water',pseudo_dir='../pseudo',outdir='./tmp',ndr=51,ndw=51,nstep=200,iprint=1,isave=100,dt=3,etot_conv_thr=1d-8,ekin_conv_thr=1d-7,tprnfor=.true.,tstress=.true. /
&SYSTEM ibrav=1,celldm(1)=12,nat=3,ntyp=2,nbnd=4,ecutwfc=60,ecutrho=240,input_dft='PBE' /
&ELECTRONS electron_dynamics='verlet',electron_velocities='zero',emass=200d0,emass_cutoff=2.5,orthogonalization='ortho',ortho_eps=1d-9,ortho_max=30 /
&IONS ion_dynamics='verlet',ion_velocities='zero' /
&CELL cell_dynamics='none' /
ATOMIC_SPECIES
O 15.999 O_HSCV_PBE-1.0.upf
H 1.008 H_HSCV_PBE-1.0.upf
ATOMIC_POSITIONS angstrom
O 3.175063 3.175063 3.175063
H 4.132263 3.175063 3.175063
H 2.935076 4.102360 3.175063

restart_mode、ndr/ndw、prefix/outdir指向初始化保存的电子态;electron_velocities与ion_velocities设为zero。脚本将初始化检查点复制到两个独立分支,防止不同时间步互相覆盖。若分支已有tmp目录,包内脚本会要求另建工作副本,保留原数据。

CP的dt是Hartree原子时间单位,与pw.x的Rydberg单位相差2倍:dt=3约0.0725665 fs,200步;dt=1.5约0.0362833 fs,400步。两组物理时间均约14.5133 fs。

5 实际守恒对照#

方法与时间步 最大守恒能变化/eV(水分子总量)
BO,5 Ry a.u. 0.000229800
BO,2.5 Ry a.u. 0.000135649
CP,3 Ha a.u. 0.000011429
CP,1.5 Ha a.u. 0.000008708

实际短轨迹BO总能与CP扩展守恒能的双时间步对照

CP的water.evp同时包含初始化和MD记录。分析时按初始化最后步号分开,MD时间再减去初始化末尾的时间偏移;不能把所有SD步和MD步一条线直接当作分子轨迹。etot、econs、econt和ekinc含义不同,本例CP图使用包含虚拟电子动能的扩展守恒量econt。

6 导出数据与重绘#

module load calorine/4.0
python extract.py md
python plot.py
ls analysis/water-*.csv
head -n 5 analysis/water-cp-dt3.csv

换成液体或更大体系时,重新选择初始结构、温度、时间步和虚拟质量,做更长的平衡/生产与重复采样。CP还要检验虚拟电子动能是否受离子运动持续加热;短时守恒良好不等于物性已经收敛。

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

查看配图

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

100%查看原图 ↗