GPUMD专题

GPUMD NVE 温度与输运归一化

区分 NVT 目标、NVE 实际温度与原生热导/黏度分母,用真实 Si 和 LJ 数据说明归一化的作用与边界。

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

NVT 目标温度、NVE 实际平均温度、输运公式中的温度分母,需要分别看清。本篇接EMD 热流相关与积分,也适用于理解本系列黏度实例中的原生分母。

下载真实输入、温度、原生输出与独立换算程序。图表来自已发布 1 ns Si 轨迹和新短例;LJ 两个温度例子复用前一批数据,没有新增采样。

1 先查看 NVE 的实际温度#

本例输入先在 300 K 做 NVT,再切到 NVE:

ensemble nvt_nhc 300 300 100
run 50000
ensemble nve
compute_hac 10 1000 1
dump_thermo 100
run 200000

NVE 中没有恒温器继续把温度拉回 300 K。平衡结束时的总能量决定随后 NVE 的平均状态,温度会围绕自己的平均值波动。

在本例生产目录读取 thermo.out:

head thermo.out
awk '!/^#/ && NF {s+=$1;n++} END {printf "%.8f\n",s/n}' thermo.out

这组输入只在生产段开启 dump_thermo,因此上述命令计算生产段均值;如果自己的文件混有 NVT 与 NVE,先分清各段,不能直接平均整个文件。

新 Si512 短例的平均温度约为 312.53255 K,目标设置是 300 K。已有四种子数据中,Si512 各条 NVE 平均约为 286.86–312.51 K,Si1728 约为 296.01–306.83 K。

同一目标温度下,各条真实 NVE 轨迹的平均温度与两种分母结果

这里讨论的是原子运动温度;不要与电子温度势模型的标签温度混用。

2 原生输运分母使用什么温度#

当前 GPUMD 5.9.1 的 EMD 与黏度原生后处理沿用前一个恒温阶段的目标温度。本例为:

EMD 原生分母:kB × 300² × V
LJ 黏度原生分母:kB × 100 × V

原生文件照常保留,它们的值没有被本教程覆盖。实际温度与目标温度有差别时,应把数值对应的温度与归一化约定说清楚。

3 同一条轨迹,怎样改用实际平均温度作分母#

对固定体积、同一组相关数据:

kappa_actualT_denominator = kappa_native × (Ttarget / Tmean)²
eta_actualT_denominator   = eta_native   × (Ttarget / Tmean)

热导分母含温度平方,黏度只含一次方,不能把二者混用。

对于新 Si512 短例:

Ttarget = 300 K
Tmean   = 312.53255465 K
热导分母换算因子约为 0.921408

约 4.2% 的温度差,对热导分母带来约 7.9% 的数值变化。因此材料比较不能只看输入写了 300 就认为实际采样温度完全相同。

配套脚本同时输出两列:

bash view.sh
head analysis/p100-Si512-fine-HAC-temperature-normalization.csv
head analysis/temperature-normalization-summary.csv

第一列结果保留原生分母,另一列使用同一条轨迹的实际平均温度,文件名和表头均区分两者。

4 改分母不会改变轨迹的温度#

这是最需要区分的一点:对 312.53 K 的采样改用实际温度分母,不会把构型、速度和热流变成 300 K 的采样。

若目标是研究 300 K 性质,应先通过平衡和初始总能量准备,使 NVE 平均温度接近所需温度;继续检查温度、总能量、轨迹长度和重复条件。已有数据的分母换算只能修正同一实际状态的归一化,不能替代重新准备合适的物理状态。

不同种子的实际温度也可能不同。按各条轨迹分别处理后再比较,同时报告实际温度范围;不能用一个合并平均温度把四条不同状态强行变成一个精确温度点。

5 黏度的真实例子#

下面只取上一批各一条 LJ 轨迹的 1–3 ps 窗口,单位 mPa·s;它们不是四种子汇总表:

实际轨迹 NVE 均温 / K 原生 100 K 分母 同一轨迹的实际温度分母
P100,Ar108,种子 13579 101.75334 0.278586 0.273786
V100 16G,Ar256,种子 13579 93.55449 0.192327 0.205578

读取配套上下文:

head analysis/LJ-temperature-normalization-context.csv

这里使用 100/Tmean 的一次方。第二行得到的是对约 93.55 K 实际采样重新归一化后的窗口值,不能改名成“已修正到 100 K 的黏度”。

这一处理也不会消除短轨迹噪声;多种子、相关窗口和尺寸仍按黏度统计教程继续检查。

6 一个实用操作顺序#

  1. 核对输入中的目标温度和恒温方法。
  2. 把平衡与生产输出分清,读取 NVE 实际温度和总能量。
  3. 看清原生热导或黏度所采用的温度分母。
  4. 保留原生结果,另存按实际温度分母处理的数据。
  5. 报告实际温度、模型、尺寸、采样长度与统计窗口,再讨论性质。

本篇只解决温度与分母的解释。它不提供收敛材料热导或黏度,也不把简单乘因子称作温度重加权。

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

查看配图

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

100%查看原图 ↗