物理模型:

有对流换热的细棒导热(如下图),固定端为恒温边界,自由端为绝热边界,棒的侧壁面与环境之间存在对流换热。固定端温度TB=100℃T_B=100℃TB​=100℃,环境温度T∞=20℃T_\infin=20℃T∞​=20℃。

假设棒的截面内温度均匀,问题简化为一维导热模型,其控制方程为
ddx(kAdTdx)−hP(T−T∞)=0(1)\frac{d}{dx} \left( kA\frac{dT}{dx} \right) - hP(T-T_\infin)=0 \tag{1} dxd​(kAdxdT​)−hP(T−T∞​)=0(1)
其中 hhh 是对流换热系数,PPP 是侧面周长, kkk 是棒的导热系数。方程左边第二项在这里相当于源项。

该方程的解析解为,
T−T∞TB−T∞=cosh[n(L−x)]cosh(nL)(2)\frac{T-T_\infin}{T_B-T_\infin}=\frac{cosh[n(L-x)]}{cosh(nL)} \tag{2} TB​−T∞​T−T∞​​=cosh(nL)cosh[n(L−x)]​(2)
其中n2=hP/(kA)n^2=hP/(kA)n2=hP/(kA), AAA是截面积, LLL是棒的长度。L=1m,n2=25/m2L=1m,n^2=25 /m^2L=1m,n2=25/m2, kAkAkA是常数。

方程离散


网格单元数为5,因为kAkAkA是常数,所以方程式(1)(1)(1)可以简化为,
ddx(dTdx)−n2(T−T∞)=0(3)\frac{d}{dx} \left( \frac{dT}{dx} \right) - n^2(T-T_\infin)=0 \tag{3} dxd​(dxdT​)−n2(T−T∞​)=0(3)
其中,n2=hP/(kA)n^2=hP/(kA)n2=hP/(kA)。

按一维扩散方程的离散推导中方程式(4)(4)(4)的形式,这里相当于
Γ=1S=n2(T−T∞)}(4)\left. \begin{aligned} \Gamma =&1 \\ \\ S =& n^2(T-T_\infin) \end{aligned} \right \} \tag{4}Γ=S=​1n2(T−T∞​)​⎭⎪⎬⎪⎫​(4)

则方程离散为,
[(AdTdx)e−(AdTdx)w]−[n2(TP−T∞)Aδx]=0(5)\left[ \left( A\frac{dT}{dx} \right)_e - \left( A\frac{dT}{dx} \right)_w \right] - [n^2 (T_P-T_\infin)A\delta x] = 0 \tag{5}[(AdxdT​)e​−(AdxdT​)w​]−[n2(TP​−T∞​)Aδx]=0(5)

其中,Aδx=ΔVA \delta x =\Delta VAδx=ΔV。由于n2n^2n2是常数,所以n2(T−T∞)=Sˉn^2(T-T_\infin)=\bar Sn2(T−T∞​)=Sˉ。

方程两边消去AAA,有
[(TE−TPδx)−(TP−TWδx)]−[n2(TP−T∞)δx]=0(6)\left[ \left( \frac{T_E-T_P}{\delta x} \right) -\left( \frac{T_P-T_W}{\delta x} \right)\right] - [n^2(T_P-T_\infin)\delta x] = 0 \tag{6} [(δxTE​−TP​​)−(δxTP​−TW​​)]−[n2(TP​−T∞​)δx]=0(6)
整理之,
(1δx+1δx+n2δx)TP=1δxTW+1δxTE+n2δxT∞(7)\left( \frac{1}{\delta x} + \frac{1}{\delta x} + n^2\delta x \right) T_P = \frac{1}{\delta x}T_W + \frac{1}{\delta x}T_E+n^2\delta x T_\infin \tag{7} (δx1​+δx1​+n2δx)TP​=δx1​TW​+δx1​TE​+n2δxT∞​(7)
即,
aPTP=aWTW+aETE+Su(8)a_P T_P = a_W T_W + a_E T_E + S_u \tag{8} aP​TP​=aW​TW​+aE​TE​+Su​(8)
aW=1δxaE=1δxSP=−n2δxSu=n2δxT∞aP=aW+aE−SP}(9)\left. \begin{aligned} a_W =& \frac{1}{\delta x} \\ \\ a_E =& \frac{1}{\delta x} \\ \\ S_P = & -n^2 \delta x \\ \\ S_u = &n^2 \delta x T_\infin \\ \\ a_P = &a_W + a_E - S_P \end{aligned} \right \} \tag{9} aW​=aE​=SP​=Su​=aP​=​δx1​δx1​−n2δxn2δxT∞​aW​+aE​−SP​​⎭⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎫​(9)

式(8)(8)(8)和(9)(9)(9)是针对于内部节点的,如网格节点2,3,4

节点1

