Hefei-NAMD专题

Hefei-NAMD从Si轨迹准备波函数

从实际AIMD选帧,逐帧准备VASP输入和WAVECAR,理清MD时间、文件编号与电子收敛。

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

本专题用鸢算科技集群实际计算的Si64轨迹、128个快照波函数和非绝热动力学,演示从准备文件到读取布居和画图的操作。原版为2024.05.21固定提交b7c8fc5,DEV为2023.03.29固定提交308d694;两者是代码快照日期,不是正式版本标签。原版使用ifort 2021.10 / Intel oneAPI 2023.2,DEV配套Intel MPI 2021.10与MKL 2023.2、AVX512。

下载完整输入、实际数值、8张图与操作脚本,保存为 hefei-namd.zip:

python3 -m zipfile -e hefei-namd.zip .
cd hefei-namd-silicon-practical-wave286
bash preview.sh
ls preview/figures

预览读取已有数值。希望自己运行原生后处理时,依次执行:

bash prepare.sh
bash calculate.sh
bash extract.sh

输入复制到 work/,原生结果也在其中,CSV与独立提取结果在 results/。本包的小型CPU后处理不重新运行VASP;实际DFT输入另放 inputs/DFT-inputs/,新的DFT需要自己的授权程序和势文件,并经Slurm提交。DEV需要支持AVX512的CPU,正式生产请申请相应CPU资源。

1 先看完整流程#

固定晶胞AIMD → 提取连续快照 → 每个快照单独保存波函数 → 选择能带并处理相位 → 得到EIGTXT/NATXT → FSSH或DISH → 提取布居与平均能量 → 画图。

实际Si64快照,颜色表示相对理想晶格的真实位移

本例为5.43 Å晶格常数的Si常规胞2×2×2超胞,64原子、10.86 Å立方晶胞。使用300、600 K各两条不同初速度轨迹,种子11和29。每条轨迹原来80步、0.5 fs/步;这里取第21至52帧,包含32帧,原MD时间10至25.5 fs。

这些是短时操作例,不代表充分平衡或收敛的材料载流子寿命。固定晶胞与原子次序贯穿全部文件,不能中途重新排序POSCAR。

2 从XDATCAR取连续32帧#

使用模块自带工具,不需要手工复制每个构型:

module load hefei-namd/2024.05.21
hefei-namd-extract-xdatcar inputs/XDATCAR-inputs/Si64-300K-seed11.XDATCAR --start 21 --stop 52 --output snapshots
ls snapshots
head -n 12 snapshots/01/POSCAR

--start/--stop从1开始且包含两端;snapshots/01对应原MD第21帧,32对应第52帧。工具生成结构,不会自动计算波函数。下载包另提供本例128套完整静态输入。

3 每个快照运行一次固定结构SCF#

下面是第21帧实际INCAR:

SYSTEM=Si64-300K-seed11-frame21
ENCUT=450
PREC=Accurate
EDIFF=1E-6
NELECT=256
NBANDS=160
IBRION=-1
NSW=0
ISPIN=1
ISMEAR=0
SIGMA=0.05
ISYM=0
LREAL=.FALSE.
LASPH=.TRUE.
ALGO=Normal
NELM=160
ISTART=0
ICHARG=2
KPAR=1
LWAVE=.TRUE.
LCHARG=.FALSE.

KPOINTS:

Si64 snapshot wavefunction
0
Gamma
1 1 1
0 0 0

完整64原子POSCAR示例:

Si
 1.0000000000000000
    10.8599999999999994    0.0000000000000000    0.0000000000000000
     0.0000000000000000   10.8599999999999994    0.0000000000000000
     0.0000000000000000    0.0000000000000000   10.8599999999999994
 Si 
  64
