一、Matlab代码片

%全亚声速等熵喷管流动 非守恒型麦考马克方法数值求解
clear; %清理内存变量
clc; %清理工作窗中的所有显示内容
r=1.4; %比热比
L=3; %喷管长度
i=31; %网格数目
C=0.5; %科朗数
x=linspace(0,L,i); %网格点横坐标
N=5001; %时间步
dx=L/(i-1); %空间步长
dt(1:N)=0; %时间步长
Pe=0.93; %喷管两端压力比
A(1:31)=0; %预分配内存
for j=1:31
if(x(j)<1.5)A(j)=1+2.2*(x(j)-1.5).*(x(j)-1.5); %喷管面积
elseA(j)=1+0.2223*(x(j)-1.5).*(x(j)-1.5);%喷管面积
end
end
rho(N,i)=0; %流场密度赋值
T(N,i)=0; %流场温度赋值
V(N,i)=0; %流场速度赋值
%预分配内存
rhotav2(1:1400,1:30)=0;  Vtav2(1:1400,1:30)=0;
%初始条件
rho(1,:)=1-0.023*x; %流场密度初值
T(1,:)=1-0.009333*x; %流场温度初值
V(1,:)=0.05+0.11*x; %流场速度初值
%按时间步长推进
for k=1:N-1%计算预估步偏导数rhot(1:i-1)=-V(k,1:i-1).*(rho(k,2:i)-rho(k,1:i-1))/dx-rho(k,1:i-1)....*(V(k,2:i)-V(k,1:i-1))/dx-rho(k,1:i-1).*V(k,1:i-1)....*(log(A(2:i))-log(A(1:i-1)))/dx;Vt(1:i-1)=-V(k,1:i-1).*(V(k,2:i)-V(k,1:i-1))/dx-1/r.*((T(k,2:i)...-T(k,1:i-1))/dx+T(k,1:i-1)./rho(k,1:i-1).*(rho(k,2:i)-rho(k,1:i-1))/dx);Tt(1:i-1)=-V(k,1:i-1).*(T(k,2:i)-T(k,1:i-1))/dx-(r-1).*T(k,1:i-1)....*((V(k,2:i)-V(k,1:i-1))/dx+V(k,1:i-1).*(log(A(2:i))-log(A(1:i-1)))/dx);%确定最小时间步长t=C*dx./(V(k,2:i-1)+sqrt(T(k,2:i-1)));dt(k)=min(t);%计算预估值rho_(1:i-1)=rho(k,1:i-1)+rhot(1:i-1).*dt(k);V_(1:i-1)=V(k,1:i-1)+Vt(1:i-1).*dt(k);T_(1:i-1)=T(k,1:i-1)+Tt(1:i-1).*dt(k);%校正偏导数rhot_(2:i-1)=-V_(2:i-1).*(rho_(2:i-1)-rho_(1:i-2))/dx-rho_(2:i-1)....*(V_(2:i-1)-V_(1:i-2))/dx-rho_(2:i-1).*V_(2:i-1).*(log(A(2:i-1))-log(A(1:i-2)))/dx;Vt_(2:i-1)=-V_(2:i-1).*(V_(2:i-1)-V_(1:i-2))/dx-1/r.*((T_(2:i-1)...-T_(1:i-2))/dx+T_(2:i-1)./rho_(2:i-1).*(rho_(2:i-1)-rho_(1:i-2))/dx);Tt_(2:i-1)=-V_(2:i-1).*(T_(2:i-1)-T_(1:i-2))/dx-(r-1).*T_(2:i-1)....*((V_(2:i-1)-V_(1:i-2))/dx+V_(2:i-1).*(log(A(2:i-1))-log(A(1:i-2)))/dx);%时间导数平均值rhotav(2:i-1)=0.5*(rhot(2:i-1)+rhot_(2:i-1)); rhotav2(k,2:i-1)=abs(rhotav(2:i-1));Vtav(2:i-1)=0.5*(Vt(2:i-1)+Vt_(2:i-1));Vtav2(k,2:i-1)=abs(Vtav(2:i-1));Ttav(2:i-1)=0.5*(Tt(2:i-1)+Tt_(2:i-1));%流场变量校正值rho(k+1,2:i-1)=rho(k,2:i-1)+rhotav(2:i-1)*dt(k);V(k+1,2:i-1)=V(k,2:i-1)+Vtav(2:i-1)*dt(k);T(k+1,2:i-1)=T(k,2:i-1)+Ttav(2:i-1)*dt(k);%入流边界值V(k+1,1)=2*V(k+1,2)-V(k+1,3);rho(k+1,1)=1;T(k+1,1)=1;%出流边界值rho(k+1,i)=2*rho(k+1,i-1)-rho(k+1,i-2);V(k+1,i)=2*V(k+1,i-1)-V(k+1,i-2);T(k+1,i)= Pe./rho(k+1,i);%马赫数Ma=V(1:k+1,1:i)./(sqrt(T(1:k+1,1:i)));%流场压强P=rho(1:k+1,1:i).*T(1:k+1,1:i);
end
%绘图 喷管喉道处密度、温度、压力和马赫数的变化
figure;
subplot(2,2,1),plot(1:5001,rho(1:5001,16),'b-');
ylabel('\rho/\rho_0'),xlabel('Timestep'); title('无量纲密度变化');
subplot(2,2,2),plot(1:5001,T(1:5001,16),'r-');
ylabel('T/T_0'),xlabel('Timestep');title('无量纲温度变化');
subplot(2,2,3),plot(1:5001,P(1:5001,16),'k-');
ylabel('P/P_0'),xlabel('Timestep');title('无量纲总压变化');
subplot(2,2,4),plot(1:5001,Ma(1:5001,16),'m-');
ylabel('Ma'),xlabel('Timestep');title('马赫数变化');
%绘图 喷管喉道处无量纲密度和速度时间导数的变化
figure;
plot(1:5000,rhotav2(1:5000,16),'k-');
ylabel('残差'),xlabel('Timestep');
title('喷管喉道处无量纲密度和速度时间导数的变化');
hold on;
plot(1:5000,Vtav2(1:5000,16),'k--');
%绘图 无量纲质量流量在三个不同时刻的瞬时分布
figure;
plot(x,rho(1,1:i).*V(1,1:i).*A(1:i),'k--');
hold on;
plot(x,rho(501,1:i).*V(501,1:i).*A(1:i),'r-');
hold on;
plot(x,rho(5001,1:i).*V(5001,1:i).*A(1:i),'b-');
title('不同刻质量流量的变化');
ylabel('无量纲质量流量'),xlabel('无量纲轴向距离');
text(3.2,0.47,'5000\Deltat');
text(3.2,0.40,'500\Deltat');
text(2.0,0.25,'0\Deltat');
%绘图 不同时刻压力分布的变化
figure;
plot(x,rho(1,1:i).*T(1,1:i),'k--');
hold on;
plot(x,rho(1001,1:i).*T(1001,1:i),'m-');
hold on;
plot(x,rho(501,1:i).*T(501,1:i),'r-');
hold on;
plot(x,rho(5001,1:i).*T(5001,1:i),'b-');
hold on;
title('不同时刻压力分布的变化');
ylabel('P/P_0'),xlabel('x/L');
text(1.5,0.96,'0\Deltat');
text(2.0,0.91,'500\Deltat');
text(2.2,0.89,'1000\Deltat');
text(2.3,0.867,'5000\Deltat');

