拟一维喷管流动的数值解——亚声速-超声速等熵喷管流动的守恒型CFD解法(MacCormack方法)
生活随笔
收集整理的這篇文章主要介紹了
拟一维喷管流动的数值解——亚声速-超声速等熵喷管流动的守恒型CFD解法(MacCormack方法)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、Matlab代碼片
%亞聲速-超聲速等熵噴管流動(dòng)守恒形CFD解法 MacCormack方法 clear; %清理內(nèi)存變量 clc; %清理工作窗中的所有顯示內(nèi)容 r=1.4; %比熱比 L=3; %噴管長(zhǎng)度 i=31; %網(wǎng)格數(shù)目 C=0.5; %科朗數(shù) x=linspace(0,L,i); %網(wǎng)格點(diǎn)橫坐標(biāo) N=1401; %時(shí)間步 %預(yù)分配內(nèi)存 rho=zeros(1401,31); V=zeros(1401,31); T=zeros(1401,31); U1=zeros(1401,31); U2=zeros(1401,31); U3=zeros(1401,31); dx=L/(i-1); %空間步長(zhǎng) dt(1:N)=0; %時(shí)間步長(zhǎng) A=1+2.2*(x-1.5).*(x-1.5); %噴管面積 %初始條件 rho(1,:)=[ones(1,6),1.0-0.366.*(x(7:16)-0.5),0.634-0.3879.*(x(17:31)-1.5)]; T(1,:)=[ones(1,6),1.0-0.167.*(x(7:16)-0.5),0.833-0.3507.*(x(17:31)-1.5)]; U1(1,:)=rho(1,:).*A(1:31); U2(1,:)=0.59; V(1,:)=U2(1,:)./U1(1,:); U3(1,:)=U1(1,:).*((T(1,:)./(r-1))+r/2.*V(1,:).^2); %MacCormack方法迭代 for k=1:N-1%確定最小時(shí)間步長(zhǎng)t=C*dx./(V(k,:)+sqrt(T(k,:)));dt(k)=min(t);%預(yù)估步通量F1(1:i)=U2(k,1:i);F2(1:i)=U2(k,1:i).^2./U1(k,1:i)+(r-1)/r.*...(U3(k,1:i)-r/2.*U2(k,1:i).^2./U1(k,1:i));F3(1:i)=r.*U2(k,1:i).*U3(k,1:i)./U1(k,1:i)...-r*(r-1)/2.*U2(k,1:i).^3./U1(k,1:i).^2;J2(1:i-1)=1/r.*rho(k,1:i-1).*T(k,1:i-1).*(A(2:i)-A(1:i-1))/0.1; %源項(xiàng)%預(yù)估偏導(dǎo)數(shù)U1t(1:i-1)=-(F1(2:i)-F1(1:i-1))/dx;U2t(1:i-1)=-(F2(2:i)-F2(1:i-1))/dx+J2(1:i-1);U3t(1:i-1)=-(F3(2:i)-F3(1:i-1))/dx;%預(yù)估值U1_(1:i-1)=U1(k,1:i-1)+U1t(1:i-1).*dt(k);U2_(1:i-1)=U2(k,1:i-1)+U2t(1:i-1).*dt(k);U3_(1:i-1)=U3(k,1:i-1)+U3t(1:i-1).*dt(k);rho_(1:i-1)=U1_(1:i-1)./A(1:i-1);T_(1:i-1)=(r-1).*( U3_(1:i-1)./U1_(1:i-1)-r/2.*U2_(1:i-1).^2./U1_(1:i-1).^2);F1_(1:i-1)=U2_(1:i-1);F2_(1:i-1)=U2_(1:i-1).^2./U1_(1:i-1)+(r-1)/r.*...(U3_(1:i-1)-r/2.*U2_(1:i-1).^2./U1_(1:i-1));F3_(1:i-1)=r.*U2_(1:i-1).*U3_(1:i-1)./U1_(1:i-1)...-r*(r-1)/2.*U2_(1:i-1).^3./U1_(1:i-1).^2;J2_(2:i-1)=1/r.*rho_(2:i-1).*T_(2:i-1).*(A(2:i-1)-A(1:i-2))/0.1; %注意%校正步 校正偏導(dǎo)數(shù)U1t_(2:i-1)=-(F1_(2:i-1)-F1_(1:i-2))/dx;U2t_(2:i-1)=-(F2_(2:i-1)-F2_(1:i-2))/dx+J2_(2:i-1);U3t_(2:i-1)=-(F3_(2:i-1)-F3_(1:i-2))/dx;%時(shí)間導(dǎo)數(shù)平均值U1tav(2:i-1)=0.5.*(U1t(2:i-1)+U1t_(2:i-1));U2tav(2:i-1)=0.5.*(U2t(2:i-1)+U2t_(2:i-1));U3tav(2:i-1)=0.5.*(U3t(2:i-1)+U3t_(2:i-1));%最終校正值U1(k+1,2:i-1)=U1(k,2:i-1)+U1tav(2:i-1).*dt(k);U2(k+1,2:i-1)=U2(k,2:i-1)+U2tav(2:i-1).*dt(k);U3(k+1,2:i-1)=U3(k,2:i-1)+U3tav(2:i-1).*dt(k);rho(k+1,2:i-1)=U1(k+1,2:i-1)./A(2:i-1);V(k+1,2:i-1)=U2(k+1,2:i-1)./U1(k+1,2:i-1);T(k+1,2:i-1)=(r-1).*(U3(k+1,2:i-1)./U1(k+1,2:i-1)-r/2.*V(k+1,2:i-1).^2);%入流邊界值rho(k+1,1)=1;T(k+1,1)=1;U1(k+1,1)=A(1);U2(k+1,1)=2.*U2(k+1,2)-U2(k+1,3);V(k+1,1)=U2(k+1,1)./U1(k+1,1);U3(k+1,1)=U1(k+1,1).*((T(k+1,1)./(r-1))+r/2.*V(k+1,1).^2);%出流邊界值U1(k+1,i)=2.*U1(k+1,i-1)-U1(k+1,i-2);U2(k+1,i)=2.*U2(k+1,i-1)-U2(k+1,i-2);U3(k+1,i)=2.*U3(k+1,i-1)-U3(k+1,i-2);%由于不需要返回原變量的出流邊界值,故這里省去了原變量出流邊界值的計(jì)算 end %繪圖 無(wú)量綱質(zhì)量流量在六個(gè)不同時(shí)刻的瞬時(shí)分布 figure; plot(x,U2(1,:),'k--'); hold on; plot(x,U2(101,:),'b-'); hold on; plot(x,U2(201,:),'y-'); hold on; plot(x,U2(701,:),'m-'); axis([0,3,0.35,0.7]); title('不同時(shí)刻質(zhì)量流量的變化'); ylabel('無(wú)量綱質(zhì)量流量'),xlabel('無(wú)量綱軸向距離'); text(2.6,0.58,'700\Deltat'); text(1.8,0.56,'200\Deltat'); text(1.5,0.66,'100\Deltat'); text(1.5,0.6,'0\Deltat');二、計(jì)算結(jié)果展示
無(wú)量綱質(zhì)量流量在四個(gè)不同時(shí)刻的瞬時(shí)分布
總結(jié)
以上是生活随笔為你收集整理的拟一维喷管流动的数值解——亚声速-超声速等熵喷管流动的守恒型CFD解法(MacCormack方法)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 没有什么秘密的学习方法
- 下一篇: 计算机考研 东华大学,2017考研:计算