PyPDE:理解代码以及如何修复边界条件?

问题描述

我正在寻找一种使用 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 (将#修改为@)