计算流体力学课程大作业
西工大-计算流体力学大作业

计算流体力学大作业学号: 姓名:1、不可压平面流通过二维容器(如图)。
采用 简单迭代、超松弛迭代 求解 势流方程获得容器内的速势和速度分布 。
边界条件按照课本中给,即流经 A 、B 的体积流量为1。
要求: 1)推导差分方程的迭代公式;2)编写计算机程序 ; 3)绘制计算结果曲线 。
答:1)迭代公式推导对于容器中的定常流场,其支配方程为22220x yφφ∂∂+=∂∂ 求解域为下图所示矩形区域则支配方程由有限差分形式代换,得1,,1,,1,,122220()()i j i j i ji j i j i j x y φφφφφφ+-+--+-++=∆∆具有22()()x y ∆+∆的截断误差对于正方形网格,有22()()x y h ∆=∆=,则上式可改写为n=17,1,1,,1,11()4i j i j i j i j i j φφφφφ+-+-=+++若采用简单迭代公式,即Liebmann 公式,则有(1)()(1)()(1),1,1,,1,11()4n n n n n i j i j i j i j i j φφφφφ++++-+-=+++若采用超松弛迭代,即SOR 公式,则有(1)()()(1)()(1),,1,1,,1,1(1)()4n n n n n n i j i j i j i j i j i j ωφωφφφφφ++++-+-=-++++其中松弛因子12ω<<。
ω最佳值opt ω为opt ω=式中cos(/)cos(/)m n αππ=+,m ,n 分别表示在网格系统中垂直线和水平线的总数。
2)计算机程序本程序采用C 语言编写。
程序源代码如下: #include<stdio.h> #include<math.h> void main() { int m=25,n=17,ilast[17],jlast[25]; int step1,step2; double h=0.25; double psi_j[25][17],psiprv_j,vel_j[25][17],velx_j[25][17],vely_j[25][17]; double psi_c[25][17],psiprv_c,vel_c[25][17],velx_c[25][17],vely_c[25][17]; double Pi,Alpha,Omega,Error; int i,j; for(i=0;i<17;i++) jlast[i]=17; for(i=17;i<m;i++) jlast[i]=17-(i-16); for(j=0;j<9;j++) ilast[j]=25; for(j=9;j<n;j++) ilast[j]=25-(j-8); //数据初始化 for(j=0;j<n;j++) { psi_j[0][j]=1.0; psi_c[0][j]=1.0;}for(i=1;i<m;i++){psi_j[i][jlast[i]-1]=1.0;psi_c[i][jlast[i]-1]=1.0; }for(j=0;j<8;j++){psi_j[m-1][j]=1.0;psi_c[m-1][j]=1.0;}for(i=1;i<m-1;i++){if(i>6 && i<21){psi_j[i][0]=0.0;psi_c[i][0]=0.0;}else{psi_j[i][0]=1.0;psi_c[i][0]=1.0;}}for(i=1;i<m-1;i++){for(j=1;j<jlast[i]-1;j++){psi_j[i][j]=0.5;psi_c[i][j]=0.5;}}//处理右上角数据for(i=0;i<m;i++){for(j=0;j<n;j++){if(j>jlast[i]-1){psi_j[i][j]=0;vel_j[i][j]=3;psi_c[i][j]=0;vel_c[i][j]=3;}}}Pi=4.0*atan(1.0);Alpha=cos(Pi/m)+cos(Pi/n);Omega=(8.0-4*sqrt(4-pow(Alpha,2)))/pow(Alpha,2);//计算速势step1=0;step2=0;//简单迭代while(1){Error=0.0;for(i=1;i<m-1;i++){for(j=1;j<jlast[i]-1;j++){psiprv_j=psi_j[i][j];psi_j[i][j]=(psi_j[i-1][j]+psi_j[i+1][j]+psi_j[i][j-1]+psi_j[i][j+1])/4.0;Error=Error+fabs(psi_j[i][j]-psiprv_j);}}step1++;if(step1>1000)break;if(Error<=0.001)break;}//超松弛迭代while(1){Error=0.0;for(i=1;i<m-1;i++){for(j=1;j<jlast[i]-1;j++){psiprv_c=psi_c[i][j];psi_c[i][j]=(1-Omega)*psi_c[i][j]+Omega*(psi_c[i-1][j]+psi_c[i+1][j]+psi_c[i][j-1]+psi_c[i][j+1])/4.0;Error=Error+fabs(psi_c[i][j]-psiprv_c);}}step2++;if(step2>1000)break;if(Error<=0.001)break;}//计算速度for(i=0;i<m;i++){for(j=0;j<jlast[i];j++){if(j==0){vely_j[i][j]=(-3*psi_j[i][j]+4*psi_j[i][j+1]-psi_j[i][j+2])/2/h;vely_c[i][j]=(-3*psi_c[i][j]+4*psi_c[i][j+1]-psi_c[i][j+2])/2/h;}else if(j==jlast[i]-1){vely_j[i][j]=(psi_j[i][j-2]-4*psi_j[i][j-1]+3*psi_j[i][j])/2/h;vely_c[i][j]=(psi_c[i][j-2]-4*psi_c[i][j-1]+3*psi_c[i][j])/2/h;}else{vely_j[i][j]=(psi_j[i][j+1]-psi_j[i][j-1])/2/h;vely_c[i][j]=(psi_c[i][j+1]-psi_c[i][j-1])/2/h;}}}for(j=0;j<n;j++){for(i=0;i<ilast[j];i++){if(i==0){velx_j[i][j]=(-3*psi_j[i][j]+4*psi_j[i+1][j]-psi_j[i+2][j])/2/h;velx_c[i][j]=(-3*psi_c[i][j]+4*psi_c[i+1][j]-psi_c[i+2][j])/2/h;}else if(i==ilast[j]-1){velx_j[i][j]=(psi_j[i-2][j]-4*psi_j[i-1][j]+3*psi_j[i][j])/2/h;velx_c[i][j]=(psi_c[i-2][j]-4*psi_c[i-1][j]+3*psi_c[i][j])/2/h;}else{velx_j[i][j]=(psi_j[i+1][j]-psi_j[i-1][j])/2/h;velx_c[i][j]=(psi_c[i+1][j]-psi_c[i-1][j])/2/h;}}}for(i=0;i<m;i++){for(j=0;j<jlast[i];j++){vel_j[i][j]=sqrt(pow(velx_j[i][j],2)+pow(vely_j[i][j],2));vel_c[i][j]=sqrt(pow(velx_c[i][j],2)+pow(vely_c[i][j],2));}}//输出结果分布FILE *fp;fp=fopen("f:\\ESL\\YFresult.txt","w");fprintf(fp,"简单迭代结果\n");fprintf(fp,"速度势分布\n");for(j=n-1;j>=0;j--){for(i=0;i<ilast[j];i++){fprintf(fp,"%-10.6f\n",psi_j[i][j]);}}fprintf(fp,"速度分布\n");for(j=n-1;j>=0;j--){for(i=0;i<ilast[j];i++){fprintf(fp,"%-10.6f\n",vel_j[i][j]);}}fprintf(fp,"超松弛迭代结果\n");fprintf(fp,"速度势分布\n");for(j=n-1;j>=0;j--){for(i=0;i<ilast[j];i++){fprintf(fp,"%-10.6f\n",psi_c[i][j]);}}fprintf(fp,"速度分布\n");for(j=n-1;j>=0;j--){for(i=0;i<ilast[j];i++){fprintf(fp,"%-10.6f\n",vel_c[i][j]);}}fclose(fp);//输出tecplot数据FILE *fp1;fp1=fopen("f:\\ESL\\TECPLOT-result.txt","w");fprintf(fp1,"title=erwei grid\n");fprintf(fp1,"variables=x, y, psi_easy, velocity_easy, psi_SOR\n, velocity_SOR\n");fprintf(fp1,"zone t=grid,i=25,j=17,f=point\n");for(j=0;j<n;j++){for(i=0;i<m;i++){fprintf(fp1,"%-10.6f,%-10.6f,%-10.6f,%-10.6f,%-10.6f,%-10.6f\n",i*h,j*h,psi_j[i][j],vel_j[i][j],p si_c[i][j],vel_c[i][j]);}}fclose(fp1);}3)计算结果采用简单迭代,容器内的速势和速度分布速势分布(简单迭代)速度分布(简单迭代)采用超松弛迭代,容器内的速势和速度分布速势分布(SOR ) 速度分布(SOR )2、用点源(汇)分布在对称轴的源汇模拟流体绕过NACA0012旋称体的二维轴对称势流解。
《计算流体力学》作业答案

