使用lammps计算材料的热导率最常用的方法是NEMD,这种方法也称为“非平衡态”法。
所谓非平衡态是与平衡态相对的一种状态,在大多数的分子动力学模拟中需要进行驰豫,驰豫也称为“跑平衡”,是为了获得材料在平衡状态下的形态,此时,体系的温度和能量基本保持不变。
非平衡态与之相反,温度并不恒定,而是保持一定的梯度。
使用NEMD法计算热导率k,主要依据是傅里叶定律公式:
k=-dQ/(dT/dx)
其中:dQ为单位面积单位时间内通过的热流。
dT/dx为温度梯度。
从这个公式可以看出,需要一个稳定的温度梯度才能计算出热导率。
温度梯度可人为设定,常用的方法是体系中设置一个热源持续输入热量,设置一个冷源持续抽出热量,在高温区和低温区之间存在一个传热区,从而形成温度梯度。
在上一篇文章中,使用fix heat方法在实现了温度梯度。
下面主要讲解如何从模拟结果中计算出热导率。
1. 计算dQ
通过fix heat命令中的参数计算输入的总热量J。
fix 1 hot heat 1 1.0
例如上一句命令中,设置每1步输入热量为1,单位为ev/ps。模拟步长为0.001,模拟1000步(1ps)输入的热量J为1ev,在metal单位下,需将J乘以1.6e-7将单位转换为W。
计算传热方向的截面面积A(单位转为为m2),如果是周期性边界,传热方向为双向,再除以2,可得:
dQ=J/A/2
2.计算温度梯度dT/dX
使用compute chunk/atom和fix ave/chunk计算温度梯度,导出到temp.txt文件中。
绘制温度T-位移X曲线,求曲线斜率,该斜率即为dT/dX。
3.计算热导率
将以上数据带入k=-dQ/(dT/dx)
即可求得热导率。