计算流体力学实验报告

计算流体力学实验报告
计算流体力学实验报告

计算流体力学实验报告——热传导方程求解

姓名:梁庆

学号:0808320126

指导老师:江坤

日期:2010/12/30

基于FTCS格式热传导方程求解程序设计

摘要

计算流体力学是通过数值方法求解流体力学控制方程,得到流场的定量描述,并以预测流体运动规律的学科。在CFD中,我们将流体控制方程中积分微分项,近似的表示为离散的代数形式,使得积分或微分形式的控制方程转化为离散的代数方程组;然后通过计算机求解这些代数方程,从而得到流场在空间和时间点上的数值解。

基于以上思路,我们利用FTCS格式差分,工程上常用的热传导方程,并编制计算机求解程序,解出其数值解。并通过Matlab绘制,求解结果,分别以二维,三维的形式,给出求解结果,本实验通过求解的数值解,制作了1秒内长度为1的距离内,热传导情况动画,以备分析所用。

关键词FTCS 有限差分热传导方程

一、 问题重述

编制一个可以有限差分程序,实现求解热传导方程。 非定常热传导方程:

22(0)

u u t t

γγ??=>??

初边值问题的有限差分求解。初始条件和边界条件为:

(,0)()

(0,)()0(1,)()0

u x f x u t a t u t b t =??

==??==? 其中1γ=,初值条件为:000.3()1

0.30.71010

0.7 1.0

3

3x f x x x ?

<

2

0.1t

x γσ=

=V V 。差分格式为:FTCS 格式。

本程序采用FTCS 格式为:

111

(12)n n n n k k k k u u u u σσσ++-=+-+

二、 程序设计规程

解决差分格式程序设计,主要解决初值初始化问题,差分求解问题,输出显示问题,

三大模块。本文通过函数设计,分别将这里的三个问题,用三个函数实现。

图1 设计总图

具体差分原理如下:

图2 差分模块

三、程序建立及各模块

1.初始化模块建立

本程序需实现有提示性的操作,因而需要有相应的文字输出,在主函数中,输出提示文字,输入界面如下:

图3 输入界面

2.差分模块的建立

差分模块函数体:

void deidai(double **num,double x,double t)

{ double dt=t/(N-1); double dx=x/100.0;

double ss=dt/(dx*dx);

cout<<"差分因子为:"<

for(int i=1;i

for(int j=1;j<100;j++)

num[i][j]=ss*num[i-1][j+1]+(1-2*ss)*num[i-1][j]+ss*num[i-1][j-1];//差分格式

}

00.10.20.30.40.50.60.70.80.91

位置 X 热传导量u

热传导方程求解结果

3. 显示模块的建立

本程序在输入求解时间上,每次所取的差分空间步长,由题目中100网格数所定,时间步长由2

0.1t

x γσ=

=V V ,反求得到,故而,所求时间越长,所求得的结果越细,为了便于在

c++中输出显示,实验时只输出其中一部分结果。而在在后序图形化显示中,利用了求解出的全部结果。

四、 实验结果分析

利用C++求解程序,计算出题目要求的,时间分别为t=0.01,t=0.1,t=1,t=10;时数值解,老师可调阅所附文件夹中的“所有时间的数值解.txt ”文件,为了便于图形显示及说明,下面只说明T=1s 的过程的结果。(T=10s 时间过长,1s 后结果已经基本趋于0)

下图所绘即为,T=1s 时的结果,以时间间隔0.1s 输出,T=0s 时为初始条件

图4 1s 热传导过程

从结果中可以明显看出,0.1秒内,下降的最快,而后下降速度放缓,最终趋于0, 这符合经验的结果,因为边界条件热传导两边均为0,随着时间的递减,中间的热量也必将变为0

距离X

时间T

热传导U

下图为1s 内热传导立体图:

图5 1s 热传导三维立体图

更详细的结果,见所附文件,并有动画展示求解结果。

相关主题
相关文档
最新文档