二、计算结果展示

1.喷管喉道处密度、温度、压力和马赫数的变化

2.喷管喉道处无量纲密度和速度时间导数的变化

3.无量纲质量流量在三个不同时刻的瞬时分布

4.无量纲压力在四个不同时刻的瞬时分布

拟一维喷管流动的数值解——全亚声速等熵喷管流动的非守恒型CFD解法(MacCormack方法)相关推荐

  1. 拟一维喷管流动的数值解——亚声速-超声速等熵喷管流动的非守恒型CFD解法(MacCormack方法)

    一.Matlab代码片 %亚声速-超声速等熵喷管流动 非守恒型麦考马克方法数值求解 clear; %清理内存变量 clc; %清理工作窗中的所有显示内容 r=1.4; %比热比 L=3; %喷管长度 ...

  2. 拟一维喷管流动的数值解——亚声速-超声速等熵喷管流动的守恒型CFD解法(MacCormack方法)

    一.Matlab代码片 %亚声速-超声速等熵喷管流动守恒形CFD解法 MacCormack方法 clear; %清理内存变量 clc; %清理工作窗中的所有显示内容 r=1.4; %比热比 L=3; ...

  3. Matlab 编程 《计算流体力学基础及应用(约翰D安德森)》 全亚声速等熵喷管流动CFD解法 拉瓦尔喷管 非守恒形式方程解法

    Matlab 编程 <计算流体力学基础及应用(约翰D安德森)> 全亚声速等熵喷管流动CFD解法 拉瓦尔喷管 非守恒形式方程解法 问题之 全亚声速等熵喷管流动的CFD解法 初始化参数 迭代过 ...

  4. 喷管流动的守恒型CFD解法及激波捕捉(附完整代码)

    入门CFD,主要参考书目<计算流体力学基础及其应用>(John D.Anderson 著,吴颂平等 译) 实现了 第 7.6 节 激波捕捉  的代码,采用的是 MacCormack 方法, ...

  5. 亚声速 – 超声速等熵喷管流动 数值模拟(文字)

    亚声速 – 超声速等熵喷管流动 问题描述 流过拉伐尔喷管的定常等熵流动 在喷管,流动经过等熵地加速已达到超声速 喷管出口处流体的压力.温度.速度和马赫数分别记为 在喷管收缩段,流动是亚声速的:在喷管的 ...

  6. 亚声速-超声速等熵喷管拟一维流动的CFD解法(附完整代码)

    入门CFD,主要参考书目<计算流体力学基础及其应用>(John D.Anderson 著,吴颂平等 译) 实现了 第 7.3 节 亚声速-超声速等熵喷管流动的CFD解法 的代码,采用的是  ...

  7. 持续不定期更新:CFDC++之拟一维喷管流动的数值解(1)

    前言: 学习openfoam,或者准确来说,CFD,断断续续也有5个多月.3月底在本科学校写下的第一篇openfoam学习的博文,到现在在研一的学校里,尝试自己写代码计算cfd问题,慢慢一点一点地构建 ...

  8. java pdf 修改内容_生成PDF全攻略之在已有PDF上添加内容的实现方法

    项目在变,需求在变,不变的永远是敲击键盘的程序员..... PDF 生成后,有时候需要在PDF上面添加一些其他的内容,比如文字,图片.... 经历几次失败的尝试,终于获取到了正确的代码书写方式. 在此 ...

  9. 营销型网站运营推广方法有哪些?最全的网站推广方式盘点!

    营销型网站是企业进入互联网的一个工具,但是并不是代表有了营销型网站就可以为企业带来大量的流量,网站知识为企业流量提供转化的工具,而流量的来源还是依赖运营推广,今天牛商网就为你讲解一下营销型网站运营推广 ...

