从守恒形式的平流方程开始。
üŤ= (a (x )u )X
其中是取决于空间的速度,而是守恒物种的浓度。u一个(x )ü
离散通量(在网格点之间的像元边缘上定义通量)给出
u t = 1F= 一个(x )u
üŤ= 1H(fj − 12- ˚Fj + 12)
使用一阶迎风,我们将通量近似为
Fj − 12= a (xj − 12)你j − 1Fj + 12= a (xj + 12)你Ĵ
,
üŤ= 1H( a (xj − 12)你j − 1− a (xj + 12)你Ĵ)
如果是常数,则将简化为熟悉的迎风方案,即
。u t = a一个(x )üŤ= 一个H(uj − 1- 你Ĵ)
我的问题是,如何处理平流方程的非常数系数?速度是在细胞中心定义的,因此下面是一种简单的方法,
a (xj − 12)→ a (xj − 1)a (xj + 12)→ a (xĴ)
这是我的首选方法,因为它非常容易实现。
但是,我们也可以使用(我猜是)平均方案来定义像元边缘的速度
a (xj − 12)→ 12a (xj − 1)+ 12a (xĴ)a (xj + 12)→ 12a (xĴ)+ 12a (xj + 1)
他在LeVeque的书中说:
到目前为止,我们已经假设可变速度由第j个网格单元内的常数指定。在某些情况下,更自然的是假设在每个单元界面上指定了速度。a j a j − 1一个(x )一种Ĵ一种j − 12
但是在那之后他并没有做太多的阐述。什么是常用方法?
我正在解决一个守恒问题(我使用对流方程作为连续性方程),所以我想确保在应用离散化之后能够保留守恒属性。我想避免有关这些可变系数的任何隐藏惊喜!有人有一些一般性的意见和指导吗?
更新下面有两个非常好的答案,我只能选择一个:(