Processing math: 100%


任意截面的导热过程

任意截面的导热过程

通解

image-20230924180757096

温度梯度沿x方向,yz平面的形状任意但固定,x方向无限长。这个时候弛豫时间近似+小扰动近似下的偏差声子玻尔兹曼方程可以写成 vxdf0dTdTdx+vygy+vzgz=gτ

vyτgy+vzτgz+g=vxτdf0dTdTdx=S0
用特征线法来解这个一阶PDE,我们假设yz是某个参数t的函数,并且存在 dydt=vyτ,dzdt=vzτ
t=0时,yz的值是确定的,我们假设y(0)=y0,z(0)=z0,于是我们可以得到 y(t)=vyτt+y0,z(t)=vzτt+z0
将特征线方程代回到原始微分方程中, dgdt+g=S0
这和之前推导的面向导热过程一致了,我们可以得到这个一阶ODE的通解为 g=S0+Cexp(t)
除了yz,注意g还是方向的函数。假设边界的坐标可以表示为rB=(yB,zB),若截面各边界是漫射边界条件,并且那么边界条件可以表示为边界处方向朝向结构内侧的g值为g(yB,zB)|inner=0。"向内"这个方向关系用数学语言来描述就是yyBvy的符号是一样的。我们令t=0y0=yB,z0=zB,此时特征线描述了分布函数从边界出发的传播过程,利用边界条件可以得到结构内侧的分布函数为 g=S0[exp(|yyBvyτ|)1]=S0[exp(|zzBvzτ|)1]
我们还知道 vx=vcosθvy=vsinθsinφvz=vsinθcosφ
于是可以把得到的分布函数整理成 g=S0[exp((yyB)2+(zzB)2(v2y+v2z)τ)1]=S0[exp(|rrB|l01μ2)1]=g0S0
这个表达式的物理含义是比较清晰的,(r,s)处的分布函数的值,由与其反向相交的边界处的分布函数的值确定,不同方向相交的边界是不一样的。分布函数从对应边界处传播到当前位置,经历了一个指数衰减过程。

获得了分布函数以后,可以获得(y,z)处沿x方向的热流: qx(y,z)=14πωD(ω)dω2π011gvxdμdφ=14πωD(ω)dω2π011gvμdμdφ=14πωD(ω)dω2π011(g0S0)vμdμdφ

积分得到整个截面处沿x方向的热流,A是截面的面积, Qx=Aqx(y,z)ds
其中S0这一项与位置无关,我们先把它积掉 QS0=A4πωD(ω)dω2π011S0vμdμdφ=df0dTdTdxAωD(ω)v2τdω10μ2dμ=AdTdx13df0dTωD(ω)v2τdω=AdTdx13Cvldω
这就是体材料热导率导热这一项,所以前面的 g0=S0exp(|rrB|l01μ2)
这一项体现了尺寸效应的影响,不同的结构g0的表达式不同,这里要清楚rB是和分布函数的方向有关的。

矩形截面

假设我们研究的是一个纳米线中的导热过程,那么截面是一个长方形,我们可以分析一下这种情况。假设截面z方向的长度为Lzy方向的长度为Ly,某一点的坐标是(y,z)。这是一个对称的结构,因此我们只要分析方向的反向延长线和两个边界相交的情况就可以了,这把这个结果乘2就是最终结果了,我们这里分析左侧和上边界相交的情况。

image-20230925084937685

当坐标处于(y,z)的时候,从左侧边界出发的角度,就是从φ1φ2这一段,这一段的g0可以写成 g0=S0exp(yvsinθsinφ)

从上方边界出发的角度,就是φ2φ3这一段, g0=S0exp(Lzzvsinθcosφ)
其中 φ1=arctan[y/z],φ2=π/2+arctan[(Lzz)/y],φ3=π+arctan[(Lyy)/(Lzz)]
于是这一项对总热流的贡献可以写成一个五重积分的形式: Qg0=df0dTdTdx1πLy0dyLz0dzωD(ω)v2τdω10μ2dμ[φ2φ1exp(yl01μ2sinφ)dφ+φ3φ2exp(Lzzl01μ2cosφ)dφ]

灰体近似,同时用体材料热导率归一化,可以得到 (Qg0+QS0)/QS0=keff/kbulk=13πLyLzLy0dyLz0dz10μ2dμ[φ2φ1exp(yl01μ2sinφ)dφ+φ3φ2exp(Lzzl01μ2cosφ)dφ]

### 有限长度纳米线

Hua Y C, Cao B Y. Ballistic-diffusive heat conduction in multiply-constrained nanostructures[J]. International Journal of Thermal Sciences, 2016, 101: 126-132.

