预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

问题:假定一个方形材料100mm*100mm,四边分别为第一、第二、第三类边界条件,无内热源,导热系数为常数,分析该区域内的温度变化。 2.求解过程—热平衡法 (1)区域离散化 对正方形区域进行离散,将该区域划分成不同节点数的不重叠子区域。设置节点时采用内点法。 (2)控制方程离散化 依据题意,二维稳态无源项的纯导热问题的控制方程如式(1) .…...……………….(1) 扩散项——中心差分,如式(2)(3) ……………………….(2) ……………………….(3) 将(2)、(3)、(4)式代入方程(1)可得到离散后的代数方程(5) …..…….(4) 因为采用正方形的网格,即△x=△y,且无内热源(qV=0),则式(4)简化为 (3)边界条件处理 均为第一类边界条件,依据题意,设定边界条件如下: x=0时,t=800 x=1时,t=600 y=0时,t=200 y=1时,t=100 4.结果 1.第一类边界条件下的温度分布: 输入四个边界温度分别为800k600k200k100k 2,边界为第二类边界时的结果 边界条件: X=0,t=10y Y=0,t=10x X=100,t=10y+10(M-1) Y=100,t=10x+10(N-1) 3,边界为第一、第二类边界时: X=0,t=10y Y=0,t=10x X=100,t=100 Y=100,t=200 3.程序 得出四边第一类边界条件下的长方形的温度分布 #include<stdio.h> #include<stdlib.h> #include<math.h> #defineM10 #defineN20 voidmain() { /****************键盘输入边界条件**************/ floatTleft,Tright,Tdown,Ttop; printf("请输入长方形的四边温度条件TleftTrightTdownTtop\n"); scanf("%f%f%f%f",&Tleft,&Tright,&Tdown,&Ttop); /****************二维计算区域离散**************/ floatT[M][N]; floatTcopy[M][N]; //定义迭代对比矩阵 inti,j,k; /*****************边界条件设置**************/ for(i=1;i<M-1;i++) { T[i][0]=Tcopy[i][0]=Tleft; T[i][N-1]=Tcopy[i][N-1]=Tright; } for(j=0;j<N;j++) { T[0][j]=Tcopy[0][j]=Ttop; T[M-1][j]=Tcopy[M-1][j]=Tdown; } /*****************初始化**************/ for(i=1;i<M-1;i++) for(j=1;j<N-1;j++) { T[i][j]=Tcopy[i][j]=0.25*(Tleft+Tright+Tdown+Ttop); } /*****************迭代计算**************/ floatdif[M][N]; floatmax,temp; for(i=0;i<M;i++) { for(j=0;j<N;j++) dif[i][j]=1.0; } floate=0.001; //设置迭代误差限; for(k=1;k<100;k++) //设置最大迭代次数; { for(i=1;i<M-1;i++)//完成一次迭代; for(j=1;j<N-1;j++) { T[i][j]=0.25*(T[i-1][j]+T[i+1][j]+T[i][j-1]+T[i][j+1]); } for(i=1;i<M-1;i++) //求相邻两迭代温度值的差值; for(j=1;j<N-1;j++) { dif[i][j]=fabs(T[i][j]-Tcopy[i][j]); } max=dif[1][1]; for(i=1;i<M-1;i++) //求相邻两迭代温度值的最大差值; for(j=1;j<N-1;j++) { if(max<dif[i][j]) max=dif[i][j]; } if(max<=e)break; for(i=1;i<M-1;i++) for(j