事情是这样的。文献中对不同温度下离子的熵进行了计算,数据如下图:
lammps手册中和熵(entropy)相关的命令只有 compute entropy/atom,但看了看手册上的描述感觉不对劲。思索许久才发现作者在文章最后附上了自己通过轨迹文件计算熵的脚本。
python脚本[1]可以在文章作者的github上获取:
GitHub - eastsheng/entropy: Calculating the entropy from the trajectories of molecular dynamics simulationhttps://github.com/eastsheng/entropy/tree/main
使用时只需要修改脚本中变量的部分就行了:
# --------VARIABLES-------- #
# the dump file format is "id type mass x y z "
dump = './cationdump_'+str(temperature)+'.dat' #轨迹文件名
# dump interval step number
inter_step = 5 #各多少步输出一次
# sample interval of covariances,
sample_inter = 100 #多少帧采样一次用于计算
time_step = 1 #fs #模拟步长
atom_number = 285 #轨迹文件的原子数
可能是作者写的算法不得行的原因,当分析帧数过多/原子数过多时会报out of memory的错误,我也不是计爷,不知道咋优化。
在编写lammps的in文件时,需要注意一下几点:
group BMIM type 9 10 11 12 13 14 15 16 17 18 #将需要分析熵的原子分组
dump 2 BMIM custom 1000 bmim.xyz id type mass x y z #将需要分析的组单独输出轨迹文件,并且按照 id type mass xyz 这种脚本能够分析的格式输出
运行脚本对bmim.xyz轨迹文件进行分析,可以得到以下结果:
以及模拟时间内熵的均值:427.882547(单位懒得打了)。
Reference
[1]Selectively tuning ionic thermopower in all-solid-state flexible polymer composites for thermal sensing[J].Nature Communications[2023-12-13].DOI:10.1038/s41467-021-27885-2.