传热学上机C程序源答案之二维非稳态导热的数值计算

2020-05-05 15:41

二维稳态导热的数值计算

2.1物理问题

一矩形区域,其边长L=W=1,假设区域内无内热源,导热系数为常数,三个边温度为T1=0,一个边温度为T2=1,求该矩形区域内的温度分布。

2.2 数学描述

?2T?2T对上述问题的微分方程及其边界条件为:2?2?0

?x?y x=0,T=T1=0

x=1,T=T1=0 y=0,T=T1=0 y=1,T=T2=1

?n??sh?y??T?T12?1?(?1)nn?L???

该问题的解析解:??sin??x??T2?T1?n?1n?L?sh?n??W????L?2.3数值离散

2.3.1区域离散

区域离散x方向总节点数为N,y方向总节点数为M,区域内任一节点用I,j表示。

2.3.2方程的离散

??2t???2t?对于图中所有的内部节点方程可写为:?2???2??0

??x?i,j??y?i,j用

I,j

节点的二阶中心差分代替上式中的二阶导数,得:

Ti+1,j?2Ti,j+Ti-1,j?x2?Ti,j+1?2Ti,j+Ti,j-1?y2?0

?y2?x2上式整理成迭代形式:Ti,j??Ti?1,j?Ti-1,j?+2(?x2??y2)?Ti,j?1?Ti,j-1?

2(?x2??y2)(i=2,3……,N-1),(j=2,3……,M-1)

补充四个边界上的第一类边界条件得:T1,j?T1 (j=1,2,3……,M)

TN,j?T1 (j=1,2,3……,M) Ti,j?T1 (i=1,2,3……,N)

Ti,M?T2 (i=1,2,3……,N)

传热学C程序源之二维稳态导热的数值计算 #include #include #define N 10 #define M 10 main() {

char s; inti,j,l;

float cha,x,y;

float t[N][M],a[N][M]; /*打印出题目*/

printf(\二维稳态导热问题\\t\\t\ printf(\何鹏举\\n\

printf(\题目:补充材料练习题二\\n\

printf(\矩形区域,边长L=W=1,假设区域内无内热源,导热系数为常熟,三个边温度为T1=0,一个边温度为T2=1,求该矩形区域内的温度分布。\\n\ printf(\是否要手动对温度场赋予初值?(Y/N):\ scanf(\ if(s=='y'||s=='Y')

/*手动赋予温度初场*/

{

printf(\请首先假定一个温度场的初始分布,即给出各节点的温度初值(一行一行进行):\\n\

for(i=0;i

/*自动赋予温度初场*/

{

for(i=0;i

/*四个边界上的第一类边界条件*/ for(j=0;j

t[0][j]=0;

t[M-1][j]=0; }

for(i=0;i

t[i][0]=0; t[i][N-1]=1; }

/*步长计算*/ x=1.0/(N-1); y=1.0/(M-1); /*迭代循环*/

cha=1;

while(cha>0.0001) {

for(i=0;i

t[i][j]=0.5*y*y*(t[i+1][j]+t[i-1][j])/(x*x+y*y)+0.5*x*x*(t[i][j+1]+t[i][j-1])/(x*x+y*y);

cha=0;

for(i=0;i

cha=cha+abs(a[i][j]-t[i][j]); cha=cha/(N*M); }

/*输出温度分布,其中l控制输出值的排列;这个结果是按照笛卡尔坐标系下平面从左上角开始依次的*/

printf(\经数值离散计算的该矩形区域内温度分布为:\\n\ l=0;

for(j=M-1;j>=0;j--) for(i=0;i

printf(\ l=l+1; if(l==N) {

printf(\ l=0; } }

/*为了是生成的exe文件结果算的后不会立即退出,方便观看*/ getchar();getchar();

/*其中第一个getchar读取了回车键,第二个getchar读取任意键*/ }


传热学上机C程序源答案之二维非稳态导热的数值计算.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:改进内点法的无功优化(送审)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: