import math
import decimal
import numpy as np
from decimal import *
wnx=31#最后一个网格记数31
dx=3/(wnx-1)#网格的大小
bzb=1.4#比热比
dtb=200
C = 0.5
at=0.0201
x=np.zeros((wnx,1))
A=np.zeros((wnx,1))
A1=np.zeros((wnx,1))
midu=np.zeros((wnx,dtb+1))
T=np.zeros((wnx,dtb+1))
V=np.zeros((wnx,dtb+1))
t=np.zeros((wnx,dtb+1))
dt=np.zeros((1,wnx+1))
midut=np.zeros((wnx,dtb+1))
Tt=np.zeros((wnx,dtb+1))
Vt=np.zeros((wnx,dtb+1))
midut1=np.zeros((wnx,dtb+1))
Tt1=np.zeros((wnx,dtb+1))
Vt1=np.zeros((wnx,dtb+1))
dtbshu=np.zeros((1,dtb))
y1=np.zeros((wnx,dtb+1))
ma=np.zeros((wnx,dtb+1))
for i in range(0,wnx):
x[i]=round(3*(i)/(wnx-1),3)
A[i]= round(float(1+2.2*(x[i]-1.5)**2),5)
midu[i,0]=round(float(1-0.3146x[i]),3)#出始密度
T[i,0]=round(float(1-0.2314
x[i]),3)
V[i,0]=round(float(0.1+1.09*x[i])*math.sqrt(T[i,0]),3)

print(V[15,0]),print(V[16,0]),print(A[15]),print(A[16])

print(T[15,0]),print(T[16,0])

print(midu[15,0]),print(midu[16,0])

print(“x方向”,[i[0]for i in x])
print(“面积”,[i[0]for i in A])
print(“密度”,[i[0]for i in midu])
print(“速度”,[i[0]for i in V])
print(“能量”,[i[0]for i in T])
print(V[16,0])

print(“压力”,[i[0]for i in y1])

print(“马赫数”,[i[0]for i in ma])

midu[0,0]=1
T[0,0]=1
V[0,0]=0.1

midu[wnx-1,0]=2*midu[wnx-2,0]-midu[wnx-3, 0]

T[wnx-1,0] = 2*T[wnx-2,0]-T[wnx-3,0]

V[wnx-1,0] = 2*V[wnx-2,0]-V[wnx-3,0 ]

for i in range(0,30):
A1[i]=math.log(A[i])
for i in range(1,30):
midut[i,0] =round( -V[i,0] * (midu[i+1,0]-midu[i,0])/dx-midu[i,0](V[i+1,0]-V[i,0])/dx-midu[i,0]V[i,0](math.log(A[i+1])-math.log(A[i]))/dx,4)
Vt[i,0]=round(-V[i,0](V[i+1,0]-V[i,0])/dx-((T[i+1,0]-T[i,0])/dx+T[i,0]*(midu[i+1,0]-midu[i,0])/(midu[i,0]*dx))/bzb,4)
# Tt[i, 0] = round(-V[i, 0] * (T[i + 1, 0] - T[i, 0]) / dx - (bzb - 1) * T[i, 0] * (
# (V[i + 1, 0] - V[i, 0]) / dx + V[i, 0] * (math.log(A[i + 1]) - math.log(A[i])) / dx), 4)
ss=A1[i + 1] - A1[i]
Tt[i, 0] =np.round(-V[i, 0] * (T[i + 1, 0] - T[i, 0]) / dx - (bzb - 1) * T[i, 0] * ((V[i + 1, 0] - V[i, 0]) / dx + V[i, 0] *ss / dx),3)

print(midut[15,0]),print(Vt[15,0]),print(Tt[15,0])
print([i[0]for i in midut])
print([i[0]for i in Vt])
print([i[0]for i in Tt])