假设长度有限,这里还会涉及到法向的边界影响,这时候可以近似认为法向边界和侧向边界的影响是独立的,采用马西森定则来降低推导的困难程度。假如载流子在运动过程中受到两种散射机制A和B的作用,他们的散射率分别是ΓA=1/τAΓB=1/τB。如果A、B两种机制的影响是相互独立的,那么总的散射率Γ就可以表示成Γ=ΓA+ΓB=1/τA+1/τB,也就是说我们可以分别研究在单独某一种散射机制影响下载流子的运动。邵成博士和Shiomi开发的P-TRANS中给出的所谓"马西森定则模拟方法"就是这种想法的应用,近似认为边界散射的影响可以独立于声子本征散射,此时总的散射率可以写成

1Λeff(ω)=1Λpp(ω)+1Λbdy(ω)

这种分离从模拟的角度理解,就代表在仿真的时候可以只考虑边界散射而不再考虑本征散射,粒子只有撞到界面的时候才会发生透射/反射,其他时刻始终沿直线运动,这其实就和图形学里的光线追踪差不多了。通过这种模拟获得了Λbdy(ω)后,可以直接通过马西森定则计算得到总散射率,最后再通过积分的方式获得结构的等效热导率。由于不需要在仿真的时候考虑本征散射过程,这大幅降低了模拟的计算需求。从解析的角度,我们也可以分别推导法向导热过程和侧向导热过程的抑制函数,最后通过马西森定则得到多约束的总计影响, lt=1l10+l1x+l1c=l01+l0/lx+l0/lc
对于法向导热过程,我们已经知道了等效热导率的表达式: keff/kbulk=143l0Lx+1
于是 keff=13Cv21τ10+τ1x=13Cvl01+l0/lx=kbulk1+l0/lx
可以得到 l0/lx=43l0Lx

对于面向导热过程,上面我们也已经推出了等效热导率的表达式,可以整理出来 keff/kbulk=l10l1c+l10=1l0/lc+1=13πLyLzLy0dyLz0dz10μ2dμ[φ2φ1exp(yl01μ2sinφ)dφ+φ3φ2exp(Lzzl01μ2cosφ)dφ]

所以 113πLyLz...1=l0/lc
所以 kwire/kbulk=1/(1+43l0Lx+113πLyLz...1)=1/(43l0Lx+113πLyLz...)
这个结果没法解析求解,只能够数值求解。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import numpy as np
from numba import njit


@njit
def compute_integral(L_y, L_z, l_0, n_y, n_z, n_mu, n_phi):
# 创建离散点,避免端点
y_vals = np.linspace(0, L_y, n_y)[1:-1]
z_vals = np.linspace(0, L_z, n_z)[1:-1]
mu_vals = np.linspace(0, 1, n_mu)[1:-1]

dy = y_vals[1] - y_vals[0]
dz = z_vals[1] - z_vals[0]
dmu = mu_vals[1] - mu_vals[0]

# 初始化积分结果为0
integral = 0.0

# 执行四重循环来计算离散积分
for i in range(len(y_vals)):
for j in range(len(z_vals)):
for k in range(len(mu_vals)):

# 计算φ的限制
phi_1 = np.arctan((y_vals[i]) / (z_vals[j]))
phi_2 = np.pi / 2 + np.arctan((L_z - z_vals[j]) / (y_vals[i]))
phi_3 = np.pi + np.arctan((L_y - y_vals[i]) / (L_z - z_vals[j]))

phi_vals1 = np.linspace(phi_1, phi_2, n_phi)[1:-1]
phi_vals2 = np.linspace(phi_2, phi_3, n_phi)[1:-1]

dphi1 = phi_vals1[1] - phi_vals1[0]
dphi2 = phi_vals2[1] - phi_vals2[0]

for l in range(len(phi_vals1)):
# 计算两个不同φ区间的积分部分
term1 = np.exp(- y_vals[i] / (np.sin(phi_vals1[l]) * np.sqrt(1 - mu_vals[k]**2) * l_0)) * mu_vals[k]**2
integral += term1 * dphi1

for l in range(len(phi_vals2)):
# 计算两个不同φ区间的积分部分
term2 = np.exp((L_z - z_vals[j]) / (np.cos(phi_vals2[l]) * np.sqrt(1 - mu_vals[k]**2) * l_0)) * mu_vals[k]**2
integral += term2 * dphi2

return integral

k = []

for L in [0.5, 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
# 定义常量
L_y = L
L_z = L
L_x = 10.0
l_0 = 1.0

# 定义离散点的数量
n_y = 100
n_z = 100
n_mu = 100
n_phi = 100

# 计算离散积分的最终结果
integral = compute_integral(L_y, L_z, l_0, n_y, n_z, n_mu, n_phi)
integral *= (3 / (np.pi * L_y * L_z)) * (L_y / n_y) * (L_z / n_z) * (1 / n_mu)

# 计算G_rec^-1的最终结果
G_rec_inv = 1 - integral
G = 1 / G_rec_inv
F = 1 + 4 * l_0 / (3 * L_x)

k.append(1 / (F + G - 1))

nanowire