一些蒙卡的思考
最近经历了一些思考上的挣扎,对BTE和MC有一些碎片化的认识深入,用毛主席的话说就是
原来人在实践过程中,开始只是看到过程中各个事物的现象方面,看到各个事物的片面,看到各个事物之间的外部联系。 例如有些外面的人们到延安来考察,头一二天,他们看到了延安的地形、街道、屋宇,接触了许多的人,参加了宴会、晚会和群众大会,听到了各种说话,看到了各种文件,这些就是事物的现象,事物的各个片面以及这些事物的外部联系。这叫做认识的感性阶段,就是感觉和印象的阶段。也就是延安这些各别的事物作用于考察团先生们的感官,引起了他们的感觉,在他们的脑子中生起了许多的印象,以及这些印象间的大概的外部的联系,这是认识的第一个阶段。在这个阶段中,人们还不能造成深刻的概念,作出合乎论理(即合乎逻辑)的结论。
现在这些碎片化的认识的确引起了我的一些新的感觉,在脑子中升起了对这些概念许多的印象,以及这些印象间的大概的外部的联系,但是就像是一堆碎片分布在一个球上,还没法连成一个球面,所以现在这些认识还是站不住脚的,还不是真正深刻的,还不能够支撑我做出百分之百肯定的合乎论理的结论,从而帮助我进行接下来的工作.. 所以我要把这些碎片化的印象都记录下来,看看他们能不能或者希望他们有朝一日能够构成一些系统的内容..
所以我看师弟师妹们做的一些东西,正来师弟要是光做拓扑优化还好,老板让他直接做弹道扩散导热的拓扑优化,这个门槛就有些高了.. 虽然有含灵师兄在,但是这个东西要是理解不到位的话很难得到一些正确的结论,甚至解释和想法都可能是错的,我想比较好的入门方式是毕设做一些宏观的换热器的拓扑优化,把这个东西做细一点,都搞清楚了以后读研究生了再开始接触一些非傅里叶的东西,各方面发展也会顺利一点. 不过我推荐他用Latex排毕业论文,发了自己的论文,其实只需要改一改就行了,但是最后好像还是用Word排版的..
朝阳师妹老板让她算石墨烯的声子水动力学模拟,还是拿本典师兄的混乱的Fortran程序,这个东西门槛就更高了.. 要是拿这个入门.. 我感觉大三的超哥可能也有点困难.. 不过这个方向也不会一直做..等老板给她我这边相关的东西时我再帮她Formulate一下计划吧.. 不过感觉要是我的话应该会很焦虑..怎么把这种焦虑转变成一种建设性的方案是需要不断提高摸索的.. 蒙特卡洛做了将近一年了,有些概念我感觉我的理解也还是比较肤浅的,并不是真的懂了. 毕设的时候做的煤油项目,这个东西的好处就是门槛比较低,所以拿它当作一个对象,遗传算法跑一遍,机器学习跑一遍,分子模拟跑一遍,Latex码一遍毕业论文,再写一篇文章,整体上来说是比较全面而且坡度比较缓的学习和训练过程..
包括我自己刚做一个门槛比较高的新问题的时候,有时候的确会找不到方向,很难做得深入下去,因为里面有太多的东西并没有真正理解了. 所以最好的方式还是接着一个比较成熟的基础做,这个基础已经封装好了,拿着它去解决一些更上一层面的问题,在做的时候逐渐把封装内部打开看一看. 大家做的东西本质上都是1+1,只不过水平高点的做的就是99+1.. 要从头把99都实现就太难了,时间也太漫长,正反馈也很低,自己心态和工作方法再差一点就废了.. 不过像超哥的确是可以从1开始加起来,一力降十会啊.. 水平低一点的就得靠规划和一些方法论给自己铺一点平缓的路出来.. 我感觉IEEE这篇文章的起步和解释的门槛就快达到我作为刚入门的边界了..
我如果带学生的话肯定会给他想一个能做下去而且能激励他建立正反馈的一个方向,即使有项目在我也会先拆给他一些比较简单的model做起,刚起步最大的困难不是能不能把问题想得很全面,而是没把问题拆到、简化到可操作的地步,今早跟含灵师兄聊天感觉我的思路还是要比含灵师兄不成熟很多.. 想很多方案还是想不到真正能work能做下去有结果支撑下一步工作的点,可能还是要慢慢总结和提高...
知识的问题是一个科学问题,来不得半点的虚伪和骄傲,决定地需要的倒是其反面——诚实和谦逊的态度。
只要我们MC用固定的\(\Delta t\)来模拟,统计每一个时刻声子对该处能量的贡献,这样算出来的就是晶格温度了. 直接通过抽取随机数确定运动的距离,这时算出来的就是散射温度.
在非平衡状态下计算温度,我相信很多人模拟了半天也没搞清楚不同的算法下算出来的温度到底是个什么物理含义(比如我自己). 温度是一个平衡态的概念,所以要定义非平衡状态下的温度必须采用某种等效的方案,即处于平衡态某个温度下的某个量等于非平衡态下的某个量。这个量一般存在两种选取方式,一种是能量密度,一种是热流密度. 散射温度是基于热流相等定义的,晶格温度是基于能量相等定义的,用能量守恒方程算出来的都是散射温度. 在基于确定性方法中求解声子BTE时,我们需要同时求解下面两组方程, \[ \frac{\partial f_\omega}{\partial t} + |v_g| \vec{s}\cdot \nabla f_\omega = - \frac{f_\omega - f_\omega^0(T)}{\tau_\omega} \]
\[ \frac{\partial e}{\partial t} + \nabla \cdot \vec{q} = - \sum_p \int_{\omega=0}^{\omega_m}\int_{\Omega} \hbar\omega D(\omega) \frac{f - f_0}{\tau(\omega)} \mathrm{d}\Omega \mathrm{d}\omega = 0 \]
比如在PINN那篇文章里或者陈刚以前的Quasi-Ballistic,温度是用下面的能量守恒方程算出来的, \[ T=T_{r e f}+\frac{1}{4 \pi}\left(\sum_{p} \int_{0}^{\omega_{\max p}} \int_{4 \pi} \frac{e}{\tau} d \Omega d \omega\right) \times\left(\sum_{p} \int_{0}^{\omega_{\max }} \frac{C}{\tau} d \omega\right)^{-1} \] 这个能量守恒方程本质上是基于局域热流密度定义的,我们把\(f\)和\(f_0\)挪到等式的两边,可以得到 \[ \sum_p \int_{\omega=0}^{\omega_m}\int_{\Omega} \hbar\omega D(\omega) \frac{f }{\tau(\omega)} \mathrm{d}\Omega \mathrm{d}\omega = \sum_p \int_{\omega=0}^{\omega_m}\int_{\Omega} \hbar\omega D(\omega) \frac{f_0}{\tau(\omega)} \mathrm{d}\Omega \mathrm{d}\omega \] 其实这个东西.. 可以重新理解一下BTE右边散射项的含义了.. \(f/\tau\)就代表非平衡分布函数发射的热流,\(f_0/\tau\)就代表平衡分布发射的热流,能量守恒应保证他们他们发射的总热流是相等的.. 这个和边界发射的区别是什么呢.. 边界发射的是热流,这里是热流的散度,也就是局域能量发射密度,这里的量纲是并不一样的. oh那我大概理解了散射温度和声子能量守恒方程之间的联系
关于灰体近似的含义,它的确和德拜模型是不等价的,我们可以用不同的色散模型去做灰体近似,它的含义还是说认为声子的性质与频率无关,平均后的声子性质只和温度有关. 在灰体近似的MC模拟中声子的性质就不会改变了. 那么在灰体模拟下我们是怎么统计温度的呢?我们还是要区分开模拟过程和统计过程. 其实还是基于能量来统计温度的.
假设现在我想要模拟这样一个体系.. 上面是400K,下边是300K..
其实超哥实际做的和他文章里写的是不一样的,他模拟中定义的声子能量团并不是\(E/N_b\),这里\(E\)是某一边界辐射的总能量,而是能量偏差,相对于某个参考低温热沉温度的能量偏差. 假如我这里选取的参考温度是\(T_{ref}\),存在上下两个薄膜,那么上薄膜根据四次方近似得到的能量偏差就是 \[ \begin{gather*} \sigma T^4 - \sigma T_{ref}^4 = E_{dev} \\ \end{gather*} \] 假设我定义一个声子能量团代表的能量为\(e^0\),那么高温边界发射的总声子数就是\(E_{dev}/e_0\),当然他们这里选取的参考温度都是低温边界的温度\(T_0\),所以在这种模拟中低温边界是不需要发射声子的. 如果那么我们再看一看在KMC中这个东西是怎么做的,它的体系中的声子能量团代表的也是能量偏差,但是一般是说这个参考温度是选取在低温热沉和高温热沉之间,所以此时低温热沉也需要发射声子,当然这时候低温热沉发射的声子就会多一个sign参数来标记,代表负能量,它对温度的贡献是负的. 所以从昨晚到现在绕在我脑子里的一件事就是到底怎么确定我应该发射多少声子数,如果我不采用相对无量纲的方案的话.. 那么我们看看在KMC这个程序中是怎么做的,今天的工作就是把KMC这个一维的程序改成灰体的模拟一遍,然后再看看TFL的确定性方法是怎么做的,那这样的话我基本上就清楚应该怎么做了. 实际上是用这个公式来确定偏差能量的, \[ \begin{aligned} q_{\omega, b}^{\prime \prime}&=\frac{1}{4} \sum_{p} D(\omega, p) v_{g, \omega} \hbar \omega \left[f(T_b) - f(T_{ref})\right] \\ &\approx \frac{1}{4}\sum_p C(\omega, p) v_{g, \omega} (T_b - T_{ref}) \end{aligned} \] 同理,内部的偏差能量和低温热沉的偏差能量我们也可以计算,这时候我们就可以算出来总的偏差能量,这些偏差能量有正有负,但是我们在抽样发射位置的时候是按照偏差能量的绝对值的大小去抽样的. 那么温度怎么统计呢,就是说此时我们在计算温度时不去考虑比热容的变化,但是在区分不同粒子做抽样的时候还是需要考虑的. 这部分统计温度的时候无论色散还是灰体都是一样的,因为它实际上来自于比热容的近似.. 那这个是不是和含灵师兄这一套四次方的近似差不多呢.. 嗯.. 这个可以以后再想一想..
他这偏差KMC在做的时候只有对散射时和对温度统计时采用了近似,总偏差能量计算时是没有近似成总的比热容的.
哦正好看一下这个热流是怎么统计的,就是能量乘上对应方向的速度. 粒子在这个cell里,它现在有一个运动方向,我此时就可以同时统计这个位置的温度和热流了,温度的话就统计这个小能量团对能量的贡献再除以一个比热就好了,热流的话就要再乘以一个速度,热流数组的维数和MC模拟的维数是相同的. 啊感觉对MC有些开朗了. 但现在我的问题是怎么把四次方这种东西和这个比热的小温差近似下得到的结论对应起来,然后可以看一下这种模拟方式下的无量纲能够推导出什么样的结果.
正常来说,我的无量纲温度都应该是, \[ \theta^* = \frac{T - T_c}{T_h - T_c} \] 在KMC里,我的温度这样定义的! \[ \begin{gather*} T = T_{ref} + p_{sign} * Eeff / (C*Dx) \end{gather*} \] 那它是怎么和我的高低温热沉建立起来联系的呢?这个联系就在于偏差能量的定义和选取. \[ \theta^* = \frac{S\times p_{sign}\times E_{eff} / (\mathrm{d}V)}{T_h - T_c } \] 假设我选取低温热沉边界的温度作为参考温度,那么此时一份偏差能量\(E_{eff}\)的计算公式是什么呢?我们先要计算高温边界到低温边界的能量偏差,此时能量偏差都是正的,因为高温热沉就是要比低温热沉多发射能量的, \[ \begin{aligned} q_{\omega, b}^{\prime \prime}&=\sum_{p} \int_0^{\omega_m}\frac{1}{4} D(\omega, p) v_{g, \omega} \hbar \omega \left[f(T_h) - f(T_{c})\right] \\ &\approx \sum_p \int_0^{\omega_m} \frac{1}{4} C(\omega, p) v_{g, \omega} (T_h - T_{c}) \\ \end{aligned} \] 所以假设模拟\(N\)个粒子,那么一份声子能量团的能量就是, \[ E_{eff} = \frac{\sum_p \int_0^{\omega_m} \frac{1}{4} C(\omega, p) v_{g, \omega} (T_h - T_{c})}{N} \] 代入到无量纲温度的计算式中, \[ \begin{aligned} \theta^* &= \frac{S\times E_{eff} / (C\mathrm{d}V)}{T_h - T_c} \\ &= \frac{S\times \sum_p \int_0^{\omega_m} \frac{1}{4} C(\omega, p) v_{g, \omega} (T_h - T_{c})}{N (T_h - T_c)C\mathrm{d}V} \\ &= \frac{S\times \sum_p \int_0^{\omega_m}C(\omega, p)v_{g, \omega}}{4CN\mathrm{d}V} \end{aligned} \] 此时在无量纲温度中,绝对温度的影响消掉了,此时我们的模拟结果和温度无关了,我们此时定义的声子能量团就不再需要用实际的能量偏差来定义了,只需要发射就好,最后都可以除回来. 色散关系都认为是不变的,那么此时.. 实际上就是\(S/(4N\mathrm{d}V)\),后面乘上一个系数. 我们有趣的发现这个公式和我们基于四次方差公式近似出来的无量纲温度一样了. 这个系数是什么呢?在这里就是 \[ \frac{\sum_p \int_0^{\omega_m} C(\omega, p)v_{g, \omega}\mathrm{d}\omega}{\sum_p \int_0^{\omega_m}C(\omega, p)/\tau\mathrm{d}\omega} \] 竟然是跟模拟时长相关的.. 还是要注意KMC里..
再重新认识一下这个斯特藩-玻尔兹曼系数代表什么含义,翻回之前写过的声子斯特藩-玻尔兹曼系数的介绍,?这个\(4\pi\)是从哪里出来的来着.. 态密度这个出来的\(8\pi^3\)是把离散声子态求和转变成对波矢笛卡尔空间做积分出来的,这里的态密度完全是在标量\(k\)和标量\(\omega\)之间转换出来的,但是我们在对分布函数的热流统计时是沿着各个立体角方向的热流求和,相当于\(D(\omega)\)这个量是矫枉过正的一个量,然后实际计算的时候还要多除一个\(4\pi\)把立体角再拆出来,相当于这样才是一个真正的微分态密度.
R散射和N散射的处理还是有区别的,R散射后声子的运动方向是是完全随机sample的,也就是变成了各向同性发射. 而N散射过程声子的发射并不是各向同性的,而是有一个偏向的方向,这个方向由散射声子的潜移速度决定,散射后的声子动量保持不变. 所以根据抽样的散射机制的不同需要进行不同的处理.
小温差近似最关键的一点近似是当把能量换成比热乘温差时各个频率的差异没了,温度是只有格点温度,与频率是无关的。而与频率无关的项可以消掉。
能带图是波矢空间,电子的空间位置跟它没有任何关系,这个在建立分布函数的图像时这个很容易搞混,导带和价带没有本质区别,就像光学声子和声学声子的区别,只是能量的差别,处理方式应该都是统一的. 能量和波矢的关系描述的是电子的可存在的性质分布。正空间只不过是BTE的更新问题,或许和格子BTE的处理是差不多的。intravalley,谷内散射,同一条带;intervalley,散射到不同的带间;interband,散射到价带或者导带上;半导体里电子能量大概1ev;声学声子对电子能量改变比较小,所以一般是被认为是弹性散射;电子和光学声子的散射可能产生各种散射过程.
其实格子玻尔兹曼这里漂移项之所以一次正好顺次移动一个网格,是这个空间步长和时间步长的对应关系导致的嘛?