數(shù)值傳熱二維穩(wěn)態(tài)導(dǎo)熱問題及程序_第1頁
數(shù)值傳熱二維穩(wěn)態(tài)導(dǎo)熱問題及程序_第2頁
數(shù)值傳熱二維穩(wěn)態(tài)導(dǎo)熱問題及程序_第3頁
數(shù)值傳熱二維穩(wěn)態(tài)導(dǎo)熱問題及程序_第4頁
數(shù)值傳熱二維穩(wěn)態(tài)導(dǎo)熱問題及程序_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

數(shù)值傳熱二維穩(wěn)態(tài)導(dǎo)熱問題及程序問題:假定一個方形材料100mm*100mm,四邊分別為第一、第二、第三類邊界條件,無內(nèi)熱源,導(dǎo)熱系數(shù)為常數(shù),分析該區(qū)域內(nèi)的溫度變化。2.求解過程—熱平衡法(1)區(qū)域離散化對正方形區(qū)域進行離散,將該區(qū)域劃分成不同節(jié)點數(shù)的不重疊子區(qū)域。設(shè)置節(jié)點時采用內(nèi)點法。(2)控制方程離散化依據(jù)題意,二維穩(wěn)態(tài)無源項的純導(dǎo)熱問題的控制方程如式(1).…...……………….(1)擴散項——中心差分,如式(2)(3)……….(2)……….(3)將(2)、(3)、(4)式代入方程(1)可得到離散后的代數(shù)方程(5)…..…….(4)因為采用正方形的網(wǎng)格,即△x=△y,且無內(nèi)熱源(qV=0),則式(4)簡化為(3)邊界條件處理均為第一類邊界條件,依據(jù)題意,設(shè)定邊界條件如下:x=0時,t=800x=1時,t=600y=0時,t=200y=1時,t=1004.結(jié)果1.第一類邊界條件下的溫度分布:輸入四個邊界溫度分別為800k600k200k100k節(jié)點數(shù)為11*21時候的溫度分布圖節(jié)點為21*21時候的溫度分布圖2,邊界為第二類邊界時的結(jié)果邊界條件:X=0,t=10yY=0,t=10xX=100,t=10y+10(M-1)Y=100,t=10x+10(N-1)結(jié)果:3,邊界為第一、第二類邊界時:X=0,t=10yY=0,t=10xX=100,t=100Y=100,t=2003.程序//二維穩(wěn)態(tài)導(dǎo)熱數(shù)值計算程序//作者:石明//日期:2012年12月25日//功能:得出四邊第一類邊界條件下的長方形的溫度分布#include<stdio.h>#include<stdlib.h>#include<math.h>#defineM10#defineN20voidmain(){ /****************鍵盤輸入邊界條件**************/ floatTleft,Tright,Tdown,Ttop; printf("請輸入長方形的四邊溫度條件TleftTrightTdownTtop\n"); scanf("%f%f%f%f",&Tleft,&Tright,&Tdown,&Ttop); /****************二維計算區(qū)域離散**************/floatT[M][N]; floatTcopy[M][N]; //定義迭代對比矩陣 inti,j,k; /*****************邊界條件設(shè)置**************/ 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; //設(shè)置迭代誤差限; for(k=1;k<100;k++) //設(shè)置最大迭代次數(shù); { 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=1;j<N-1;j++) { Tcopy[i][j]=T[i][j]; } } for(j=0;j<N;j++) for(i=0;i<M;i++) { printf("%5.2f",T[i][j]); if((i+1)%M==0)printf("\n"); } system("pause");}第二類邊界條件的溫度分布#include<stdio.h>#include<stdlib.h>#include<math.h>#defineM11#defineN21voidmain(){ /****************二維計算區(qū)域離散**************/floatTleft,Tright,Tdown,Ttop;floatT[M][N]; floatTcopy[M][N]; //定義迭代對比矩陣 inti,j,k; /*****************邊界條件設(shè)置**************/ for(i=1;i<M-1;i++) { T[i][0]=Tcopy[i][0]=Tleft=10*i; T[i][N-1]=Tcopy[i][N-1]=Tright=10*i+10*N-10; } for(j=0;j<N;j++) { T[0][j]=Tcopy[0][j]=Ttop=10*j; T[M-1][j]=Tcopy[M-1][j]=Tdown=10*j+10*M-10; } /*****************初始化**************/ for(i=1;i<M-1;i++) for(j=1;j<N-1;j++) { T[i][j]=Tcopy[i][j]=0.25*(Tleft+Tright+Ttop+Tdown); } /*****************迭代計算**************/ 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; //設(shè)置迭代誤差限; for(k=1;k<100;k++) //設(shè)置最大迭代次數(shù); { 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=1;j<N-1;j++) { Tcopy[i][j]=T[i][j]; } } for(j=0;j<N;j++) for(i=0;i<M;i++) { printf("%5.2f",T[i][j]); if((i+1)%M==0)printf("\n"); } system("pause");}第一第二類邊界:#include<stdio.h>#include<stdlib.h>#include<math.h>#defineM11#defineN21voidmain(){ /****************二維計算區(qū)域離散**************/floatTleft,Tright,Tdown,Ttop;floatT[M][N]; floatTcopy[M][N]; //定義迭代對比矩陣 inti,j,k; /*****************邊界條件設(shè)置**************/ for(i=1;i<M-1;i++) { T[i][0]=Tcopy[i][0]=Tleft=10*i; T[i][N-1]=Tcopy[i][N-1]=Tright=100; } for(j=0;j<N;j++) { T[0][j]=Tcopy[0][j]=Ttop=10*j; T[M-1][j]=Tcopy[M-1][j]=Tdown=200; } /*****************初始化**************/ for(i=1;i<M-1;i++) for(j=1;j<N-1;j++) { T[i][j]=Tcopy[i][j]=0.25*(Tleft+Tright+Ttop+Tdown); } /*****************迭代計算**************/ 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; //設(shè)置迭代誤差限; for(k=1;k<100;k++) //設(shè)置最大迭代次數(shù); { 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++) {

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論