当前位置:文档之家› 哈工大-传热学虚拟仿真实验报告

哈工大-传热学虚拟仿真实验报告

哈工大-传热学虚拟仿真实验报告Harbin Institute of Technology传热学虚拟仿真实验报告院系:能源科学与工程学院班级:设计者:学号:指导教师:董士奎设计时间:2016.11.7传热学虚拟仿真实验报告1 应用背景数值热分析在核工业、铁道、石油化工、航空航天、机械制造、能源、汽车交通、国防军工、电子、土木工程、造船、生物医学、轻工、地矿、水利、以及日用家电等各个领域都有广泛的应用。

2 二维导热温度场的数值模拟2.1 二维稳态导热实例假设一用砖砌成的长方形截面的冷空气通道,其截面如图2.1所示,假设在垂直于纸面方向上冷空气及砖墙的温度变化很小,可以近似地予以忽略。

图2.1一用砖砌成的长方形截面的冷空气通道截面2.2二维数值模拟基于模型的对称性,简化为如图所示的四分之一模型。

图2.2 二维数值模拟2.3 建立离散方程此时对于内部节点,如图2.3:,1,,1,,,1,,1=∆∆-+∆∆-+∆∆-+∆∆--++-x yt t x yt t y xt t y xt t jt j i jt j i jt j i jt j i λλλλ对于平直边界上的节点,如图2.4:222,,1,,1,,,1=∆+Φ∆∆+∆∆-+∆∆-+∆∆-•-+-w j i j t j i j t j i jt j i yq y x x y t t x y t t y xt t λλλ对于外部和内部角点,如图2.5:2432202422,,,1,1,,1,,,1,,1,,,1=∆+∆+Φ∆∆+∆∆-+∆∆-+∆∆-+∆∆-=∆+∆+Φ∆∆+∆∆-+∆∆-•+-+-•--w n m n m n m n m n m n m n m n m n m w n m n m n m n m n m q y x y x y x t t x y t t x y t t y x t t q yx y x x y t t y x t t λλλλλλ图2.3 内部节点 图2.4 平直边界上的节点 图2.5 内部角点和外部角点 对于对称边界(绝热边界),如图2.6:,1,,1,,,1,,1=∆∆-+∆∆-+∆∆-+∆∆--++-x yt t x yt t y xt t y xt t jt j i jt j i jt j i jt j i λλλλ图2.6 对称边界(绝热边界)图2.7 建立离散方程此时显示格式、隐式格式依次为,如图2.7:2.4 C++程序2111111211122x t t t a t t x t t t a t t i n i n i n i n i n i n i n i n i n i n ∆+-=∆-∆+-=∆-+-++++-++ττ2.4.1程序流程图如下图2.8所示图2.8程序流程图2.4.2程序各变量含义如下图2.9所示n_L1, n_L2, n_L3, n_L4, n_thick1, n_thick2分别为对应边的网格数。