节点1包含了恒温边界,这是第一类边界条件,与一维扩散方程数值求解(第一类边界条件)中的边界条件相同,方程离散与其中的方程式22、23、2422、23、2422、23、24类似,
[(TE−Tpδx)−(TP−TBδx/2)]−[n2(TP−T∞)δx]=0(10)\left[ \left( \frac{T_E - T_p}{\delta x} \right) - \left( \frac{T_P -T_B}{\delta x /2} \right) \right] - [n^2(T_P - T_\infin)\delta x]=0 \tag{10} [(δxTE​−Tp​​)−(δx/2TP​−TB​​)]−[n2(TP​−T∞​)δx]=0(10)
即,
aW=0aE=1δxSP=−n2δx−2δxSu=n2δxT∞+2δxTBaP=aW+aE−SP}(11)\left. \begin{aligned} a_W =& 0 \\ \\ a_E =& \frac{1}{\delta x} \\ \\ S_P = & -n^2 \delta x -\frac{2}{\delta x}\\ \\ S_u = &n^2 \delta x T_\infin + \frac{2}{\delta x}T_B \\ \\ a_P = &a_W + a_E - S_P \end{aligned} \right \} \tag{11} aW​=aE​=SP​=Su​=aP​=​0δx1​−n2δx−δx2​n2δxT∞​+δx2​TB​aW​+aE​−SP​​⎭⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎫​(11)

节点 5

自由端为绝热边界,所以截面的热流密度为零
q=kdTdx=0(12)q=k \frac{dT}{dx}=0 \tag{12} q=kdxdT​=0(12)

即,
(dTdx)e=0(13)\left( \frac{dT}{dx} \right)_e = 0 \tag{13} (dxdT​)e​=0(13)
那么方程离散为
[0−(TP−TWδx)]−[n2(TP−T∞)δx]=0(14)\left[0-\left( \frac{T_P -T_W}{\delta x} \right) \right] - [n^2(T_P-T_\infin)\delta x]=0 \tag{14} [0−(δxTP​−TW​​)]−[n2(TP​−T∞​)δx]=0(14)
即,
aW=1δxaE=0SP=−n2δxSu=n2δxT∞aP=aW+aE−SP}(15)\left. \begin{aligned} a_W =& \frac{1}{\delta x} \\ \\ a_E = & 0 \\ \\ S_P = & -n^2 \delta x \\ \\ S_u = &n^2 \delta x T_\infin \\ \\ a_P = &a_W + a_E - S_P \end{aligned} \right \} \tag{15} aW​=aE​=SP​=Su​=aP​=​δx1​0−n2δxn2δxT∞​aW​+aE​−SP​​⎭⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎫​(15)

把全部节点的离散方程换成−aW+aP−aE=Su-a_W +a_P -a_E = S_u−aW​+aP​−aE​=Su​ 的形式,然后组成方程组,带入数值,计算求解,数值结果与解析解的对比如下,

网格数:5

网格数:10

网格数:20

计算程序

import numpy as np
import matplotlib.pyplot as plt
import math#== parameters ===
nx = 20  # 网格单元数
Nnodes = nx + 1 # 节点数,含左边界点
L = 1 # 长度,m
n2 = 25 # /m2, hP/kA
Tb = 100 # 边界B的温度值 ,℃
q = 0 # 自由端截面的热流密度值, W/m2
Tc = 20 # 环境温度,℃#==  x grid ==
dx = L / nx  # 网格间距
print('dx = ',dx)
x = np.zeros(Nnodes)  # x网格
x[1:] = np.linspace(dx/2, L-dx/2, nx) # 以边界A为原点创建网格点的坐标值
print('x grid = ', x, '\n')#==  solution array ==
tt = np.zeros(Nnodes)  # 解向量
tt[0] = Tb # 边界值#== matrix ==
A = np.zeros((nx, nx))
b = np.zeros(nx)su = n2 * dx * Tc
sp = -n2 * dx
for i in range(1, nx-1): #内部节点A[i][i-1] = -1/dxA[i][i+1] = -1/dxA[i][i] = -(A[i][i-1] + A[i][i+1]) - spb[i] = su# for B boundary
i = 0
A[i][i+1] = -1/dx
su = 2*Tb/dx + n2*dx*Tc
sp = -2/dx - n2*dx
A[i][i] = -A[i][i+1] - sp
b[i] = su# for insulated boundary
i = nx-1
A[i][i-1] = -1/dx
su = n2 * dx * Tc
sp = -n2 * dx
A[i][i] = -A[i][i-1] - sp
b[i] = suprint('A = \n', A, '\n')
print('b = \n', np.matrix(b).T ,'\n')t_temp = np.linalg.solve(A, b)
print('solution = \n', np.matrix(t_temp).T, '\n')
tt[1:] = t_tempxx = np.linspace(0, L, 50, endpoint=True)
exact_tt = np.zeros(50)
n = math.sqrt(n2)
for i in range(50):exact_tt[i] = Tc + (Tb-Tc) * (math.cosh(n * (L-xx[i]))) / math.cosh(n*L)plt.xlabel('DisTbnce (m)')
plt.ylabel('Temperature (C)')
plt.plot(x,tt ,'bs', label='Numerical')
plt.plot(xx,exact_tt,'k', label='Exct')
plt.legend()
plt.show()

参考资料

