线性对流问题的边界条件

计算科学 流体动力学 边界条件 平流
2021-12-26 18:55:39

我正在解决由以下给出的一维平流问题:

ut=cux

其中c是波速,u是未知场变量,x和t是时间和空间。我正在使用中心差分来离散空间。我正在对流的初始配置文件是由u

u(x,t)={1for0<x<10for1<x<2,

我的问题是关于边界条件。A 在边界的时刻,如果 c>0 我设置(其中 u(1) 是第一个节点处 u 的值),但我最终在公元前。uL=u(1,t)

我也尝试过设置(R 表示右,L 表示左),这也给了我振荡,但更明智。我知道中心差分寄生振荡是预期的,但我不确定正确的边界条件,我希望能得到一些帮助。我在网上搜索了一个明确的答案,但没有成功。uL=1uR=0

我还通过设置 if c>0 解决了上风问题,这似乎有效。uL=u(1)

谢谢你。

1个回答

让我简要解释一种有用且简单的方法,如何更好地理解恒速波动方程的边界条件。这个想法是您可以在无限区间上考虑您的问题,并考虑对这种情况的边界条件的等效定义。

因此,例如,如果您将初始条件扩展为对所有实数都有效,那么您可以从精确解中获得边界节点处的值,即你看到对于恒速你应该只为一个边界节点规定解的值(取决于的符号),因为另一个边界值实际上是由初始条件定义的(一段时间)u(x,0)u(x,t)=u(xct,0)u(0,t)=u(ct,0)u(2,t)=u(2ct,0)cc

如果您想在边界处获得常数值,这意味着您规定如果如果在理论上,您可以规定两者相互依赖,但是在一个节点中,它与您的波动方程不“兼容”,因为您在该节点规定了一些与 PDE 不同的“过程”(例如边界层现象)。u(0,t)=uLc>0u(2,t)=uRc<0c

关于数值解中的振荡,正如您自己提到的那样,您在评论中也得到了正确和好的建议,这是由于不适当的数值差分造成的。