计算流体力学作业答案问题1:什么是计算流体力学?计算流体力学(Computational Fluid Dynamics,简称CFD)是研究流体力学问题的一种方法,它使用数值方法对流体流动进行数值模拟和计算。
主要包括求解流体运动的方程组,通过空间离散和时间积分等计算方法,得到流体在给定条件下的运动和相应的物理量。
问题2:CFD的应用领域有哪些?CFD的应用领域非常广泛,包括但不限于以下几个方面:1.汽车工业:CFD可以用于汽车流场的模拟和优化,包括空气动力学性能和燃烧过程等。
2.航空航天工业:CFD可以用于飞机、火箭等流体动力学性能的预测和优化,包括机身、机翼的设计和改进等。
3.能源领域:CFD可以用于燃烧、热交换等能源领域的流体力学问题求解和优化。
4.管道流动:CFD可以用于石油、化工等行业的管道流动模拟和流体输送优化。
5.空气净化:CFD可以用于大气污染物的传输和分布模拟,以及空气净化设备的设计和改进。
6.生物医药:CFD可以用于生物流体输送和生物反应过程的模拟和分析,包括血液流动、药物输送等。
问题3:CFD的数值方法有哪些?CFD的数值方法一般包括以下几种:1.有限差分法(Finite Difference Method,FDM):将模拟区域划分为网格,并在网格上离散化流体运动的方程组,利用有限差分近似求解。
2.有限体积法(Finite Volume Method,FVM):将模拟区域划分为有限体积单元,通过对流体流量和通量的控制方程进行离散化,求解离散化方程组。
3.有限元法(Finite Element Method,FEM):将模拟区域划分为有限元网格,通过对流体运动方程进行弱形式的变分推导,将流动问题转化为求解线性方程组。
4.谱方法(Spectral Method):采用谱方法可以对流体运动方程进行高精度的空间离散,通常基于傅里叶变换或者基函数展开的方式进行求解。
5.计算网格方法(Meshless Methods):不依赖网格的数值方法,主要包括粒子方法(Particle Methods)、网格自适应方法(Gridless Method)等。
计算流体力学课程大作业

