使用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)

即可求得热导率。