如何设置激波管问题,以便解决方案包括具有指定马赫数的激波

计算科学 pde 流体动力学 双曲-pde
2021-12-19 01:59:50

用于冲击波建模的著名且方便的测试用例之一是 1D Sod 的冲击管。这是气体动力学的可压缩欧拉方程的黎曼问题。初始设置是通过用隔膜划分域一半来完成的。域的左侧和右侧具有选择的初始值以生成冲击波。左侧区域的初始压力和密度值高于右侧区域。隔膜两侧的速度为零。

就我而言,我知道冲击波的初始马赫数和右手边的初始值。我想知道当只给出马赫数和初始右侧状态时如何确定左侧的初始值。

2个回答

我已经在 IPython notebook 中使用 PyClaw 实现了下面派生的解决方案如果您下载它,您可以调整初始值并查看计算的解决方案。

一般设置

在一维欧拉方程的黎曼问题的解中,一般有 3 个波。其中两个是真正非线性的。另一种是接触不连续性,它只会带来密度的跳跃。我的理解是,您想设置初始左右状态,使得速度在任何地方最初都为零,最右边的波是相对于右状态声速移动的冲击波,最左边的波是稀疏化(您没有指定最后一个要求,但它会使问题类似于 Sod 冲击管)。下图描述了这种情况,它也建立了我将使用的符号。M

黎曼解状态

寻找震惊背后的状态

μ=2(M21)M(γ+1).

使用 Rankine-Hugoniot 条件,我们发现接触右侧的状态由以下给出:

ρr=ρrMMμu=μcrp=pr(2M21)γ+1γ+1.

如果您愿意为左侧状态设置一个非零速度,您可以在这里停下来并使用刚刚为左侧状态导出的值。如果你想要,请继续阅读。ul=0

寻找左侧状态

接下来,我们知道左状态和状态必须通过左向稀疏连接。相关的黎曼不变量意味着[ρl,u,p]

ρl=4γpl(γ1)2u2(1(ppl)γ12γ)2

ρl=(ppl)1/γρl.

因此,我们可以为指定任何我们喜欢的值,并根据上面的等式计算剩余的值唯一的问题是生成的稀疏应该满足熵条件,如果则为真。plρl,ρlpl>p

笔记

我使用Randall Leveque 关于有限体积方法的文本的第 14 章解决了这个问题。

有一个可能的左状态的 1 参数族(一旦您检查未知数和约束的数量,这似乎很明显)。

如果您没有将左态速度限制为零,则可以通过将左态设为来设置仅出现冲击波的问题。但是由于您想要零初始速度,因此有必要使用上述完整过程。(ρr,u,p)T

如果我记得我的可压缩物,您想使用正态冲击方程您还需要选择一个γ