《计算流体力学》课程大作业——基于涡量-流函数法的不可压缩方腔驱动流问题数值模拟张伊哲 航博1011、 引言和综述2、 问题的提出,怎样使用涡量-流函数方法建立差分格式3、 程序说明4、 计算结果和讨论5、 结论1引言虽然不可压缩流动的控制方程从形式上看更为简单,但实际上,目前不可压缩流动的数值方法远远不如可压缩流动的数值方法成熟。
考虑不可压缩流动的N-S 方程:01()P t νρ∇⋅=⎧⎪∂⎨+∇⋅=-∇+∆⎪∂⎩U UUU f U (1.1)其中ν是运动粘性系数,认为是常数。
将方程组写成无量纲的形式:01()Re P t∇⋅=⎧⎪∂⎨+∇⋅=-∇+∆⎪∂⎩U UUU f U (1.2) 其中Re 是雷诺数。
从数学角度看,不可压缩流动的控制方程中不含有密度对时间的偏导数项,方程表现出椭圆-抛物组合型的特点;从物理意义上看,在不可压缩流动中,压力这一物理量的波动具有无穷大的传播速度,它瞬间传遍全场,以使不可压缩条件在任何时间、任何位置满足,这就是椭圆型方程的物理意义。
这就造成不可压缩的N-S 方程不能使用比较成熟的发展型...偏微分方程的数值求解理论和方法。
如果将动量方程和连续性方程完全耦合求解,即使使用显示的离散格式,也将会得到一个刚性很强的、庞大的稀疏线性方程组,计算量巨大,更重要的问题是不易收敛。
因此,实际应用中,通常都必须将连续方程和动量方程在一定程度上解耦。
目前,求解不可压缩流动的方法主要有涡量-流函数法,SIMPLE 法及其衍生的改进方法,有限元法,谱方法等,这些方法各有优缺点。
其中涡量-流函数法是解决二维不可压缩流动的有效方法。
作者本学期学习了研究生计算流体课程,为了熟悉计算流体的基本方法,选择使用涡量-流函数法计算不可压缩方腔驱动流问题,并且对于不同雷诺数下的解进行比较和分析,得出一些结论。
本文接下来的内容安排为:第2节提出不可压缩方腔驱动流问题,并分析该问题怎样使用涡量-流函数方法建立差分格式、选择边界条件。
计算流体力学大作业

计算流体⼒学⼤作业管壳式换热器壳程流动传热数值模拟机械与动⼒⼯程学1.问题描述⼀⼯业⽤换热器,功能是加热壳程介质。
管程流体为上⼀⼯段的⾼温废液。
近似认为废液在管内流动时,管壁温度恒定。
2.软件环境表1 软件环境前处理软件计算软件后处理软件Gambit2.3.6/Pro-e ANSYS-Fluent15.0 Fluent15.0其他软件如截图⼯具,图⽚编辑软件等不逐⼀列举。
3.模型建⽴表2 换热器⼏何参数折流板尺⼨依据GB151选取。
在gambit中建⽴壳程流体的⽔⼒模型,建模时进⾏必要的简化,忽略折流板和壳体之间的间隙,忽略定距管和拉管。
从观察中可以看出管壳式换热器是左右对称的装置,为了减少计算的时间,提⾼⼯作的效率,可以去对称的⼀半进⾏计算,然后由软件处理得到结果。
图1 ⼏何模型4.⽹格划分⽹格总数1649730。
折流板之间的流动区域选⽤⾮结构化⽹格,以便于⽹格划分。
⽹格质量检查复合要求。
图2 ⽹格模型由于本⽂只需得到壳程的⼤致流动情况,不要要精确解,因此为了节约⽹格划分⼯作量,没有划分边界层⽹格。
图3⽹格局部放⼤5.边界条件设置表3 边界条件设置进⼝流速取2m/s,分别取壳程⾛空⽓和⽔两种介质,⽐较壳程流体对传热的影响。
打开能量⽅程;湍流模拟采⽤k-ε⽅程;迭代求解⽅法默认。
6.计算结果当壳程⾛⽔时,出⼝温度为323K,温度升⾼了25℃。
图4壳程⾛⽔时温度分布图5壳程⾛⽔时流速分布图6壳程⾛⽔时折流板处的回流当壳程⾛空⽓时,出⼝温度为378K,温度升⾼了65℃。
与管壁温度⼀致。
图7壳程⾛空⽓时温度分布图8壳程⾛空⽓时流速分布图8壳程⾛空⽓时折流板处的回流从两种流体的对⽐可以看出,由于空⽓和⽔的粘性都很⼩,所以两者的流动状态并没有显著差别,回流区的位置和⼤⼩也基本⼀直。
因此可以说明,当⼊⼝速度⼀致时,在低粘度,不考虑重⼒的前提下,流体的性质对换热器壳程内流速分布的影响可以忽略。
另外从加热效果的⾓度讲,虽然壳程⾛空⽓时出⼝温度⽐较⾼,但空⽓的密度低,⽐热低,因此实际上带⾛的管程热量只有壳程⾛⽔时的千分之⼀。
计算流体力学大作业

