有限差分法不适用于具有负系数的平流 PDE

计算科学 pde 平流 开放模型
2021-12-10 23:45:49

我正在尝试解决一个非常简单的平流 PDE

ut+cux=0

在哪里c<0.

我已经能够实现一个简单的 Modelica 代码来求解方程,它适用于c>0但是,具有完全相同的边界条件。所以我的问题是为什么我的代码无法完成模拟:

  1. 这是一个数学问题吗?像这样的 PDE 从来没有解决方案c<0?
  2. 这是有限差分限制,也许我应该使用其他数值方法?
  3. 还是代码或 Modelica 编译器有问题?

如果您能帮我解决这个问题,我将不胜感激。

PS我的目标是学习如何在Modelica中求解偏微分方程,这只是一个例子。

1个回答

不过,它在 c>0 的情况下工作得很好,边界条件完全相同。

那是你的问题。查特征的方法:

https://web.stanford.edu/class/math220a/handouts/firstorder.pdf

一维平流问题的特征在一个方向流动。所以涉及到两件事。一是间隔一侧的 BC 很重要,因为特征只在一个方向上流动。其次,

https://en.wikipedia.org/wiki/Upwind_scheme

迎风方案必须根据特征的方向改变方向。因此,您需要更改实现以匹配sign(c). c<0,您需要使用u[i+1]而不是u[i-1]