s=len(T)
print(s)
# 各网格点∆t的最小值
# for i in range(0, 30):
# t [i] = C * (dx / (V[i,j] + math.sqrt(T[i,j])))
# at = min(t[i]) # 找出了各网格点∆t的最小值并赋值给at
# print(at)
for i in range(30):
midu[i,0] = round(midu[i,0] + midut[i,0]at,3)
V[i,0]= round(V[i,0] + Vt[i,0] * at,3)
T[i,0]=round(T[i,0] + Tt[i,0] * at,3)
print(midu[15,0]),print(V[15,0]),print(T[15,0])
for i in range(0,30):
midut1[i,0] =round(-V[i,0]
(midu[i,0]-midu[i-1,0])/dx-midu[i,0](V[i,0]-V[i-1,0])/dx-V[i,0]midu[i,0](math.log(A[i])-math.log(A[i-1]))/ dx,3)
Vt1[i,0]= round(-V[i,0] * (V[i,0]-V[i-1,0])/dx-((T[i,0]-T[i-1,0])/dx+T[i,0](midu[i,0]-midu[i-1,0])/dx/midu[i,0])/bzb,1)
Tt1[i,0]= round(-V[i,0](T[i,0]-T[i-1,0])/dx-(bzb-1)T[i,0]((V[i,0]-V[i-1,0])/dx+(V[i,0]((math.log(A[i])-math.log(A[i-1]))/dx))),5)
print(midut[15,0]),print(Vt[15,0]),print(Tt[15,0])
print(midut[15,0]),print(Vt[15,0]),print(Tt[15,0])
print([i[0]for i in midut1])
print([i[0]for i in Vt1])
print([i[0]for i in Tt1])
s=len(Tt1)
print(s)
s=len(Tt1)
print(s)
for i in range(1, 30):
midut1[i,0]=round(0.5*(midut1[i,0]+midut[i,0]),3)
Vt1[i,0]=round(0.5*(Vt1[i,0]+Vt[i,0]),3)
Tt1[i,0]=round(0.5*(Tt1[i,0]+Tt[i,0]),4)
print(midut1[15,0]),print(Vt1[15,0]),print(Tt1[15,0])
print(midut[15,0]),print(Vt[15,0]),print(Tt[15,0])
s=len(Tt1)
print(s)
for i in range(1, 30):
midu[i,0]=round(midu[i,0]+midut1[i,0]*at,3)
V[i,0]=round(V[i,0]+Vt1[i,0]*at,3)
T[i,0]=round(T[i,0]+Tt1[i,0]*at,3)

V[0, 0] = round(2 * V[1, 0] - V[2, 0],3)
midu[29, 0] =round( 2 * midu[28, 0] - midu[27,0],3)
T[29, 0] = round(2 * T[28, 0] - T[27, 0],3)
midu[30, 0] =round( 2 * midu[29, 0] - midu[28,0],3)
T[30, 0] = round(2 * T[29, 0] - T[28, 0],3)
V[30, 0] = round(2 * V[29, 0] - V[28, 0],3)

print(midut[15,0]),print(Vt[15,0]),print(Tt[15,0])

for i in range(31):
y1[i,0]=round(midu[i,0]*T[i,0],4)
ma[i,0]=round(V[i,0]/(math.sqrt(T[i,0])),3)
print(“x方向”,[i[0]for i in x])
print(“面积”,[i[0]for i in A])
print(“密度”,[i[0]for i in midu])
print(“速度”,[i[0]for i in V])
print(“能量”,[i[0]for i in T])
print(“压力”,[i[0]for i in y1])
print(“马赫数”,[i[0]for i in ma])

用Python实现拟一维喷管流动的数值解相关推荐

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

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

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

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

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

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

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

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

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

    这篇博文将剩下的问题解决完.第一篇在: https://mp.csdn.net/postedit/101038218 在初始化步骤之后,就到了计算下一时间步的步骤了.计算之前先讲一讲这里用到的计算方法 ...

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

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

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

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

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

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

  9. python中的一维卷积conv1d和二维卷积conv2d

    先来看二维卷积conv2d conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True, data_format="NHWC& ...

最新文章

  1. Asp.NetCore MVC Web 应用
  2. Native与H5交互的一些解决方法
  3. ant的if-else
  4. [Animations] 快速上手 iOS10 属性动画
  5. 安装MariaDB数据库(未完成)
  6. pytorch —— 模型容器与AlexNet构建
  7. C语言实现二叉树-04版
  8. python编程 迷你世界_迷你编程电脑版|迷你世界迷你编程下载 v1.0官方版 - 绿点软件站...
  9. JavaScript学习之Object(下)this
  10. python百题百练 二级题目_计算机二级选择题(公共基础新大纲)
  11. #iOS问题记录# 关于UITableViewcel的分割线去掉问题
  12. MyBatis学习(四)MyBatis缓存
  13. 想问问大家,使用qt开发的wps安装包是如何做到32位64位系统兼容的
  14. DOCs常用命令集合cmd常用api集合
  15. java和区块链哪个难_java 区块链中设计合理的难度系数
  16. android 人生日历,人生日历Android版 功能初体验
  17. python的mapl画图y轴排_在matplotlib中绘制多个y轴和颜色栏
  18. CF1611E1 Escape The Maze (easy version)+ CF1611E2 Escape The Maze (hard version)
  19. 蓝汛之获取DAC输出能量【篇】
  20. idea里把选中的变为大写或小写快捷键

热门文章

  1. android studio anim_type is not translated in ar (Arabic), cs (Czech),
  2. Excel怎么在一列关键字后面加相同的词
  3. 【stata】统计图——学习教程全记录(02)
  4. 在PyCharm中的部分快捷键及关闭死循环
  5. 追逐算法之--牛鞭的子弹是怎样练成的(6)--贝塞尔强化
  6. Linux centos安装Firefox、Chrome浏览器
  7. 《Qt5+播放gif动图》
  8. 课程导学第一章计算机基础,计算机基础实践导学课程教案
  9. Android系统分区简介
  10. 基于MATLAB的高阶(两个二阶级联构成的四阶以及更高阶)数字图形音频均衡器系数计算(可直接用于DSP实现)