我正在尝试解决一个非常简单的平流 PDE
在哪里.
我已经能够实现一个简单的 Modelica 代码来求解方程,它适用于但是,具有完全相同的边界条件。所以我的问题是为什么我的代码无法完成模拟:
- 这是一个数学问题吗?像这样的 PDE 从来没有解决方案?
- 这是有限差分限制,也许我应该使用其他数值方法?
- 还是代码或 Modelica 编译器有问题?
如果您能帮我解决这个问题,我将不胜感激。
PS我的目标是学习如何在Modelica中求解偏微分方程,这只是一个例子。
我正在尝试解决一个非常简单的平流 PDE
在哪里.
我已经能够实现一个简单的 Modelica 代码来求解方程,它适用于但是,具有完全相同的边界条件。所以我的问题是为什么我的代码无法完成模拟:
如果您能帮我解决这个问题,我将不胜感激。
PS我的目标是学习如何在Modelica中求解偏微分方程,这只是一个例子。
不过,它在 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]
。