我们可以使用(轻微的)密度变化来模拟不可压缩流动以产生压力吗?

计算科学 流体动力学 纳维斯托克斯 不可压缩
2021-11-28 05:42:57

一种常见的方法是,不可压缩流的速度散度为 0;用它来求解 Navier Stokes 动量方程中的压力。或者,使用亥姆霍兹分解“投影”速度场的零散度分量。

相反,我们可以将正/负散度视为膨胀/压缩,并从气体方程中获得压力吗?这似乎很简单,复制了大自然的做法。(类似于浅水方程,水的深度直接给出静水压力)。

是不是太天真了?在效率/准确性/稳定性方面比解决问题更糟糕?但我根本没有看到它讨论过 - 它可能在某些情况下效果很好(尽管不是大部分 cfd 似乎起源的工程/太阳物理学应用程序)。我很好奇。

到目前为止我的理解:不可压缩的流动不需要流体是不可压缩的。例如,空气是可压缩的,但可以视为不可压缩的流动。这要求流体中的速度的幅度远小于流体中的声速(压力波)。声速并不直接导致不可压缩性,而是表明流体的硬度;弹性对压力的反应强度。流体速度与声速之比为马赫数 柯西数,是“流动中惯性力和压缩力(弹性力)之间的比率MM2. 所以我认为:如果压力比流体本身传递得更快,我们就会得到“不可压缩的流动”。

顺便说一句:我主要研究计算机动画的 cfd,所以我可能遗漏了很多。

1个回答

水(和其他被认为不可压缩的流体)在现实中当然是可压缩的——只是在我们正在建模的流动所涉及的压力和速度下,压缩程度并不高。在我们考虑的压力范围内,一个很好的近似值是

ρ=ρ0(1+αp)
在哪里ρ0是参考压力下的参考密度,p由流动引起的动态压力,和α可压缩性。

当我们说流体不可压缩时,实际上我们的意思是αp(对于典型压力)仅远小于 1,因此可以忽略不计。换句话说,质量守恒方程

tρ+(ρu)=0
很好地近似于
u=0.
但是,因为在我们考虑的范围内,ρp是线性相关的,我们可以在方程中选择一个或另一个。换句话说,如果你真的想,你可以把 Navier-Stokes 方程写成
tu+uuνΔu+1αρ0ρ=0,u=0,
因此以速度和密度为主要变量。这将是不常见的,但同样有效。然后,您将根据密度计算压力,而不是相反。为方便起见,我们只是在 Navier-Stokes 方程的通常公式中选择压力,因为它清楚地表明压力——不是密度的倍数——是不可压缩性的拉格朗日乘数。但两种说法都是合理的。