《计算流体力学大作业(共7页).docx》由会员分享,可在线阅读,更多相关《计算流体力学大作业(共7页).docx(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上1 提出问题 问题描述 Sod激波管问题是典型的一类Riemann问题。如图所示,一管道左侧为高温高压气体,右侧为低温低压气体,中间用薄膜隔开。t=0 时刻,突然撤去薄膜,试分析其他的运动。 Sod模型问题:在一维激波管的左侧初始分布为:,右侧分布为:,两种状态之间有一隔膜位于处。隔膜突然去掉,试给出在时刻Euler方程的准确解,并给出在区间这一时刻的分布图。2 一维Euler方程组分析可知,一维激波管流体流动符合一维Euler方程,具体方程如下:矢量方程:(0.1)分量方程:连续性方程、动量方程和能量方程分别是:(0.2)其中 对于完全气体,在量纲为一的形式下,状态
2、方程为:(0.3)在量纲为一的定义下,定容热容为:(0.4)联立(1.2),(1.3),(1.4)消去温度和定容比热,得到气体压力公式为:(0.5)上式中为气体常数,对于理想气体。3 Euler方程组的离散3.1 Jacibian矩阵特征值的分裂Jacibian矩阵A的三个特征值分别是,依据如下算法将其分裂成正负特征值:(0.6)3.2 流通矢量的分裂这里对流通矢量的分裂选用Steger-Warming分裂法,分裂后的流通矢量为(0.7)(0.8)其中:为量纲为一的声速:(0.9)联立(1.3),(1.9)式,消去来流马赫数得:3.3 一阶迎风显示格式离散Euler方程组(0.10)得到 算法
3、如下: 已知初始时刻t=0的速度、压力及密度分布,则可得到特征值分裂值,从而求出流通矢量; 应用一阶迎风显示格式可以计算出时刻的组合变量,从而得到时刻的速度、压力及密度分布; 利用时刻的速度、压力及密度分布可得特征值分裂值,从而求出流通矢量; 按照步骤2的方法即可得到时刻的速度、压力及密度分布; 循环以上过程即可得到时刻的速度、压力及密度分布。4 计算结果分析实际编程中,空间步长取0.001,空间网格数为1001,时间步长取0.00001,计算到终点时刻0.14s耗费机时137s,计算时间还是可以接受的。分析图4-14-3,可以观察到在隔膜附近流动参数变化剧烈,与初始条件相比,可以看出激波的影
4、响范围有限,始终在区间内变化。图4-1是0.14时刻的密度分布图,观察可知,在密度波的传播过程中,间断面上会出现了两次“沉降”,说明密度在沉降位置发生了剧烈变化。图4-2是0.14时刻的压力分布图,在压力波的传播过程中,在间断面上出现了一个“压力沉降”现象,说明压力在沉降位置突降。图4-3是0.14时刻的速度分布图,在间断面处产生一个向两边运动的速度,并且只有在隔膜附近才有气体流动,其他地方静止。图4-1激波管内密度分布图(0.14s)图4-2激波管内压力分布图(0.14s)图4-3激波管内速度分布图(0.14s)源程序代码: 分量和矩阵结合编写的源程序:function sobtubing_
5、SW()tic;close allee=1e-8;%划分时空网格%delta_t=0.00001;Nt=round(0.14/delta_t);delta_x=0.001;N_left=round(0.5/delta_x+1);N_right=round(0.5/delta_x+1)N=N_left+N_right-1;%1%初始条件%P=ones(1,N_left-1) 0.1*ones(1,N_right);Den=ones(1,N_left-1) 0.125*ones(1,N_right);u=zeros(1,N);gama=1.4;Den_u=Den.*u;E=P./(gama-1)
6、+(0.5*u.2).*Den; %计算特征值分裂%for j=1:Ntepso=1e-8*ones(1,N);gama=1.4;C=sqrt(gama*P./Den);lamta=ones(3,N);lamta_p=ones(3,N);lamta_n=ones(3,N);lamta(1,:)=u; lamta(2,:)=u-C; lamta(3,:)=u+C;for i=1:3 lamta_p(i,:)=0.5*(lamta(i,:)+sqrt(lamta(i,:).2+epso.2); lamta_n(i,:)=0.5*(lamta(i,:)-sqrt(lamta(i,:).2+epso.
7、2);end %计算正通量%gama=1.4;C=sqrt(gama*P./Den);Ftran_p=ones(3,N);f1_Pos=0.5/gama*Den.*(2*(gama-1)*lamta_p(1,:)+lamta_p(2,:)+lamta_p(3,:);f2_Pos=0.5/gama*Den.*(2*(gama-1)*lamta_p(1,:).*u+lamta_p(2,:).*(u-C)+lamta_p(3,:).*(u+C);f3_Pos=0.5/gama*Den.*(gama-1)*lamta_p(1,:).*u.2+0.5*lamta_p(2,:).*(u-C).2 .+0.
8、5*lamta_p(3,:).*(u+C).2+(0.5*(3-gama)/(gama-1)*(lamta_p(2,:)+lamta_p(3,:).*C.2); %计算负通量%gama=1.4;C=sqrt(gama*P./Den);f1_Neg=0.5/gama*Den.*(2*(gama-1)*lamta_n(1,:)+lamta_n(2,:)+lamta_n(3,:);f2_Neg=0.5/gama*Den.*(2*(gama-1)*lamta_n(1,:).*u+lamta_n(2,:).*(u-C)+lamta_n(3,:).*(u+C);f3_Neg=0.5/gama*Den.*(
9、gama-1)*lamta_n(1,:).*u.2+0.5*lamta_n(2,:).*(u-C).2 .+0.5*lamta_n(3,:).*(u+C).2+(0.5*(3-gama)/(gama-1)*(lamta_n(2,:)+lamta_n(3,:).*C.2); %计算流动参数% for i=2:N-1 %密度计算 temp1(1,i) = (f1_Pos(1,i) - f1_Pos(1,i-1) / delta_x; temp2(1,i) = (f1_Neg(1,i+1) - f1_Neg(1,i) / delta_x; Den(1,i) = Den(1,i) - delta_t*
10、(temp1(1,i) + temp2(1,i); % 密度、速度乘积计算 temp1(1,i) = (f2_Pos(1,i) - f2_Pos(1,i-1) / delta_x; temp2(1,i) = (f2_Neg(1,i+1) - f2_Neg(1,i) /delta_x; Den_u(1,i) = Den_u(1,i) - delta_t*(temp2(1,i) + temp1(1,i); % 速度计算 u(1,i) = Den_u(1,i) / Den(1,i); % 能量计算 temp1(1,i) = (f3_Pos(1,i) - f3_Pos(1,i-1) /delta_x;
11、 temp2(1,i) = (f3_Neg(1,i+1) - f3_Neg(1,i) /delta_x; E(1,i) = E(1,i) - delta_t*(temp2(1,i) + temp1(1,i); % 压强计算 P(1,i) = (gama - 1)*(E(1,i) - 0.5*Den(1,i)*u(1,i)2); endend%结果显示x=0:0.001:1;axis(0 1 0 1);plot(x,u,LineWidth,2);xlabel(fontsize14x);ylabel(fontsize14速度V);figure(2);plot(x,P,LineWidth,2);xlabel(fontsize14x);ylabel(fontsize14压力P)figure(3);plot(x,Den,LineWidth,2);xlabel(fontsize14x);ylabel(fontsize14密度)Calculate_time=toc专心-专注-专业
限制150内