Direct
  0.9997196100000000  0.0042079400000000  0.0031199300000000
  0.1234054500000000  0.1247649400000000  0.1232854600000000
  0.0015556800000000  0.2503425300000000  0.2517393900000000
  0.1194366600000000  0.3801418900000000  0.3745292499999999
  0.2514576200000000  0.0002050100000000  0.2487265700000000
  0.3762478900000000  0.1276818300000000  0.3739205899999999
  0.2490016500000000  0.2524684300000000  0.9970955800000000
  0.3702414000000000  0.3766009100000000  0.1227643900000000
  0.9940232399999999  0.9979582000000000  0.4981133700000000
  0.1211645800000000  0.1209448600000000  0.6245084900000000
  0.0022411700000000  0.2499687300000000  0.7474567900000000
  0.1257444500000000  0.3775985500000000  0.8736966200000000
  0.2511399000000000  0.0034547400000000  0.7491666799999999
  0.3724042100000000  0.1267035000000000  0.8753068200000000
  0.2524046700000000  0.2467052500000000  0.4976568600000000
  0.3723265000000000  0.3703697000000000  0.6247962000000000
  0.0014520800000000  0.4984872599999999  0.0035677500000000
  0.1270949300000000  0.6272900700000000  0.1257878500000000
  0.0024198500000000  0.7465334399999999  0.2514850500000000
  0.1265555200000000  0.8702808799999999  0.3757777500000000
  0.2488438300000000  0.5027627900000000  0.2484304300000000
  0.3748239600000000  0.6264000600000000  0.3718479300000000
  0.2514214400000000  0.7502868599999999  0.0013461600000000
  0.3732794799999999  0.8786387700000000  0.1264134000000000
  0.9990062399999999  0.5024681400000000  0.5034572200000000
  0.1301528500000000  0.6208566899999999  0.6272463900000000
  0.0012698300000000  0.7501072599999999  0.7466589800000000
  0.1282971300000000  0.8720035500000000  0.8763222199999999
  0.2536258800000000  0.4957201399999999  0.7489770000000000
  0.3710165799999999  0.6261552800000000  0.8789213000000000
  0.2556887199999999  0.7453123899999999  0.4982731499999999
  0.3767352100000000  0.8800376999999999  0.6258178599999999
  0.4974160399999999  0.0013714900000000  0.9995549699999999
  0.6240397800000000  0.1230354000000000  0.1260103700000000
  0.5004662399999998  0.2503792400000000  0.2488291700000000
  0.6210276800000000  0.3741341700000000  0.3781606300000000
  0.7491924200000000  0.9961827799999999  0.2537246200000000
  0.8761635699999999  0.1314661900000000  0.3746860400000000
  0.7483656900000000  0.2463081100000000  0.0036151000000000
  0.8819113900000000  0.3730682000000000  0.1230999200000000
  0.5013822999999999  0.9983644399999999  0.4989893300000000
  0.6238438200000000  0.1259483500000000  0.6277997200000000
  0.4995612300000000  0.2529427300000000  0.7484367600000000
  0.6257508300000000  0.3694061199999999  0.8705563599999999
  0.7520721800000000  0.9987781699999999  0.7515181900000000
  0.8763353799999999  0.1293446200000000  0.8770134799999999
  0.7523343400000000  0.2501091500000000  0.4977207100000000
  0.8726098199999999  0.3740541000000000  0.6213828100000000
  0.4980780400000000  0.4999193699999999  0.0001668100000000
  0.6237718500000000  0.6200296600000000  0.1245615100000000
  0.5003932000000000  0.7536290799999998  0.2511861100000000
  0.6228831600000000  0.8732577100000000  0.3806280000000000
  0.7518721399999999  0.5053929999999999  0.2558145600000000
  0.8725177600000000  0.6267677800000000  0.3762728700000000
  0.7512335699999999  0.7516947000000000  0.0001619800000000
  0.8753516999999998  0.8711196900000000  0.1244159600000000
  0.4973120000000000  0.5008914600000000  0.4985049699999999
  0.6262772100000000  0.6277755899999999  0.6254494400000000
  0.5004450499999999  0.7507667200000000  0.7485288800000000
  0.6241841200000000  0.8740778700000000  0.8758617600000000
  0.7497409000000000  0.5020020900000000  0.7458009799999999
  0.8773492300000000  0.6232366000000000  0.8725547500000000
  0.7490196099999999  0.7487940599999999  0.5005485600000000
  0.8728995500000000  0.8722930700000000  0.6222312000000000

NSW=0表示此步只做固定结构电子计算,原子运动来自前面的MD;LWAVE=.TRUE.是生成WAVECAR的关键。EDIFF=1E-6是电子收敛条件。这里VASP的 NELM=160是最大SCF次数,和后文NAMD的电子传播子步数含义不同。

本例用VASP 6.6.1 GPU/HDF5构建(NVHPC 25.3、CUDA 12.8),P100与V100 16G各承担一部分快照。前后保持PBE势、450 eV、160能带、Gamma 1×1×1相同,不在每帧重新选择不同电子设置。

先复制一套完整输入并准备自己的授权Si PBE POTCAR:

cp -r inputs/DFT-inputs/Si64-300K-seed11-frame21 first-frame
cd first-frame
# 把自己的授权Si PBE POTCAR放在此目录

P100单卡脚本示例:

cat > submit.sh <<'SH'
#!/bin/bash
#SBATCH --job-name=Si-NAMD-wave
#SBATCH --partition=gpu-8p100-hs
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --gres=gpu:p100-16g:1
#SBATCH --mem=12G
#SBATCH --time=00:30:00
#SBATCH --output=slurm-%j.log
set -eo pipefail
source /etc/profile
module load vasp/6.6.1-p100-hdf5
export OMP_NUM_THREADS=1 MKL_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1
ulimit -s unlimited
mpirun --bind-to none -np 1 vasp_std > vasp.log 2>&1
SH
sbatch submit.sh
tail OSZICAR
ls -lh WAVECAR

换V100需同时更换分区、GPU资源类型与模块,按账户实际可用资源提交。第一帧完成并确认文件能读取后,再处理其余快照;不能把同一个WAVECAR复制成32帧。

本例128帧全部实际完成,最多16个SCF步。与原MD对应结构比较,最大电子自由能差2.28×10⁻⁶ eV,最大力分量差2.266×10⁻⁴ eV/Å。这一比较确认静态计算没有换成另一套电子势能面,不是能量/力精度的一般保证。

下一步:波函数相位与NAC。

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

查看配图

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

100%查看原图 ↗