CP-VASP短程MD与溶剂切换
从完整INCAR、有效速度格式到NEADJUST与LSOLOFF,读取真实的短程电子数更新记录。
阅读本篇目录
unzip cpvasp-dynamics-parameters-wave254-*.zip
cd cpvasp-wave254
bash run.sh
bash run.sh读取已完成的集群计算数值摘录,生成CSV和三张图,不启动新的VASP计算。自己运行时再按下文复制输入、准备合法POTCAR和通过Slurm提交。
1 准备短MD输入#
cp -r inputs/md work
下面是方案5的完整INCAR。Cu₄晶胞保持固定;离子使用NVE积分,起始温度300 K;电子温控器也是300 K,但它与离子温控是两套概念。
SYSTEM = Cu111 continuum electrolyte cu-neutral
ENCUT = 550
PREC = Accurate
EDIFF = 1E-6
NELM = 240
ALGO = Normal
ISMEAR = 0
SIGMA = 0.1
ISYM = 0
LREAL = .FALSE.
NCORE = 1
NBANDS = 40
AMIX = 0.1
BMIX = 0.0001
LSOL = .TRUE.
NELECT = 44
LCEP = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.
FERMICONVERGE = 0.001
NESCHEME = 5
INIT_ECHANGE = 0.001
ECHANGE_MAX = 0.005
CAP_MAX = 0.15
NEADJUST = 1
LSOLOFF = .FALSE.
ISOL = 2
C_MOLAR = 1.0
R_ION = 2.0
EFERMI_ref = 0.0
EDIFFSOL = 1E-8
IBRION = 0
NSW = 6
POTIM = 0.25
TEBEG = 300
TEEND = 300
SMASS = -3
ISIF = 2
TARGETMU = -4.903
Mne = 100
Vne = 0.001
T_eta = 300
M_eta = 2.1
eta_length = 3
POTIM=0.25的单位是fs,NSW=6只展示六个离子步。SMASS=-3是本例的离子NVE设置;T_eta、M_eta、eta_length控制方案5的电子温控链,不会自动把离子也变成NVT系综。
POSCAR:只给原子位置,由TEBEG初始化速度
Cu
1.0000000000000000
2.5667976157071677 0.0000000000000000 0.0000000000000000
1.2833988078535838 2.2229119415757337 0.0000000000000000
0.0000000000000000 0.0000000000000000 22.2873444314750273
Cu
4
Direct
0.0000000000000000 0.0000000000000000 0.3589481027942521
0.3333333333333334 0.3333333333333333 0.4529827009314173
-0.3333333333333333 0.6666666666666666 0.5470172990685827
0.0000000000000000 0.0000000000000000 0.6410518972057478
KPOINTS
Gamma mesh
0
Gamma
7 7 1
0 0 0
2 提交并检查实际记录#
按Cu元素准备本人有权使用的PAW_PBE POTCAR,然后:
cd work
module load vaspkit/1.5.1
vaspkit -task 103
sbatch submit.sh
grep "EDIFF is reached" OUTCAR | tail
grep "CPM-ion" stdout.log
应使用CPU队列和专用CP-VASP模块。每轮电子自洽仍按 EDIFF=1E-6;方案4/5的瞬时化学势允许波动,不能照搬静态方案的逐点误差判断。六步太短,既不能求扩散系数,也不能验证温度分布或反应速率。

3 需要相同初速度时怎样写#
未提供速度时,原生程序按初始温度生成随机离子速度,每次轨迹可能不同。附件 inputs/fixed-vel 是实际运行过的给定速度例,结构坐标后紧接 Cartesian 速度头:
Cu
1.0000000000000000
2.5667976157071677 0.0000000000000000 0.0000000000000000
1.2833988078535838 2.2229119415757337 0.0000000000000000
0.0000000000000000 0.0000000000000000 22.2873444314750273
Cu
4
Direct
0.0000000000000000 0.0000000000000000 0.3589481027942521
0.3333333333333334 0.3333333333333333 0.4529827009314173
-0.3333333333333333 0.6666666666666666 0.5470172990685827
0.0000000000000000 0.0000000000000000 0.6410518972057478
Cartesian
0.001 0 0.001
-0.001 0 -0.001
0 0.001 -0.001
0 -0.001 0.001
速度单位为Å/fs。不要在这个Cartesian速度头之前再加一个空行;空行本身也会被当作速度坐标模式行,额外的第二个头可能使速度块没有被正确读取。文件格式可参考VASP POSCAR说明。需要随机初始化的简单例子只保留原子位置即可。
4 每两步调整电子数与切换溶剂#
在附件根目录用另一份实际输入:
cp -r inputs/flash work-flash
相对于简单MD,关键设置为:
NESCHEME = 1
NEADJUST = 2
LSOLOFF = .TRUE.
NSW = 6
本例在第 1、2、4、6步记录电子数调整;第3、5步没有新的电势调整记录。LSOLOFF=.TRUE.时,在用隐式溶剂确定电势后,额外关闭隐式溶剂计算力。这会改变实际力的计算方式,不能把它和始终保留连续介质溶剂的轨迹混成同一种能量或力。
cd work-flash
module load vaspkit/1.5.1
vaspkit -task 103
sbatch submit.sh
grep "CPM-ion" stdout.log
本组没有显式水,因而这里只展示开关流程,不把它当作已验证“显式水飞离界面”现象的修复案例。
5 提取自己的电子数轨迹#
回到附件根目录:
python extract.py work
python extract.py work-flash
各目录得到 CP-electrons.csv,包含步号、实际电子数、目标和最终电子化学势、电子能量及显式电子库修正。NEADJUST=2时CSV只含实际发生电子数调整的步,不会为中间步编造化学势或插值补点。
