连续性方程的良好有限差分


22

下面的等式将是一个很好的有限差分离散化:

ρt+(ρu)=0

我们可以考虑一维情况:

ρt+ddx(ρu)=0

由于某种原因,我可以找到的所有方案都是针对拉格朗日坐标的。我暂时想出了这个方案(不考虑j索引):

ρi,jn+1ρi,jnτ+1hx(ρi+1,jn+1+ρi,jn+12uxi+1/2,jnρi,jn+1+ρi1,jn+12uxi1/2n)=0

但是似乎真的不稳定或有一些可怕的稳定条件。是这样吗?

速度实际上是通过达西定律。另外,我们还有状态方程。整个系统还包括一个能量方程和理想气体的状态方程。速度可能变为负数u=kμp


在一维情况下,问题本质上是一阶双曲pde。您是否尝试过使用一阶迎风有限差分方案?
保罗

到目前为止,我正在使用我在问题中写的内容。我的情况实际上是2d。但是由于这是一个经典的方程式,所以我认为也可以使用一些经典的离散化方法。
tiam

您能说明一下逆风方案如何吗?当您在对流术语中使用有限体积法时,我对这个概念很熟悉,但是那里不再有空间派生产品了。
tiam

是否给出了速度场,或者它也满足演化方程?
David Ketcheson

速度实际上是通过达西定律。整个系统还包括一个能量方程和理想气体的状态方程。速度可能变为负值。u=kμp
tiam

Answers:


21

您正在查看质量守恒方程:

dmdt=0

考虑单位体积的质量演化时,可以归结为以通量形式的密度对流方程:

ρt=(ρu)

这样做的好处是,它只是任意标量场的平流方程(在我们的例子中,它恰好是密度),并且(相对)容易解决,只要有足够的时间和空间微分方案,并且初始和边界条件。ρ

在设计有限差分方案时,我们担心收敛性,稳定性和准确性。如果Δ,则方案收敛Δ0。该方案的稳定性确保了当t时,数量A保持有限。该方案的形式准确性表明了偏导数的泰勒展开级数中的截断误差在哪里。查看CFD教科书,以了解有关差分方案的这些基本属性的更多详细信息。ΔAΔtAtΔt0At

现在,最简单的方法是直接进行一阶上游差分。该方案是正定的,保守的和计算有效的。当我们对始终为正(即质量或密度)的量的演化进行建模时,前两个属性尤其重要。

为简单起见,让我们看一维情况:

ρt=(ρu)x

现在是方便的是限定的通量,使得:Φ=ρu

(ρu)x=ΦxΔΦΔxΦi+1/2Φi1/2Δx

这是我们要模拟的示意图:

            u           u
|          -->         -->          |
|    rho    |    rho    |    rho    |
x-----o-----x-----o-----x-----o-----x
     i-1  i-1/2   i   i+1/2  i+1

我们正在评估细胞i的演化。净损益来自于什么来的,所不同的Φ - 1 / 2,什么熄灭,Φ + 1 / 2ρiΦi1/2Φi+1/2。这是我们开始与保罗的答案背道而驰的地方。在真正保守的上游差异中,细胞中心的数量由其细胞边缘沿其运动方向的速度承载。换句话说,如果您想象自己是被平移的数量,并且您正坐在像元中心,那么您将被像元边缘的速度带入前方的像元中。在像元边缘处评估像元边缘处的通量是密度和速度的乘积是不正确的,并且不节省对流量。

传入和传出的通量评估为:

Φi+1/2=ui+1/2+|ui+1/2|2ρi+ui+1/2|ui+1/2|2ρi+1

Φi1/2=ui1/2+|ui1/2|2ρi1+ui1/2|ui1/2|2ρi

磁通量微分的上述处理可确保上游确定性。换句话说,它根据速度的符号来调整差异方向。

Courant-Friedrichs-Lewy(CFL)稳定性准则,当用简单的一阶进行时间微分时,正欧拉微分的公式为:

μ=uΔtΔx1

请注意,在2维中,CFL稳定性标准更为严格:

μ=cΔtΔx12

其中是速度幅度cu2+v2

一些事情要考虑。此方案可能适合或可能不适合您的应用程序,具体取决于您要模拟的过程类型。该方案具有很高的扩散性,适用于没有尖锐梯度的非常平滑的流动。对于较短的时间步长,它也更具扩散性。在一维情况下,如果梯度很小并且,您将获得几乎精确的解。在二维情况下,这是不可能的,并且扩散是各向异性的。μ=1

如果您的物理系统考虑了冲击波或其他类型的高梯度,则应查看较高阶(例如3阶或5阶)的上游微分。另外,可能有必要研究通量校正运输方案系列(Zalesak,1979,JCP);Smolarkiewicz(1984,JCP)对上述方案进行了反扩散校正;Smolarkiewicz(1998,JCP)的MPDATA系列方案。

对于时间差异,一阶正向欧拉差异可能满足您的需求。否则,请研究更高阶的方法,例如Runge-Kutta(迭代)或Adams-Bashforth和Adams-Moulton(多级)。

值得一看CFD研究生级教科书,以总结上述方案以及更多方案。


谢谢你的回答。现在,我清楚地看到了逆风:)。我将尝试现在实施!我想知道,事实是否可以ü每个步骤的变化都会影响稳定性吗?
tiam 2012年

1
不,只要您满足CFL约束。您可以执行自适应时间步长,即ΔŤ=ΔX一种Xü或设定 ΔŤ根据您问题中的最大预期速度保持恒定。请记住,时空差分方法的各种组合将为您提供不同的CFL约束。
milancurcic 2012年

有点怪异,我实现了该方案,并设法将脉冲从一个边界发送到另一个边界,然后再次发送回来(通过反转速度)。但是我一说ü=-Cρ即使速度低于1,它也开始需要极小的时间步长。将动态时间步长设置为您在上面定义的值也无济于事。
tiam

或者,也许一点都不奇怪,也许您在上面的评论没有管辖以下情况: üρ耦合。
tiam

形式化推导了稳定性约束和精度阶数,并且对线性对流方程有效- ü 不依赖 ρ。过去,我已经成功地将此方程与u,v的非线性Navier-Stokes方程耦合。在这种情况下,不能满足形式上的稳定性约束,但要使增量保持合理的低水平。设定时ü=-Cρ,你的方程变成 ρt=C[(ρ)2+ρ2ρ]. You should investigate (if possible) what is the stability criterion for your equation.
milancurcic

13

In the 1D case, you don't want to use a forward or central difference scheme for the spatial derivative term (ddx) because they are numerically unstable. Instead, it is better to discretize the equation with an explicit backwards (upwind) finite difference for the spatial derivative:

ρik+1ρikΔt+ρikUikρi1kUi1kΔx=0.

If the velocities are positive, then this backward scheme is stable. If they are negative, then a forward difference will work. Regardless, there is always a constraint on your choice of Δx and Δt (courant number) to make the scheme stable.


Would evaluating ρ at k+1 instead remove the Δt constraint?
tiam

我不太确定。。。我想您必须检查截断错误以确保它正确地逼近PDE。你可能要考虑本网站上的其他隐式的方案:web.mit.edu/dongs/www/publications/projects/...
保罗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.