Versteeg H K , Malalasekera W . An introduction to computational fluid dynamics : the finite volume method = 计算流体动力学导论[M]. 世界图书出版公司, 2010.

有限体积法(4)——一维扩散方程数值求解(第二类边界条件)相关推荐

  1. 有限体积法(3)——一维扩散方程数值求解(第一类边界条件)

    例1:无热源导热 考虑一根细棒的导热问题,假设截面内温度均匀,问题简化为一维稳态导热问题,控制方程为 ddx(kdTdx)=0\frac{d}{dx} \left( k \frac{dT}{dx} \ ...

  2. 有限体积法(5)——对流-扩散方程的离散

    方程离散 关于变量ϕ\phiϕ的输运方程, ∂(ρϕ)∂t+∇⋅(ρϕu)=∇⋅(Γ∇ϕ)+Sϕ(1)\frac{\partial (\rho \phi)}{\partial t}+ \nabla \ ...

  3. 有限体积法(2)——二维、三维扩散方程的离散推导

    稳态扩散方程: ∇⋅(Γ∇ϕ)+Sϕ=0(1)\nabla \cdot ( \Gamma \nabla \phi) + S_\phi =0 \tag{1} ∇⋅(Γ∇ϕ)+Sϕ​=0(1) 在有限控制 ...

  4. 二阶常微分方程的数值解法(中心差分法和有限体积法)

    二阶常微分方程的数值解法(中心差分法和有限体积法) 这里我们介绍中心差分法和有限体积法求解方程. 题目: 用差分法的中心差分格式和有限体积法求解两点边值问题 u′′−α(2x−1)u′−2αu=0,0 ...

  5. 有限体积法求解二维方腔流(一)——动量方程和连续性方程的离散

    1. 有限体积法求解二维方腔流–理论手册 1.1. 不可压缩流体控制方程 连续性方程 ∇⋅U=0(1)\nabla \cdot U=0 \tag{1} ∇⋅U=0(1) 动量方程 ∂U∂t+∇⋅(UU ...

  6. 二阶椭圆型第一边值问题的数值解法(五点差分格式和有限体积法)附matlab代码

    二阶椭圆型第一边值问题的数值解法(五点差分格式和有限体积法)附matlab代码 这里我们介绍五点差分格式和有限体积法求椭圆型第一边值问题, 题目: 分别采用矩形网格的五点差分格式和有限体积法求椭圆型第 ...

  7. 有限体积法(9)——高阶差分格式:QUICK格式

    迎风格式和混合格式只有一阶计算精度,虽然迎风格式使用起来非常稳定并且满足输运性要求,但一阶精度容易导致数值扩散的误差,可以通过使用高阶离散格式来降低这些误差.高阶格式一般需要使用更多的节点值,通过考虑 ...

  8. 有限体积法、有限差分法和有限元法介绍

    学过弹性力学的人应该都知道什么是有限元,而对学计算流体力学的来说,有限差分和有限体积法也是两种非常重要的方法.三者虽然目前形式各异,但是思想上有很多类似的地方.CFD(Computational Fl ...

  9. 有限体积法(6)——离散格式的特性

    为了能够在有限网格数下得到符合物理现实的数值解,就需要离散格式满足某些特性.最重要的几个有:守恒性.有界性和输运性. 守恒性 守恒来自很自然的物理规律,比如一个无内源的流体域,无论它有几个入口和几个出 ...

最新文章

  1. android studio 顶部导航栏_Android10 手势导航开发与处理:边到边(I)
  2. linux只有上传文件到站点,史上最简单的上传文件到linux系统方法
  3. Mysql Insert Or Update语法实例
  4. 笔记本计算机死机后如何启动,电脑戴尔死机如何重新启动的解决方法
  5. nginx+redis 实现 jsp页面缓存,提升系统吞吐率
  6. 汇编考试一星题目对字母操作,输入字符并在屏幕上显示
  7. 2021-08-25
  8. K8S学习笔记之为什么需要Pod?
  9. 【数据库】SQL建表
  10. 利用Python在统计局网站爬取统计年鉴
  11. windows 清除记录ftp账号
  12. 如何在html中自动生成条形图,Highcharts 柱形图(柱状图及条形图)之通过HTML表格数据创建的柱状图演示...
  13. tomcat 配置文件 conf/server.xml 中的 appBase和docBase
  14. 中秋节后如何有面子的带女票回家?
  15. wordcloud词云可视化
  16. LruCache缓存方法
  17. 用Arduino改装小米沙漠赛车
  18. 学习Java的第七天
  19. 百度知道推广技巧大全
  20. [药品飞检]六大部门检查要点(38个子项目)

热门文章

  1. namenode启动异常问题解决
  2. Cassandra repair 工具使用
  3. Shell的基础用法
  4. 页面滚动穿透解决方案
  5. 申宝证券-个股分化指数窄幅整理
  6. 方程:方程(equation)是指含有未知数的等式
  7. 国家的超级计算机用处,超级计算机是什么,有什么用处?
  8. 输入整形(Input Shaping)——一种振动抑制方法
  9. Python爬虫系列之抖音热门视频爬取
  10. 读卡耐基《人性的弱点》总结