问题描述
我正在寻找一种使用 Python 轻松求和一维可压缩流的好方法。现在,我正在尝试使用 PyPDE 库解决这个问题。 他们在他们的网站上有很好的例子,但几乎没有解释(请让我知道是否有任何可用的文档)。基于他们的 1D 示例,我不得不写出以下内容:
from numba import njit
from numpy import zeros
# material constants
gam = 1.4
@njit
def internal_energy(E,v):
return E - (v[0]**2 + v[1]**2 + v[2]**2) / 2
def F(Q,d):
r = Q[0]
E = Q[1] / r
v = Q[2:5] / r
lam = Q[5] / r
e = internal_energy(E,v)
# pressure
p = (gam - 1) * r * e
F_ = v[d] * Q
F_[1] += p * v[d]
F_[2 + d] += p
return F_
from numpy import inner,array
def energy(r,p,v):
return p / ((gam - 1) * r) + inner(v,v) / 2
nx = 100
L = [1.]
tf = 5
rL = 2.
pL = 3.
vL = [0,0]
EL = energy(rL,pL,vL)
rR = 0.887565
pR = 2.
vR = [0,0]
ER = energy(rR,pR,vR)
QL = rL * array([1,EL] + vL)
QR = rR * array([1,ER] + vR)
Q0 = zeros([nx,5])
for i in range(nx):
if i / nx < 0.99:
Q0[i] = QL
else:
Q0[i] = QR
import matplotlib.pyplot as plt
from pypde import pde_solver
out = pde_solver(Q0,tf,L,F=F,stiff=False,flux='roe',order=3)
for i in range(len(out[:,:,0])):
plt.plot(out[i,0])
plt.show()
尽管如此,我还是在与变量作斗争。我想修复入口 rho 和速度以及出口压力。如果不可能,我希望至少在入口和/或出口修复这些变量。
有什么想法吗?提前致谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)