这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
adf:heatconductance [2022/09/22 12:02] – [模型与参数] liu.jun | adf:heatconductance [2024/06/14 07:36] (当前版本) – [计算方法与思路] liu.jun | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ======ReaxFF-热导率:使用T-NEMD方法计算热导率====== | + | ======热导率方法1:T-NEMD方法结合温度分布====== |
=====计算方法与思路===== | =====计算方法与思路===== | ||
在体系中划分一个区域为“热源”,类似划分一个区域为“热漏”,二者之间存在一个热传导区域。系统不断通过“热源”以一定速率释放能量,而“热漏”则以相同速率吸收能量,在经过足够时间长度之后,整个系统的温度将达到一种平衡状态。热传导区域的温度分布曲线,将会存在一个稳定的梯度:靠近“热源”的位置温度最高,靠近“热漏”的位置温度最低。 | 在体系中划分一个区域为“热源”,类似划分一个区域为“热漏”,二者之间存在一个热传导区域。系统不断通过“热源”以一定速率释放能量,而“热漏”则以相同速率吸收能量,在经过足够时间长度之后,整个系统的温度将达到一种平衡状态。热传导区域的温度分布曲线,将会存在一个稳定的梯度:靠近“热源”的位置温度最高,靠近“热漏”的位置温度最低。 | ||
行 5: | 行 5: | ||
**温度分布曲线:** | **温度分布曲线:** | ||
- | A、B、C三个方向,分别均分为N个切片,温度曲线是这N个切片的温度。会得到三个温度分布函数,对应三个方向的温度分布。每个切片的温度,是这个切片内所有原子,从上一帧到当前帧的时间范围内的平均温度。因此切片数不建议太多(以确保片内原子个数较多,具有统计平均的意义),保存轨迹的频率不宜高(默认100建议改为1000或2000甚至根据需要改到更大数值),否则都会导致温度曲线震荡会比较剧烈,失去统计意义。 | + | A、B、C三个方向([[adf: |
**热导率计算公式:** | **热导率计算公式:** | ||
行 18: | 行 18: | ||
**计算引擎:** | **计算引擎:** | ||
- | 本文以ReaxFF为例进行演示,实际上使用普通力场的分子动力学、DFT、DFTB分子动力学均可用于热导率计算,除了Main面板(引擎自身参数)的设置不同,其他设置是完全一致的。力场的质量会直接影响热导率计算的准确性。 | + | 本文以ReaxFF为例进行演示,实际上使用普通力场的分子动力学、机器学习势、DFT、DFTB分子动力学均可用于热导率计算,除了Main面板(引擎自身参数)的设置不同,其他设置是完全一致的。力场的质量会直接影响热导率计算的准确性。 |
关于周期性:热导率计算对于0~3维周期边界条件均支持,用户需要注意在没有周期性的情况下,哪个方向,哪一段区域是热传导区域,找到对应的温度分布数据即可。 | 关于周期性:热导率计算对于0~3维周期边界条件均支持,用户需要注意在没有周期性的情况下,哪个方向,哪一段区域是热传导区域,找到对应的温度分布数据即可。 | ||
行 30: | 行 30: | ||
正常设置分子动力学基本参数。需要注意的是,为了确保温度曲线数据稳定,我们将保存轨迹的频率从默认的100改为了3000,总共运行60万步。关于步数:需要让体系的温度分布达到平衡状态,多少步才能达到平衡?模拟之前,我们是不知道的,因此可以设置的大一些。 | 正常设置分子动力学基本参数。需要注意的是,为了确保温度曲线数据稳定,我们将保存轨迹的频率从默认的100改为了3000,总共运行60万步。关于步数:需要让体系的温度分布达到平衡状态,多少步才能达到平衡?模拟之前,我们是不知道的,因此可以设置的大一些。 | ||
{{ : | {{ : | ||
- | 设置温度:如果我们关心什么温度下的热导率,这里就设置为多少 | + | 设置温度:如果我们关心什么温度下的热导率,这里就设置为多少,这个温度将会是体系的总体平均温度。 |
{{ : | {{ : | ||
分别设置热源区域(Source)和热漏区域(Sink)(如何添加Region,参考教程[[adf: | 分别设置热源区域(Source)和热漏区域(Sink)(如何添加Region,参考教程[[adf: | ||
行 41: | 行 41: | ||
* Method是实现热传导的三种算法:1) Simple方法中,原子速度按比例放大(或缩小)一个因子,该因子与能量速率对应,不考虑总动量的守恒;2) HEX 方法中,速度以总动量守恒的方式缩放,这会在总能量中引入一个小但可见的漂移;3) e HEX 算法,通过添加三阶时间积分校正来消除漂移,从而改进HEX。我们测试SiO< | * Method是实现热传导的三种算法:1) Simple方法中,原子速度按比例放大(或缩小)一个因子,该因子与能量速率对应,不考虑总动量的守恒;2) HEX 方法中,速度以总动量守恒的方式缩放,这会在总能量中引入一个小但可见的漂移;3) e HEX 算法,通过添加三阶时间积分校正来消除漂移,从而改进HEX。我们测试SiO< | ||
* 设置为2000步以后才开始进行热传导(因为MD前面的一些step,体系有可能还没有达到平衡,这个过程相当于让体系充分弛豫,这个值也可以适当调整 | * 设置为2000步以后才开始进行热传导(因为MD前面的一些step,体系有可能还没有达到平衡,这个过程相当于让体系充分弛豫,这个值也可以适当调整 | ||
- | * 能量传递速率(即功率)为0.004 Hatree/ | + | * 能量传递速率(即功率)为0.004 Hatree/ |
* 指定热源为Source区域的原子,热漏为Sink区域的原子。当然用户也可以不使用region,直接勾选Show,然后在下面对应的ABC数据中设定热源与热漏的范围,ABC为晶格矢量,后面的数据为分数坐标,用户可以通过修改数值,观察阴影区域的变化,从而正确理解数据的作用。 | * 指定热源为Source区域的原子,热漏为Sink区域的原子。当然用户也可以不使用region,直接勾选Show,然后在下面对应的ABC数据中设定热源与热漏的范围,ABC为晶格矢量,后面的数据为分数坐标,用户可以通过修改数值,观察阴影区域的变化,从而正确理解数据的作用。 | ||
行 57: | 行 57: | ||
=====温度曲线生成===== | =====温度曲线生成===== | ||
- | 计算完毕后,SCM → Kf Browser → File → Expert Mode,窗口底部输入tempprofiel,在MDHistory中可以找到每一帧(本例60万步,每3000步保存一次,加上初始结构因此有201帧)的温度分布函数数据,例如101帧C方向: | + | 计算完毕后,SCM → Kf Browser → File → Expert Mode,窗口底部输入tempprofile,在MDHistory中可以找到每一帧(本例60万步,每3000步保存一次,加上初始结构因此有201帧)的温度分布函数数据,例如101帧C方向: |
{{ : | {{ : | ||
行 65: | 行 65: | ||
<color grey> | <color grey> | ||
- | <color grey> | + | <color grey> |
- | 横坐标值就是从0~C之间的等分30个数值,其中C为267.448384 Å,每个数据点的横坐标间隔为C/ | + | 横坐标值就是从0~C之间的等分30个数值,如下图所示,C=267.448384 Å,每个数据点的横坐标间隔为C/ |
{{ : | {{ : | ||
行 89: | 行 89: | ||
= 5.59 W/mK | = 5.59 W/mK | ||
+ | =====注意:===== | ||
+ | * 模型太小,则热涨落很大,模型越大,结果越趋于稳定。 | ||
+ | * 力场的准确度对结果影响很大。 | ||
+ | * 该方法对力场、DFTB、MOPAC、DFT均适用。 |