最新文章

  1. 七、处理机调度概念、层次
  2. 双栈排序java_双栈排序(Java)
  3. 骚操作!昨晚停网,我写了一段Python代码破解了隔壁小姐姐的wifi密码...
  4. 安卓系统挂载NTFS格式硬盘_苹果电脑挥之不去的烦恼!怎样兼容NTFS格式的U盘移动硬盘?...
  5. html中可以自定义属性,,,妈的竟然才知道..
  6. linux中c语言生日快乐_生日快乐,Linux:27岁
  7. es6 Object.getOwnPropertyDescriptors()
  8. 互联网架构设计漫谈 (1)-概述
  9. android canvas帧动画,html5视频,canvas,画布
  10. 如何加强站内搜索功能
  11. grub2与grub区别
  12. 剑指offer 33 把数组排成最小的数
  13. 4 基于pyecharts的python数据可视化——散点图和折线图的绘制
  14. 两年软件开发工作总结及未来展望
  15. oracle的安装教程
  16. 微信小程序拼团功能之表结构
  17. 25章 SPI—读写串行FLASH
  18. 大数据统计大量股票开盘平均价和收盘平均价
  19. EEE模式的3DES安全性分析
  20. 2022!影响百万用户金融信用评分,Equifax被告上法庭,罪魁祸首——『数据漂移』!

热门文章

  1. notepad拼心形_用shell脚本写个心形动画表格
  2. python将一个正整数分解质因数
  3. iwnpi 5621ds RF测试指令
  4. 历史记录---4月6日
  5. Java基础 | 多态
  6. 推荐系统系列:新浪搜索团队FiBiNET理论和代码实现
  7. 编译工具make、gmake、cmake、nmake和Dmake的区别
  8. 物体检测及分类方法总结(提供了很多论文和代码链接)
  9. 后渗透篇:CLSID大全
  10. IT视频课程集(包含各类Oracle、DB2、Linux、Mysql、Nosql、Hadoop、BI、云计算、编程开发、网络、大数据、虚拟化