计算液体力学基础及应用课程期末作业-----程序调试最终版学号:134212059 姓名:徐影ContentsCFD模型示意图一、拟一维喷管理论解求解二、拟一维喷管的CFD求解三、理论值与CFD解的对比CFD模型示意图两圆弧直径为10米,喉部直径为0.59米,长为3米clear all;I=imread('xuying.png'); imshow(I)一、拟一维喷管理论解求解喷管内马赫数的变化公依赖于面积比A/A0,所以可以将Ma作为x的函数1.2.采用隐函数绘图给出理论的马赫数解gamma=1.4;h0=59/100;% 取学生学号后两位数的十分之一作喉部直径syms x Ma A_x y;% xz为x坐标,Ma为马赫数A_x=((10.59-2*sqrt(25-(x-1.5)^2))/0.59)^2;% A_x为面积系数figure('Color',[1 1 1]);set(gcf,'position',[0,0,1.5*468,468]);plot_Ma=A_x^2-(2/(gamma+1)+(gamma-1)/(gamma+1)*y^2)^((gamma+1)/(gamma-1))/y^2;subplot(1,2,1);gca=ezplot(plot_Ma,[0,3]);xlabel('x');ylabel('马赫数');title('采用隐函数求解的马赫数结果');grid on; % 得到两条曲线,由递增规律选取上升曲线段,从该曲线上得到一系列点的坐标为[x0,Ma0]load tk.mat;x_0=tk(:,1);Ma_0=tk(:,2);% 这里load的数据采用某算法从上面出的图取点拟合得到,用到polyval和polyfit函数subplot(1,2,2);plot(x_0,Ma_0);xlabel('x');ylabel('马赫数');title('马赫数的理论解');grid on;求出马赫数后,压力、密度、温度的变化都是Ma的函数,求出理论值并绘图1.2.3.p_0=(1+(gamma-1)/2*Ma_0.^2).^(-gamma/(gamma-1));rho_0=(1+(gamma-1)/2*Ma_0.^2).^(-1/(gamma-1));t_0=(1+(gamma-1)/2*Ma_0.^2).^-1;figure('Color',[1 1 1]);set(gcf,'position',[0,0,1.5*468,1.5*468]);subplot(3,1,1);plot(x_0,p_0);title('压力比理论值');xlabel('x');ylabel('p');grid on; subplot(3,1,2);plot(x_0,rho_0);title('密度比理论值');xlabel('x');ylabel('rho');grid on; subplot(3,1,3);plot(x_0,t_0);title('温度比理论值');xlabel('x');ylabel('T');grid on;二、拟一维喷管的CFD求解clear all;L=3;N=31;dx=L/(N-1);x=linspace(0,L,N);C=0.5;n=2000;student_num=59;A=((10+student_num/100-2*((25-((x-1.5).^2))).^0.5)/(student_num/100)).^2;%面积比A/A_0与x坐标的关系第一步,密度比、温度比、速度比的初始条件设定1.2.3.Rou=1-0.3146*x;rhobi=zeros(1,n);T=1-0.2314*x;V=(0.1+1.09*x).*sqrt(T);P_rou_t=zeros(size(Rou));P_v_t=zeros(size(Rou));P_T_t=zeros(size(Rou));P_rou_t_2=zeros(size(Rou));P_v_t_2=zeros(size(Rou));P_T_t_2=zeros(size(Rou));第二步,预估步第三步,并求Δt,求rou, V, T的预测量1.2.3.第四步,修正步第五步,求平均时间导数1.2.3.最后,得到t+Delta t时刻流动参数的修正值为1.2.3.第七步,边界条件处理for j=1:ntemp=Rou(16);% 第二步,预估步for i=2:30P_rou_t(i)=-V(i)*((Rou(i+1)-Rou(i))/dx)-Rou(i)*((V(i+1)-V(i))/dx)-Rou(i)*V(i)*((log(A(i+1))-log(A(i)))/dx);P_v_t(i)=-V(i)*((V(i+1)-V(i))/dx)-((T(i+1)-T(i))/dx+((Rou(i+1)-Rou(i))/dx)*T(i)/Rou(i))*1/1.4;P_T_t(i)=-V(i)*((T(i+1)-T(i))/dx)-0.4*T(i)*(((V(i+1)-V(i))/dx)+V(i)*((log(A(i+1))-log(A(i)))/dx));end% 第三步,并求Δt,求rou, V, T的预测量dt=C*(dx./(V(2:30)+sqrt(T(2:30))));dt=min(dt);Rou1(2:30)=Rou(2:30)+P_rou_t(2:30).*dt;V1(2:30)=V(2:30)+P_v_t(2:30).*dt;T1(2:30)=T(2:30)+P_T_t(2:30).*dt;V1(1)=V(1);T1(1)=T(1);Rou1(1)=Rou(1);% 第四步,修正步%for i=2:30P_rou_t_2(i)=-V1(i)*((Rou1(i)-Rou1(i-1))/dx)-Rou1(i)*((V1(i)-V1(i-1))/dx)-Rou1(i)*V1(i)*((log(A(i))-log(A(i-1)))/dx); P_v_t_2(i)=-V1(i)*((V1(i)-V1(i-1))/dx)-((T1(i)-T1(i-1))/dx+((Rou1(i)-Rou1(i-1))/dx)*T1(i)/Rou1(i))*1/1.4;P_T_t_2(i)=-V1(i)*((T1(i)-T1(i-1))/dx)-0.4*T1(i)*(((V1(i)-V1(i-1))/dx)+V1(i)*((log(A(i))-log(A(i-1)))/dx));end% 第五步,求平均时间导数P_rou_av=(P_rou_t+P_rou_t_2)/2;P_v_av=(P_v_t+P_v_t_2)/2;P_T_av=(P_T_t+P_T_t_2)/2;% 最后,得到t+Delta t时刻流动参数的修正值为Rou(2:30)=Rou(2:30)+P_rou_av(2:30).*dt;T(2:30)=T(2:30)+P_T_av(2:30).*dt;V(2:30)=V(2:30)+P_v_av(2:30).*dt;P(2:30)=Rou(2:30).*T(2:30);% 第七步,边界条件处理V(1)=2*V(2)-V(3);V(31)=2*V(30)-V(29);Rou(31)=2*Rou(30)-Rou(29);T(31)=2*T(30)-T(29);p=Rou.*T;Ma=V./sqrt(T);rhobi(j)=abs((temp-Rou(16))/temp); % 计算后一次时间步与前一时间步之间的密度比的变化情况,以此检验CFD过程收敛性质end最终结果的绘图figure('Color',[1 1 1]);set(gcf,'position',[0,0,1.2*468,1.5*468]);subplot(3,1,1);plot(1:n,rhobi);xlabel('x');ylabel('Ma');title('相对密度比');grid on;% 密度比收敛情况绘图subplot(3,1,2);plot(x,Ma);title('喷管内马赫数分布');xlabel('x');ylabel('Ma');grid on;% 马赫数CFD值绘图subplot(3,1,3);plot(x,p);title('喷管内压力分布');xlabel('x');ylabel('p');grid on; % 压力分布CFD值绘图shu=[x;A;Ma;V;T;p;Rou];显示各参量最终计算结果fprintf('%6s\t%12s\t%12s\t%12s\t%12s\t%12s\t%12s\r\n','x','A/A_0','Ma','v/v_0','T/T_0','p/p_0','rho')% 依次显示坐标点、形状参数、马赫数、速度、温度、压力的结果fprintf('%6.1f\t%12.4f\t%12.4f\t%12.4f\t%12.4f\t%12.4f\t%12.4f\r\n',shu)x A/A_0 Ma v/v_0 T/T_0 p/p_0 rho0.0 3.1709 0.1859 0.1859 1.0000 1.0000 1.00000.1 2.8156 0.2124 0.2121 0.9975 0.9915 0.99390.2 2.5056 0.2389 0.2383 0.9956 0.9847 0.98900.3 2.2361 0.2711 0.2700 0.9922 0.9728 0.98050.4 2.0030 0.3056 0.3038 0.9885 0.9602 0.97140.5 1.8022 0.3451 0.3422 0.9834 0.9433 0.95910.6 1.6303 0.3882 0.3838 0.9775 0.9234 0.94470.7 1.4844 0.4364 0.4298 0.9700 0.8989 0.92670.8 1.3617 0.4891 0.4794 0.9611 0.8701 0.90540.9 1.2600 0.5469 0.5331 0.9502 0.8362 0.88001.0 1.1771 0.6096 0.5903 0.9374 0.7974 0.85071.1 1.1116 0.6776 0.6508 0.9224 0.7536 0.81701.2 1.0620 0.7507 0.7142 0.9051 0.7053 0.77921.3 1.0273 0.8289 0.7800 0.8855 0.6532 0.73761.4 1.0068 0.9119 0.8475 0.8636 0.5982 0.69271.5 1.0000 0.9998 0.9160 0.8394 0.5416 0.64521.6 1.0068 1.0921 0.9849 0.8132 0.4847 0.59601.7 1.0273 1.1887 1.0534 0.7853 0.4288 0.54611.8 1.0620 1.2893 1.1210 0.7559 0.3753 0.49641.9 1.1116 1.3934 1.1869 0.7255 0.3250 0.44802.0 1.1771 1.5009 1.2507 0.6943 0.2788 0.40152.1 1.2600 1.6113 1.3119 0.6629 0.2371 0.35762.2 1.3617 1.7245 1.3705 0.6315 0.2001 0.31682.3 1.4844 1.8398 1.4258 0.6006 0.1678 0.27952.4 1.6303 1.9576 1.4782 0.5702 0.1400 0.24552.5 1.8022 2.0764 1.5269 0.5408 0.1163 0.21512.6 2.0030 2.1983 1.5732 0.5122 0.0962 0.1879。
计算流体力学与传热学大作业

########学院计算流体力学与传热学学号:专业:学生姓名:任课教师:教授2013年12月目录第一章验证显式格式的稳定性 (4)1.1 概述 (4)1.2 数学推导 (4)1.3 问题描述 (4)1.4 数值模拟 (4)1.5 结果及分析 (5)第二章判断肋片可以按一维问题处理的主要依据 (6)2.1 概述 (6)2.2 问题描述及算法 (6)2.3 数值模拟 (7)2.4 结果及分析 (8)第三章三层墙导热 (9)3.1 概述 (9)3.2 问题描述 (9)3.3 TDMA算法 (9)3.4 结果 (10)第四章一维无源稳态对流扩散问题 (11)4.1 公式及初值 (11)4.2 情况一 (11)4.3 情况二 (12)4.4 情况三 (13)第五章用ADI算法计算长方肋内的温度分布 (14)5.1 问题描述 (14)5.2 初始参数 (14)5.3 情况一,一列列扫 (14)5.4 情况二,一行行扫 (14)5.5 情况三,采用ADI算法 (15)5.6 结果分析 (15)参考文献 (16)第一章 验证显式格式的稳定性1.1 概述将一维非稳态热传导方程用显式格式差分化为代数方程,在求解的迭代过程中必须满足一定的条件,才能使方程收敛且结果正确。
此处即验证β≤½。
1.2 数学推导方程: 22T t T x α∂∂=∂∂(1)显式离散格式: 此处时间向前差分,空间中心差分11122n n n n ni i i i i T T T T T t x α+-+--+=∆∆1112(2)n n n n ni i i i i t T T T T T xα+-+∆-=-+∆ 令β=2tx α∆∆则: 111(2)n n n n ni i i i i T T T T T β+-+-=-+ (2)误差也应该满足上式,故:()()1()()()2()()iiiiiIkx Ikx Ik x x Ikx Ik x x n n n n nT e T e T e T e T e ψψβψψψ----∆--+∆+⎡⎤-=-+⎣⎦()()()1()12()()()iiiiIkx Ikx Ik x x Ik x x n n n nT e T e T e T e ψβψβψψ----∆-+∆+⎡⎤=-++⎣⎦()()1()12()()iiiIkx Ikx Ikxn n Ik x Ik x n T e T e e e T e ψβψβψ---+-∆∆=-++()()1()121()n Ik x Ik x nT e e T ψββψ+-∆∆=-++≤ 因此 β≤½。
计算流体力学大作业

