- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高等流体力学
2009级研究生课程《高等流体力学》
学生姓名:指导教师: 教授
专 业:动力工程及工程热物理
:重庆大学动力工程学院
二OO年月的气体以的速度以零攻角定常饶流长度为=1m的大平板,试用数值解讨论边界层内的流动规律。
解:1. 右下图为该流动问题的示意图,取平板的前缘点O为坐标原点,x轴沿着平板,y轴垂直于平板,建立流向坐标系XOY。经过计算可知:Re=9.1×105,则由
数量级比较法,可以得到该问题的边界层控制微分方程组及相应定解条件:
2. 控制微分方程化为常微分方程,同时将定解条件作相应变换.
引入函数,令将它代入连续性方程可得:
即可将两个因变量变为一个因变量
引入无因次变量: ,
则有:
代入原方程组得:
因此,动量方程可化为:
又
则有:
即:
边界条件:
因此,原定解问题可表示如下:
3. 由于缺少边界条件,此方程还无法解,将上述定解问题中的高阶常微分方程表示为一阶常微分方程组:
令:,设,,并且有
所以
将上边各式代入方程,得
因为,即有
并且因为:
所以所求得的非线性常微分方程为:
因此,为求,必须先计算出,即对常微分方程进行数值求解,算出
4. 用龙格—库塔算法求数值解:
① 将其化为一阶常微分方程组:
即有:因此可令:
也即有:
相应初始条件为:
② 用C语言编程,计算步长设置为,迭代次数设为:;求,也就是求的值.
用C语言编制程序如下:
#include math.h
#include stdio.h
#include graphics.h
#define path D:\\turboc2
#define w 10
#define h 0.01
#define j 1000
main()
{FILE *fp;
float k1,k2,k3,k4,m1,m2,m3,m4,l1,l2,l3,l4;
float x[j],y[j],z[j];
float t;
int i,b;
int x1=50,y1=400,x2=550,y2=100;
int mode,drive=DETECT;
initgraph(drive,mode,path);
x[0]=0.0;y[0]=0.0;z[0]=1.0;
for(i=1;ij;i++)
{ k1=h*y[i-1]; l1=h*z[i-1]; m1=h*(-x[i-1]*z[i-1]);
k2=h*(y[i-1]+l1/2.0);l2=h*(z[i-1]+m1/2.0); m2=h*(-(x[i-1]+k1/2.0)*(z[i-1]+m1/2.0));
k3=h*(y[i-1]+l2/2.0); l3=h*(z[i-1]+m2/2.0); m3=h*(-(x[i-1]+k2/2.0)*(z[i-1]+m2/2.0));
k4=h*(y[i-1]+l3); l4=h*(z[i-1]+m3); m4=h*(-(x[i-1]+k3)*(z[i-1]+m3));
x[i]=x[i-1]+(k1+2*k2+2*k3+k4)/6.0;
y[i]=y[i-1]+(l1+2*l2+2*l3+l4)/6.0;
z[i]=z[i-1]+(m1+2*m2+2*m3+m4)/6.0;
}
line(x1,y1,x2,y1); line(x1,y1,x1,y2); moveto(x1,y2);
lineto(x1-w/3,y2+w); lineto(x1+w/3,y2+w); lineto(x1,y2);
moveto(x2,y1); lineto(x2-w,y1-w/3); lineto(x2-w,y1+w/3); lineto(x2,y1);
for(b=1;bh*j;b++)
{ line(x1+b*(x2-x1)/(h*j),y1,x1+b*(x2-x1)/(h*j),y1-6);
line(x1,y1-b*(y1-y2)/(h*j),x1+6,y1-b*(y1-y2)/(h*j));
}
for(i=0;ij-1;i++)
{ t=i*h;
line((t*50+x1),(y1-x[i]*30),(((i+1)*h)*50+x1),(y1-x[i+1]*30));
line(t*50+x1,y1-y[i]*30,(i+1)*h*50+x1,y1-y[i+1]*30);
line(t*50+x1,y1-z[i]*30,(i+1)*h*50+x1,y1-z[i+1]*30);
}
getch();
文档评论(0)