2.4.3程序#include<math.h>#include<fstream.h>int main(){float L1,L2,L3,L4,thick1,thick2; /* L1 外矩形宽,L2外矩形长,L3内矩形宽,L4内矩形长,thick1宽度方向厚度,thick1长度方向厚度*/int n_L1,n_L2,n_L3,n_L4,n_thick1,n_thick2; /*各边网格数*/int i,j,n,number; /*n迭代次数*/double eps=5.0e-6;float delt_y1,delt_y2,delt_x1,delt_x2;float cond,conv_out,conv_in,tout,tin; /* cond 导热系数conv_out 外部对流换热系数conv_in 内部对流换热系数tout 外部环境温度tin 内部环境温度*//*输入几何信息*/printf("请输入L1:");scanf("%f", &L1);printf("请输入L2:");scanf("%f", &L2);printf("请输入L3:");scanf("%f", &L3);printf("请输入L4:");scanf("%f", &L4);/*输入网格信息*/printf("请输入边L1网格数(<100):");scanf("%d", &n_L1);printf("请输入边L2网格数(<100):");scanf("%d", &n_L2);printf("请输入边L3网格数(<100):");scanf("%d", &n_L3);printf("请输入边L4网格数(<100):");scanf("%d", &n_L4);/*输入边界条件*/printf("请输入材料导热系数(W/(m·K):"); scanf("%f", &cond);printf("请输入外部环境温度(K):");scanf("%f", &tout);printf("请输入内部环境温度(K):");scanf("%f", &tin);printf("请输入外部对流换热系数(W/(m2·K):");scanf("%f", &conv_out);printf("请输入内部对流换热系数(W/(m2·K):");scanf("%f", &conv_in);thick1=(L2-L4);thick2=(L1-L3);n_thick1=(n_L2-n_L4);n_thick2=(n_L1-n_L3);/**************网格大小*********************/delt_x1=thick1/n_thick1;delt_x2=L4/n_L4;delt_y1=thick2/n_thick2;delt_y2=L3/n_L3;/*******************************************//*节点赋初值*/double tem0[100][100]; /*节点温度tem0()上次迭代结果,tem()本次迭代结果*/double tem[100][100];double x[100][100];double y[100][100];n=0;do{/*区域1内部节点温度*//********************************************* ****/for(i=1;i<n_thick1;i++){for(j=n_L3+1;j<n_L1;j++){tem0[i][j]=((tem[i+1][j]+tem[i-1][j])*delt_y1*delt_y1+ (tem[i][j+1]+tem[i][j-1])*delt_x1*delt_x1)/2.0/(delt_y 1*delt_y1+delt_x1*delt_x1);}}/********************************************* ****//*区域2内部节点温度*//********************************************* ****/for(i=1;i<n_thick1;i++){for(j=1;j<n_L3;j++){tem0[i][j]=((tem[i+1][j]+tem[i-1][j])*delt_y2*delt_y2+ (tem[i][j+1]+tem[i][j-1])*delt_x1*delt_x1)/2.0/(delt_x 1*delt_x1+delt_y2*delt_y2);}}/********************************************* ****//*区域3内部节点温度*//********************************************* ****/for(i=n_thick1+1;i<n_L2;i++){for(j=n_L3+1;j<n_L1;j++){tem0[i][j]=((tem[i+1][j]+tem[i-1][j])*delt_y1*delt_y1+ (tem[i][j+1]+tem[i][j-1])*delt_x2*delt_x2)/2.0/(delt_x 2*delt_x2+delt_y1*delt_y1);}}/********************************************* ****//*区域1与区域2边界线*//********************************************* ****/for(i=1;i<n_thick1;i++){j=n_L3;tem0[i][j]=((tem[i+1][j]+tem[i-1][j])/2.0*(delt_y1+delt _y2)*delt_y1*delt_y2+tem[i][j+1]*delt_y2*delt_x1*de lt_x1+tem[i][j-1]*delt_y1*delt_x1*delt_x1)/((delt_y1+ delt_y2)*delt_y1*delt_y2+delt_y2*delt_x1*delt_x1+d elt_x1*delt_x1*delt_y1);}/********************************************* ****//*区域1与区域3边界线*//********************************************* ****/for(j=n_L3+1;j<n_L1;j++){i=n_thick1;tem0[i][j]=((tem[i][j+1]+tem[i][j-1])/2.0*(delt_x1+delt _x2)*delt_x1*delt_x2+tem[i-1][j]*delt_x2*delt_y1*del t_y1+tem[i+1][j]*delt_x1*delt_y1*delt_y1)/((delt_x1+ delt_x2)*delt_x1*delt_x2+delt_x2*delt_y1*delt_y1+d elt_y1*delt_y1*delt_x1);}/********************************************* ****//*******************边界条件**********************//*******************绝热边界条件(对称面)**********************//***右边界***/for(j=n_L3+1;j<n_L1;j++){i=n_L2;tem0[i][j]=(2.0*tem[i-1][j]*delt_y1*delt_y1+(tem[i][j+ 1]+tem[i][j-1])*delt_x2*delt_x2)/2.0/(delt_x2*delt_x2 +delt_y1*delt_y1);}/***下边界***/for(i=1;i<n_thick1;i++){j=0;tem0[i][j]=((delt_y2*tem[i-1][j]/2/delt_x1)+(delt_x1*t em[i][j+1]/delt_y2)+(delt_y2*tem[i+1][j]/2/delt_x1))/(( delt_y2/2/delt_x1)+(delt_x1/delt_y2)+(delt_y2/2/delt_x 1));}for(i=n_thick1+1;i<n_L2;i++){j=n_L3;tem0[i][j]=((delt_y1*tem[i-1][j]/2/delt_x2)+(delt_x2*t em[i][j+1]/delt_y2)+(delt_y2*tem[i+1][j]/2/delt_x2)+(delt_x2*conv_in*tin))/((delt_y2/2/delt_x2)+(delt_x2/d elt_y2)+(delt_y2/2/delt_x2)+(delt_x2*conv_in));}/*******************外部对流边界条件**********************//***上边界***/for(i=1;i<n_thick1;i++){j=n_L1;tem0[i][j]=(cond*delt_y1*delt_y1*(tem[i-1][j]+tem[i+ 1][j])+2.0*cond*delt_x1*delt_x1*tem[i][j-1]+2.0*delt _y1*delt_x1*delt_x1*conv_out*tout)/(2.0*cond*delt_ y1*delt_y1+2.0*cond*delt_x1*delt_x1+2.0*delt_y1*c onv_out*delt_x1*delt_x1);}for(i=n_thick1+1;i<n_L2;i++){j=n_L1;tem0[i][j]=(cond*delt_y1*delt_y1*(tem[i-1][j]+tem[i+ 1][j])+2.0*cond*delt_x2*delt_x2*tem[i][j-1]+2.0*delt _y1*delt_x2*delt_x2*conv_out*tout)/(2.0*cond*delt_ y1*delt_y1+2.0*cond*delt_x2*delt_x2+2.0*delt_y1*c onv_out*delt_x2*delt_x2);}i=n_thick1;j=n_L1;tem0[i][j]=(cond*delt_y1*delt_y1*delt_x2*tem[i-1][j] +cond*delt_y1*delt_y1*delt_x1*tem[i+1][j]+cond*del t_x1*delt_x2*(delt_x1+delt_x2)*tem[i][j-1]+delt_y1*d elt_x1*delt_x2*(delt_x1+delt_x2)*conv_out*tout)/(co nd*delt_y1*delt_y1*delt_x2+cond*delt_y1*delt_y1*d elt_x1+cond*delt_x1*delt_x2*(delt_x1+delt_x2)+delt _y1*conv_out*delt_x1*delt_x2*(delt_x1+delt_x2));/***左边界***/for(j=n_L3+1;j<n_L1;j++){i=0;tem0[i][j]=((cond*delt_x1*tem[i][j+1]/2/delt_y1)+(con d*delt_y1*tem[i+1][j]/delt_x1)+(cond*delt_x1*tem[i][ j-1]/2/delt_y1)+(delt_y1*conv_out*tout))/((cond*delt_ x1/2/delt_y1)+(cond*delt_y1/delt_x1)+(cond*delt_x1/ 2/delt_y1)+(delt_y1*conv_out));}for(j=1;j<n_L3;j++){i=0;tem0[i][j]=((cond*delt_x1*tem[i][j+1]/2/delt_y2)+(con d*delt_y2*tem[i+1][j]/delt_x1)+(cond*delt_x1*tem[i][ j-1]/2/delt_y2)+(delt_y2*conv_out*tout))/((cond*delt_ x1/2/delt_y2)+(cond*delt_y2/delt_x1)+(cond*delt_x1/ 2/delt_y2)+(delt_y2*conv_out));}i=0;j=n_L3;tem0[i][j]=((cond*delt_x1*tem[i][j+1]/2/delt_y1)+(con d*((delt_y1+delt_y2)/2)*tem[i+1][j]/delt_x1)+(cond*d elt_x1*tem[i][j-1]/2/delt_y2)+(((delt_y1+delt_y2)/2)*c onv_out*tout))/((cond*delt_x1/2/delt_y1)+(cond*((del t_y1+delt_y2)/2)/delt_x1)+(cond*delt_x1/2/delt_y2)+(( (delt_y1+delt_y2)/2)*conv_out));/*******************内部对流边界条件**********************//***上边界***/for(i=n_thick1+1;i<n_L2;i++){j=n_L3;tem0[i][j]=(cond*delt_y1*delt_y1*(tem[i-1][j]+tem[i+ 1][j])+2.0*cond*delt_x2*delt_x2*tem[i][j+1]+2.0*delt _y1*delt_x2*delt_x2*conv_in*tin)/(2.0*cond*delt_y1 *delt_y1+2.0*cond*delt_x2*delt_x2+2.0*delt_y1*con v_in*delt_x2*delt_x2);}/***左边界***/for(j=1;j<n_L3;j++){i=n_thick1;tem0[i][j]=((cond*delt_x1*tem[i][j+1]/2/delt_y2)+(con d*delt_y2*tem[i-1][j]/delt_x1)+(cond*delt_x1*tem[i][ j-1]/2/delt_y2)+(delt_y2*conv_in*tin))/((cond*delt_x1 /2/delt_y2)+(cond*delt_y2/delt_x1)+(cond*delt_x1/2/d elt_y2)+(delt_y2*conv_in));}/*******************特殊点**********************//*******左下角********/tem0[0][0]=(cond*delt_x1*delt_x1*tem[0][1]+cond*delt_y2*delt_y2*tem[1][0]+delt_y2*delt_y2*delt_x1*co nv_out*tout)/(cond*delt_x1*delt_x1+cond*delt_y2*d elt_y2+delt_y2*delt_y2*delt_x1*conv_out);/*******右下角********/tem0[n_thick1][0]=(cond*delt_x1*delt_x1*tem[n_thic k1][1]+cond*delt_y2*delt_y2*tem[n_thick1-1][0]+del t_y2*delt_y2*delt_x1*conv_in*tin)/(cond*delt_x1*del t_x1+cond*delt_y2*delt_y2+delt_y2*delt_y2*delt_x1 *conv_in);/*******左上角********/tem0[0][n_L1]=(cond*delt_y1*delt_y1*tem[1][n_L1] +cond*delt_x1*delt_x1*tem[0][n_L1-1]+delt_x1*delt _y1*(delt_y1+delt_x1)*conv_out*tout)/(cond*delt_y1 *delt_y1+cond*delt_x1*delt_x1+delt_x1*delt_y1*(del t_y1+delt_x1)*conv_out);/*******右上角1********/tem0[n_L2][n_L1]=(cond*delt_y1*delt_y1*tem[n_L2 -1][n_L1]+cond*delt_x2*delt_x2*tem[n_L2][n_L1-1] +delt_x2*delt_y1*delt_x2*conv_out*tout)/(cond*delt _y1*delt_y1+cond*delt_x2*delt_x2+delt_y1*delt_x2*delt_x2*conv_out);/*******右上角2********/tem0[n_L2][n_L3]=(cond*delt_y1*delt_y1*tem[n_L2 -1][n_L3]+cond*delt_x2*delt_x2*tem[n_L2][n_L3+1] +delt_x2*delt_y1*delt_x2*conv_in*tin)/(cond*delt_y1 *delt_y1+cond*delt_x2*delt_x2+delt_y1*delt_x2*delt _x2*conv_in);/*******内角点********/tem0[n_thick1][n_L3]=(cond*(delt_y1+delt_y2)/delt_ x1*tem[n_thick1-1][n_L3]+cond*(delt_x1+delt_x2)/d elt_y1*tem[n_thick1][n_L3+1]+cond*delt_y1/delt_x2 *tem[n_thick1+1][n_L3]+cond*delt_x1/delt_y2*tem[ n_thick1][n_L3-1]+(delt_x2+delt_y2)*conv_in*tin)/(c ond*(delt_y1+delt_y2)/delt_x1+cond*(delt_x1+delt_x 2)/delt_y1+cond*delt_y1/delt_x2+cond*delt_x1/delt_y 2+(delt_x2+delt_y2)*conv_in);/*******************判断是否收敛*********************/number=0;for(i=0;i<=n_L2;i++){for(j=0;j<=n_L1;j++) {if(fabs(tem0[i][j]-tem[i][j])>eps){number++;}}}for(i=0;i<=n_L2;i++){for(j=0;j<=n_L1;j++) {tem[i][j]=tem0[i][j];}}n++;if (n%10000==0) printf("%d\n",n); }while(number>0 && n<1000000);/*计算各节点坐标*/for (i=0;i<=n_L2;i++){for(j=0;j<=n_L1;j++){if(i<=n_thick1 && j<=n_L3){x[i][j]=delt_x1*i;y[i][j]=delt_y2*j;}if(i<=n_thick1 && j>n_L3){x[i][j]=delt_x1*i;y[i][j]=delt_y2*n_L3+delt_y1*(j-n_L3);}if(i>n_thick1 && j<=n_L3){x[i][j]=n_thick1*delt_x1+delt_x2*(i-n_thick1);y[i][j]=j*delt_y2;}if(i>n_thick1 && j>n_L3){x[i][j]=n_thick1*delt_x1+delt_x2*(i-n_thick1);y[i][j]=delt_y2*n_L3+delt_y1*(j-n_L3);}}}/*计算各节点坐标结束*/ofstream SaveFile("temperature.dat"); /*输出计算结果*/SaveFile << "title=Temperature" << endl;SaveFile << "Variables=x,y,T" << endl;SaveFile << "Zone" << " " << "I=" << " " << n_L2+1 << "," << "J=" << " " << n_L1+1 << ",f=point" << endl;for(j=0;j<=n_L3;j++){for(i=n_thick1+1;i<=n_L2;i++){tem[i][j]=tin;}}for(j=0;j<=n_L1;j++){for(i=0;i<=n_L2;i++){SaveFile << x[i][j] << " ";SaveFile << y[i][j] << " ";SaveFile << tem[i][j] << endl;}}SaveFile.close();}2.4.4 计算结果。

相关主题