1 提出问题[问题描述]Sod 激波管问题是典型的一类Riemann 问题。
如图所示,一管道左侧为高温高压气体,右侧为低温低压气体,中间用薄膜隔开。
t=0 时刻,突然撤去薄膜,试分析其他的运动。
Sod 模型问题:在一维激波管的左侧初始分布为:0 ,1 ,1111===u p ρ,右侧分布为:0 ,1.0 ,125.0222===u p ρ,两种状态之间有一隔膜位于5.0=x 处。
隔膜突然去掉,试给出在14.0=t 时刻Euler 方程的准确解,并给出在区间10≤≤x 这一时刻u p , ,ρ的分布图。
2 一维Euler 方程组分析可知,一维激波管流体流动符合一维Euler 方程,具体方程如下: 矢量方程:0U ft x∂∂+=∂∂ (0.1)分量方程:连续性方程、动量方程和能量方程分别是:222,,p u ρ()()()()2000u tx u u pt x x u E p E tx ρρρρ∂⎧∂+=⎪∂∂⎪⎪∂∂∂⎪++=⎨∂∂∂⎪⎪∂+⎡⎤∂⎣⎦+=⎪∂∂⎪⎩ (0.2)其中 22v u E c T ρ⎛⎫=+ ⎪⎝⎭对于完全气体,在量纲为一的形式下,状态方程为:()2p T Ma ργ∞=(0.3)在量纲为一的定义下,定容热容v c 为:()211v c Ma γγ∞=- (0.4)联立(1.2),(1.3),(1.4)消去温度T 和定容比热v c ,得到气体压力公式为:()2112p E u γρ⎛⎫=-- ⎪⎝⎭(0.5)上式中γ为气体常数,对于理想气体4.1=γ。
3 Euler 方程组的离散3.1 Jacibian 矩阵特征值的分裂Jacibian 矩阵A 的三个特征值分别是123;;u u c u c λλλ==+=-,依据如下算法将其分裂成正负特征值:()12222k k k λλελ±±+=(0.6)3.2 流通矢量的分裂这里对流通矢量的分裂选用Steger-Warming 分裂法,分裂后的流通矢量为()()()()()()()12312322232121212122f u u c u c u u c u c w γλλλργλλλγλλγλ⎛⎫⎪-++ ⎪=-+-++ ⎪ ⎪ ⎪-+-+++ ⎪⎝⎭+++++++++++(0.7)()()()()()()()12312322232121212122f u u c u c u u c u c w γλλλργλλλγλλγλ⎛⎫⎪-++ ⎪=-+-++ ⎪ ⎪ ⎪-+-+++ ⎪⎝⎭-----------(0.8)其中:()()()223321c w γλλγ±±±-+=- c 为量纲为一的声速:22Tc Ma ∞=(0.9)联立(1.3),(1.9)式,消去来流马赫数得:ργp c =3.3 一阶迎风显示格式离散Euler 方程组 10n n i i x i x i U U f f t xδδ+-++--++=∆∆ (0.10)得到()()n+1nj j 11U =U j j j j t f f f f x++---+∆⎡⎤--+-⎣⎦∆ 算法如下:① 已知初始时刻t=0的速度、压力及密度分布000,,j j j u P ρ,则可得到特征值分裂值0k λ±,从而求出流通矢量0j f ±;② 应用一阶迎风显示格式可以计算出1t t =∆时刻的组合变量1j U ,从而得到1t t =∆时刻的速度、压力及密度分布111,,j j j u P ρ;③ 利用1t t =∆时刻的速度、压力及密度分布111,,j j j u P ρ可得特征值分裂值1k λ±,从而求出流通矢量1j f ±;④ 按照步骤2的方法即可得到2t t =∆时刻的速度、压力及密度分布222,,j j j u P ρ;⑤ 循环以上过程即可得到()1t n t =+∆时刻的速度、压力及密度分布n+1n+1n+1,,j j j u P ρ。
计算流体力学课后题作业

