目录

热导率方法1:T-NEMD方法结合温度分布

计算方法与思路

在体系中划分一个区域为“热源”,类似划分一个区域为“热漏”,二者之间存在一个热传导区域。系统不断通过“热源”以一定速率释放能量,而“热漏”则以相同速率吸收能量,在经过足够时间长度之后,整个系统的温度将达到一种平衡状态。热传导区域的温度分布曲线,将会存在一个稳定的梯度:靠近“热源”的位置温度最高,靠近“热漏”的位置温度最低。

温度分布曲线:

A、B、C三个方向(如何显示方向?),分别均分为N个切片,温度曲线是这N个切片的温度。会得到三个温度分布函数,对应三个方向的温度分布。每个切片的温度,是这个切片内所有原子,从上一帧到当前帧的时间范围内的平均温度。因此切片数不建议太多(以确保片内原子个数较多,具有统计平均的意义),保存轨迹的频率不宜高(默认100建议改为1000或2000甚至根据需要改到更大数值),否则都会导致温度曲线震荡会比较剧烈,失去统计意义。

热导率计算公式:

k = W/(S⋅grad(T))

其中,

计算引擎:

本文以ReaxFF为例进行演示,实际上使用普通力场的分子动力学、机器学习势、DFT、DFTB分子动力学均可用于热导率计算,除了Main面板(引擎自身参数)的设置不同,其他设置是完全一致的。力场的质量会直接影响热导率计算的准确性。

关于周期性:热导率计算对于0~3维周期边界条件均支持,用户需要注意在没有周期性的情况下,哪个方向,哪一段区域是热传导区域,找到对应的温度分布数据即可。

软件版本要求:

AMS2022.101或以上

模型与参数

AMS生成的温度曲线是从坐标原点开始的,为了和模型的位置完全对应,我们最好将Cell的顶点定义为坐标原点,如下图所示: 正常设置分子动力学基本参数。需要注意的是,为了确保温度曲线数据稳定,我们将保存轨迹的频率从默认的100改为了3000,总共运行60万步。关于步数:需要让体系的温度分布达到平衡状态,多少步才能达到平衡?模拟之前,我们是不知道的,因此可以设置的大一些。 设置温度:如果我们关心什么温度下的热导率,这里就设置为多少,这个温度将会是体系的总体平均温度。 分别设置热源区域(Source)和热漏区域(Sink)(如何添加Region,参考教程如何创建分区 实际上这里只有Souce和Sink用得上,两个传热区也顺便设置(注意传热区2虽然看起来是分成两段的,但由于存在周期性,因此两端实际是连在一起的)。为了确定两个传热区的长度一样,从而热源沿着两个方向传导的功率是一样的(详细参考下文中关于W的设置),点击Region名字后面的√,可以选中该Region所有原子,从而在窗口底部看到原子数目,确认传热区1、传热区2原子个数一样。

设置热传导模型: 上述参数:

保存作业,并修改生成的*.run文件(记事本可以修改),在其中的Trajectory字段增加一行TProfileGridPoints 30:

    Trajectory
        SamplingFreq 3000
        TProfileGridPoints 30
    End

表示体系沿着ABC三个方向,分别得到30个温度数据。

保存*.run文件后,AMSJobs 选中该作业,Job → Run运行。

温度曲线生成

计算完毕后,SCM → Kf Browser → File → Expert Mode,窗口底部输入tempprofile,在MDHistory中可以找到每一帧(本例60万步,每3000步保存一次,加上初始结构因此有201帧)的温度分布函数数据,例如101帧C方向:

这就是温度曲线纵坐标值。

数据处理小技巧:

将所有数值复制到Word文档中,选中数据之间的间隔,用查找替换功能,将其替换为换行符^p,再选中剩余的不规则字符,类似替换为空字符(什么也没有),则变成了规则的一列数据。

横坐标值就是从0~C之间的等分30个数值,如下图所示,C=267.448384 Å,每个数据点的横坐标间隔为C/30,热导率公式需要的C方向的横截面积S为4002.8113 Å2(即热导率公式中的S):

数据整理后作图(为了确保已经达到热力学平均,这里我们列出了最后一帧即60万步以及30万步的数据,二者基本上重叠,因此可以认为30万步的时候已经达到了热力学平均,否则用户需要设置更长的MD steps):

至此热导率公式中所有数据均齐备了,用户可以自行带入公式计算热导率:

k = W/(S⋅grad(T))

= (0.002 Hartree/fs) / (4002.8113 Å2 * 3.9 K/Å )

= 8.719 * 10-6 W / (4.0028113*10-17 m2 * 3.9 * 1010 K/m)

= 5.59 W/mK

注意: