LAMMPS Drude双温控与温度分解
实际运行8个核-Drude振子,读取质心与相对运动温度、自由度和动能,避免用普通原子温度误判。
阅读本篇目录
可热化Drude模型通常把核-Drude质心运动与内部相对运动分别控温。直接看普通原子Temp,会把两种运动混在一起。本篇用8个独立振子,演示完整输入和两条温度通道。
下载五篇共用的完整输入、科学数据与绘图包。先按照多电子波包篇的共用运行步骤提交一次,后续四篇读取同一批结果,不需要重复提交。
1. 查看结构与完整输入#
cat inputs/drude-two-thermostats/system.data
cat inputs/drude-two-thermostats/input.lammps
16个粒子组成8个核心-Drude键,质量11.6/0.4u,核心/辅助电荷+0.5/−0.5e,初始相对位移0.01Å。初始质心速度按300K缩放,相对速度为0。本例用零非键势隔离振子与热浴,不是液体或完整真实分子力场。
units real
atom_style full
atom_modify map array
boundary p p p
read_data system.data
pair_style zero 5.0
pair_coeff * *
bond_style harmonic
bond_coeff 1 500 0
special_bonds lj/coul 0 0 0
fix roles all drude C D
comm_modify vel yes
fix integrate all nve
fix baths all langevin/drude 300 100 47019 1 20 47023
compute separated all temp/drude
timestep 0.02
thermo 1
thermo_style custom step time temp pe ke etotal c_separated[1] c_separated[2] c_separated[3] c_separated[4] c_separated[5] c_separated[6]
thermo_modify norm no format float %.17g
dump atoms all custom 1 atoms.dump id mol type q x y z vx vy vz fx fy fz
dump_modify atoms sort id format float %.17g
run 5000
langevin/drude 300 100 47019 1 20 47023中,前组为质心温度300K、阻尼100fs和种子,后组为相对温度1K、阻尼20fs和种子;默认不使用zero选项。fix nve完成积分,时间步0.02fs,5000步共100fs。
2. 六个输出分别是什么#
| 输出 | 含义 | 本例口径 |
|---|---|---|
| c_separated[1] | 核心-Drude质心温度 | 质量加权质心速度 |
| c_separated[2] | 内部相对运动温度 | 约化质量与相对速度 |
| c_separated[3] | 质心自由度 | 24 |
| c_separated[4] | 相对自由度 | 24 |
| c_separated[5] | 质心动能 | real单位kcal/mol |
| c_separated[6] | 相对动能 | real单位kcal/mol |
两个自由度各为8×3=24;普通16粒子温度扣除质心后为45,是另一口径。本例没有人为改自由度使数值接近目标。

3. 用质量加权速度检查温度#
对每对核心C、Drude D:M=mC+mD,mu=mC*mD/M;质心速度为 (mC*vC+mD*vD)/M,相对速度为 vD−vC。分别计算 0.5*M*V² 和 0.5*mu*vrel²,再按单位换算与自由度换为温度。
脚本对5001个保存帧的全部粒子独立重建两条动能与温度,并检查两条动能之和等于原生总动能。温度通道差的最大值约2.27e−13K。
4. 实际短轨迹怎么看#
| 最后20fs平均 | 实际结果/K | 请求的热浴目标/K |
|---|---|---|
| 质心运动 | 199.6384 | 300 |
| 相对运动 | 0.8020 | 1 |
| 普通粒子Temp | 106.9016 | 不作为这两条热浴的目标 |
小体系100fs只是短暂过程;请求300K/1K不代表短时平均必然等于这两个值。图中初始相对模式的振荡也来自输入位移。真正的生产计算应先建立适合材料的完整极化力场,再检查更长平衡过程、步长与统计区间,不能拿本表作为平衡材料温度结论。
head -n 12 inputs/drude-two-thermostats/atoms.dump
cat reference-results/VALIDATION.json
已有原生结果时,只重新提取和画图:
module load sisl/0.16.4
python analyze.py
python plot.py
这一步读取实际结果,不重新运行原生模拟。
参考Drude温度字段。