课后习题第一章1.计算流体动力学的基本任务是什么计算流体动力学是通过计算机数值计算和图像显示,对包含有流体流动和热传导等相关物理现象的系统所做的分析。
2.什么叫控制方程?常用的控制方程有哪几个?各用在什么场合?流体流动要受物理守恒定律的支配,基本的守恒定律包括:质量守恒定律、动量守恒定律、能量守恒定律。
如果流动包含有不同组分的混合或相互作用,系统还要遵守组分守恒定律。
如果流动处于湍流状态,系统还要遵守附加的湍流输运方程。
控制方程是这些守恒定律的数学描述。
常用的控制方程有质量守恒方程、动量守恒方程、能量守恒方程、组分质量守恒方程。
质量守恒方程和动量守恒方程任何流动问题都必须满足,能量守恒定律是包含有热交换的流动系统必须满足的基本定律。
组分质量守恒方程,在一个特定的系统中,可能存在质的交换,或者存在多种化学组分,每种组分都需要遵守组分质量守恒定律。
4.研究控制方程通用形式的意义何在?请分析控制方程通用形式中各项的意义。
建立控制方程通用形式是为了便于对各控制方程进行分析,并用同一程序对各控制方程进行求解。
各项依次为瞬态项、对流项、扩散项、源项。
6.CFD商用软件与用户自行设计的CFD程序相比,各有何优势?常用的商用CFD软件有哪些?特点如何?由于CFD的复杂性及计算机软硬件条件的多样性,用户各自的应用程序往往缺乏通用性。
CFD商用软件的特点是功能比较全面、适用性强。
具有比较易用的前后处理系统和其他CAD及CFD软件的接口能力,便于用户快速完成造型、网格划分等工作。
具有比较完备的容错机制和操作界面,稳定性高。
可在多种计算机、多种操作系统,包括并行环境下运行。
常用的商用CFD软件有PHOENICS、CFX、SRAR-CD、FIDAP、FLUENT。
PHOENICS除了通用CFD软件应该拥有的功能外,PHOENICS软件有自己独特的功能:开放性、CAD接口、运动物体功能、多种模型选择、双重算法选择、多模块选择。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算流体力学》课程大作业——基于涡量-流函数法的不可压缩方腔驱动流问题数值模拟张伊哲 航博1011、 引言和综述2、 问题的提出,怎样使用涡量-流函数方法建立差分格式3、 程序说明4、 计算结果和讨论5、 结论1引言虽然不可压缩流动的控制方程从形式上看更为简单,但实际上,目前不可压缩流动的数值方法远远不如可压缩流动的数值方法成熟。
考虑不可压缩流动的N-S 方程:01()P t νρ∇⋅=⎧⎪∂⎨+∇⋅=-∇+∆⎪∂⎩U UUU f U (1.1)其中ν是运动粘性系数,认为是常数。
将方程组写成无量纲的形式:01()Re P t∇⋅=⎧⎪∂⎨+∇⋅=-∇+∆⎪∂⎩U UUU f U (1.2) 其中Re 是雷诺数。
从数学角度看,不可压缩流动的控制方程中不含有密度对时间的偏导数项,方程表现出椭圆-抛物组合型的特点;从物理意义上看,在不可压缩流动中,压力这一物理量的波动具有无穷大的传播速度,它瞬间传遍全场,以使不可压缩条件在任何时间、任何位置满足,这就是椭圆型方程的物理意义。
这就造成不可压缩的N-S 方程不能使用比较成熟的发展型...偏微分方程的数值求解理论和方法。
如果将动量方程和连续性方程完全耦合求解,即使使用显示的离散格式,也将会得到一个刚性很强的、庞大的稀疏线性方程组,计算量巨大,更重要的问题是不易收敛。
因此,实际应用中,通常都必须将连续方程和动量方程在一定程度上解耦。
目前,求解不可压缩流动的方法主要有涡量-流函数法,SIMPLE 法及其衍生的改进方法,有限元法,谱方法等,这些方法各有优缺点。
其中涡量-流函数法是解决二维不可压缩流动的有效方法。
作者本学期学习了研究生计算流体课程,为了熟悉计算流体的基本方法,选择使用涡量-流函数法计算不可压缩方腔驱动流问题,并且对于不同雷诺数下的解进行比较和分析,得出一些结论。
本文接下来的内容安排为:第2节提出不可压缩方腔驱动流问题,并分析该问题怎样使用涡量-流函数方法建立差分格式、选择边界条件。
第3节介绍程序的结构。
第4节对于不同雷诺数下的计算结果进行分析,并且与U.GHIA 等人【1】的经典结论进行对比,评述本文所采用的计算方法。
第五节给出结论。
2问题的提出和分析2.1经典方腔驱动流问题考虑如下图所示的长度为1的正方形腔体,腔体上有一平板以速度U=1运动,其它三边为固壁条件。
图1.方腔驱动流示意图顶盖方腔驱动流问题是个很经典的问题,常常用于验证不可压缩流动数值方法的正确性。
U.GHIA 等人于1982年发表的一篇文献(见文献【1】)计算了Re 从100到410的流动结果,其结果得到广泛的认同。
2.2涡量-流函数方法简介涡量-流函数法的基本思想是引入涡量ω和流函数ψ:引入涡量,可以消去方程中的压力项,而引入流函数,可以使连续方程自然满足。
下面对该方法进行简单推导:考虑二维问题,将式(1.2)写成分量形式:222222220 (1.3)1 (1.4)Re 1 (1.5)Re u vt t u u u P u u u v t x y x x y v v v P v v u v t x y y x y ∂∂+=∂∂⎛⎫∂∂∂∂∂∂++=-++ ⎪∂∂∂∂∂∂⎝⎭⎛⎫∂∂∂∂∂∂++=-++ ⎪∂∂∂∂∂∂⎝⎭式(1.4)对y 求偏导数减去式(1.5)对x 求偏导数,考虑到=u vy xω∂∂-∂∂,推导出涡量满足的方程为22221Re u v t x y x y ωωωωω⎛⎫∂∂∂∂∂++=+ ⎪∂∂∂∂∂⎝⎭(1.6) 然后引入流函数ψ,定义为,v u x yψψ∂∂=-=∂∂ (1.7) 可见,连续性方程(1.3)自然成立。
ψ与ω的关系为2222x yψψω∂∂+=∂∂ (1.8) 式(1.6)~(1.8)构成了一个封闭的方程组,由(1.6)计算出涡量,再由(1.8)式计算出流函数,利用(1.7)式计算出速度。
这个方程组的特点是求解速度的时候完全不用考虑压力项。
若还需要求解压力场,则可以把式(1.4)对x 求偏导数,式式(1.5)对y 求偏导数,二者求和后整理得到关于压力的Poisson 方程2222u u v v P x y x y ⎧⎫⎛⎫∂∂∂∂⎪⎪⎛⎫∇=-++⎨⎬ ⎪ ⎪∂∂∂∂⎝⎭⎝⎭⎪⎪⎩⎭ (1.9)以上推导出的涡量-流函数法在计算二维问题时很成功,但是三维流动的流函数没有直观的物理意义,无法像二维流动一样直接定义,需要引入多个流函数,相应解多个Poisson 方程,计算量很大,并不实用。
对于本文的二维问题,该方法就简单易行。
2.3建立差分格式2.3.1划分网格方腔驱动流的流动区域很简单,均匀划分为正方形的结构网格即可,存储网格时,x 方向使用标号i 表示,y 方向使用标号j 表示,x 和y 方向的最大网格点标号分别为M 和N 。
对于Re 小于等于1000的情况,使用100*100网格,Re 大于1000后的情况,使用256*256网格。
计算域如图2所示:图2.100*100的均分网格2.3.2建立差分方程由于本题关注的是方腔内部的流动状态,对于压力分布不关心,因此不用建立压力的差分方程。
涡量的对流扩散方程(1.6)使用FTCS 格式离散得到:1,,1,1,,1,1,,1,,1,,1,,12222221()Re()()n n n n n n i j i ji j i ji j i j n n i ji jn n n n n n i ji j i ji j i j i j uvt xyx y ωωωωωωωωωωωω++-+-+-+----++∆∆∆-+-+=∆∆ (1.10)该差分格式时间方向为1阶精度,空间方向为2阶精度。
在(1.10)中,速度分量取的是n 时刻的值,已经对方程进行了线性化处理。
流函数的Poisson 方程中,二阶导数都用中心差分离散:1111111,,1,,1,,11,2222n n n n n n i j i j i j i j i j i j n i j x y ψψψψψψω+++++++-+-+-+-++=∆∆ (1.11)这种中心差分可达到二阶精度。
2.3.3设定边界条件(1)速度和流函数的边界条件由于沿着壁面是一条流线,所以流函数在边界是常值,可以取为0;速度在边界满足无滑移条件。
上边界(0~,i M j N ==): ,,1,0i N i N u U v ===;,0i N ψ= 下边界(0~,0i M j ==): ,0,00,0i i u v ==;,00i ψ= 左边界(1~1,0j N i =-=):0,0,0,0j j u v ==;0,0j ψ= 右边界(1~1,j N i M =-=):,,0,0M j M j u v ==;,0M j ψ= (2)涡量的边界条件根据涡量的定义=u v y x ω∂∂-∂∂,在上下边界,0vx ∂=∂,所以22=u y y ψω∂∂=∂∂;在左右边界,0uy∂=∂,所以22=v x x ψω∂∂-=∂∂。
;左边界(1~1,0j N i =-=):1,0,1,0,22=,j j jj x ψψψω--+∆这里引入了虚拟网格点(-1,j ),注意到0,1,1,0,002j j j j u x ψψψ-=⎧⎪-⎨==⎪∆⎩,所以1,0,22=j j x ψω∆。
同理可得,右边界(1~1,j N i M =-=):1,,22=M j M j xψω-∆下边界(0~,0i M j ==):,1,022=i i yψω∆上边界(0~,i M j N ==):注意到,,1,1,012i N i N i N i Nu y ψψψ+-=⎧⎪-⎨==⎪∆⎩,所以,1,222=i N i N yyψω-+∆∆下面考察构造的这种涡量边界条件的精度:比如对于下边界,流函数的Taylor 展开为22334,1,023(,0)(,0)(,0)22334,1,023(,0)(,0)(,0)()2!3!()2!3!i i i i i i i i i i y y yO y yy y y y yO y y y y ψψψψψψψψψψ-∂∆∂∆∂=+∆+++∆∂∂∂∂∆∂∆∂=-∆+-+∆∂∂∂则42,1,0,1,1,0,12222(,0)2()2()i i i i i i i O y O y yy y ψψψψψψψ---++∆-+∂==+∆∂∆∆对于其他边界的精度推导是类似的。
所以构造的这种涡量边界条件很有优势——不仅形式简单,还能有2阶精度。
3编程计算3.1程序的结构程序流程图如下图所示:图3.流程图3.2程序说明时间步长选择0.001,足以满足稳定性条件。
1、对于涡量场的计算:根据差分方程1,,1,1,,1,11,,1,,1,,1,,22221()22Re ()()n n n n n n n n n n n ni j i ji j i ji j i j i j i j i j i j i j i j nn i ji juvtxy x y ωωωωωωωωωωωω++-+-+-+-----+-+++=∆∆∆∆∆该式中,速度分量取的是n 时刻的值,已经对方程进行了线性化处理。
所以直接使用显示法,一步就可以将1,n i j ω+求出。
1,,1,,1,,1,,11,1,,1,1,,22221()Re ()()22n n i j i j n n n n n n n n n n i j i j i j i j i j i j i j i j i j i j n n i j i j t u v x y x y ωωωωωωωωωωωω++-+-+-+-=+⎡⎤⎛⎫-+-+--∆-+⎢⎥ ⎪ ⎪∆∆∆∆⎢⎥⎝⎭⎣⎦(1.12)2、对于流函数场的计算:流函数满足泊松方程,差分形式为:1111111,,1,,1,,11,2222n n n n n n i j i j i j i j i j i j n i jx y ψψψψψψω+++++++-+-+-+-++=∆∆求解时要使用JACOBI 迭代,由于x y ∆=∆,可以写成()1,(1)1,()1,()1,()1,()21,1,1,,1,1,14n k n k n k n k n k n i ji j i j i j i j i j h ψψψψψω++++++++-+-=+++- 其中(k+1)表示第k+1次迭代,当1ε-<n+1,(k+1)n+1,(k)ψψ时,认为精度达到,退出迭代。
将此时的n+1,(k +1)ψ作为n+1时刻的流函数场n+1ψ。
3、速度场的求解 由于,v u x yψψ∂∂=-=∂∂,所以 ,1,11,1,,22i j i j i j i ju v yxψψψψ+-+---==-∆∆4结果分析图4是Re=100,400,1000,3200,5000,7500,10000时的流线图,每个雷诺数中,上图是本文计算的图,下图是文献1中的结果。