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

上传人:wj 文档编号:498475 上传时间:2023-04-29 格式:DOCX 页数:4 大小:111.47KB
下载 相关 举报
传热学上机C程序源答案之二维非稳态导热的数值计算.docx_第1页
第1页 / 共4页
传热学上机C程序源答案之二维非稳态导热的数值计算.docx_第2页
第2页 / 共4页
传热学上机C程序源答案之二维非稳态导热的数值计算.docx_第3页
第3页 / 共4页
传热学上机C程序源答案之二维非稳态导热的数值计算.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《传热学上机C程序源答案之二维非稳态导热的数值计算.docx》由会员分享,可在线阅读,更多相关《传热学上机C程序源答案之二维非稳态导热的数值计算.docx(4页珍藏版)》请在冰点文库上搜索。

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

二维稳态导热的数值计算

2.1物理问题

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

2.2数学描述

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

x=0,T=T1=0

x=1,T=T1=0

y=0,T=T1=0

y=1,T=T2=1

该问题的解析解:

2.3数值离散

2.3.1区域离散

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

2.3.2方程的离散

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

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

上式整理成迭代形式:

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

补充四个边界上的第一类边界条件得:

(j=1,2,3……,M)

(j=1,2,3……,M)

(i=1,2,3……,N)

(i=1,2,3……,N)

传热学C程序源之二维稳态导热的数值计算

#include

#include

#defineN10

#defineM10

main()

{

 chars;

 inti,j,l;

 floatcha,x,y;

 floatt[N][M],a[N][M];

   /*打印出题目*/

 printf("\t\t\t二维稳态导热问题\t\t");

 printf("\n\t\t\t\t\t\t----何鹏举\n");

 printf("\n题目:

补充材料练习题二\n");

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

\n");

 printf("\n是否要手动对温度场赋予初值?

(Y/N):

");

 scanf("%c",&s);

 if(s=='y'||s=='Y')

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

 {

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

\n");

   for(i=0;i

    for(j=0;j

     scanf("%f",&t[i][j]);

 }

 

 else

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

 {

  for(i=0;i

   for(j=0;j

    t[i][j]=0.5;

 }

 /*四个边界上的第一类边界条件*/

 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

   for(j=0;j

    a[i][j]=t[i][j];

  for(i=1;i

   for(j=1;j

    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

   for(j=0;j

    cha=cha+abs(a[i][j]-t[i][j]);

  cha=cha/(N*M);

 }

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

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

\n");

 l=0;

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

  for(i=0;i

  {

   printf("%4.3f",t[i][j]);

   l=l+1;

   if(l==N)

   {

    printf("\n");

    l=0;

   }

  }

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

 getchar();getchar();

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

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2