如何模拟开放式结局?

计算科学 pde 边界条件 模拟
2021-12-05 16:07:01

在模拟描述物理现象的偏微分方程时,如弦上的振动、腔室中的流体流动或量子波函数,最直接的方法是将您的空间划分为小区域/单元,在每个区域设置相关值根据初始条件计算单元格,并使用您最喜欢的偏微分方程算法一次模拟一个时间步,确保始终保持边界条件。

举个最简单的例子,假设我们在一根紧而均匀的弦上振动。如果振动足够小,我们可以假设琴弦的每个部分都只是上下移动。然后,每个单元都是字符串的一小部分,每个单元都属于一个位置和速度。该模型是每个单元都希望直接位于两侧的两个单元之间,并且感觉加速度与其离该位置的距离成正比。

如果绳子的两端都系紧,则边界条件简单;第一个和最后一个单元格是特殊的,感觉不到任何加速。但是,假设我只想研究单端附近发生的情况,例如,一波击中它并反射回来。那么看对端怎么处理就不是那么简单了。我不能让它自由挂起(说它想与之前的单元保持水平),因为这会导致反射回来。这个模拟或多或少地显示了我在说什么(“松散的结局”与“没有结局”)。这是怎么做的?

同样,假设我想模拟机翼上的气流(例如使用二维 Navier-Stokes 模型)。均匀的风从我模拟房间的一端进来,从概念上讲,这很简单。但是我该如何正确对待风离开房间的那一端呢?还是顶部和底部?我认为它或多或少地沿着相同的路线,至少直观地,作为字符串。如果不是,字符串是我问题的主要部分。

1个回答

您描述的问题,即在求解偏微分方程(PDE)时如何规定非反射或吸收边界条件已被广泛研究。对于 PDE 和一般边界的复杂(例如非线性)系统,它可能非常具有挑战性,并且是一个正在进行的研究问题。您可以找到有关该主题的许多参考资料,例如Huan 和 Thompson

但是对于一维字符串的动力学,有一个简单的解决方案。你可能已经知道,这个问题是用一维波动方程来描述的

2ux2=1c22ut2

在哪里c2=T/ρ,T是弦的张力,并且ρ是每单位长度的密度。

在弦的右端,为了使波不反射回来,需要施加以下边界条件

ux=1cut

要了解此条件是如何得出的,您可以查看这组课堂笔记Everstine的第 28 页, 其中还展示了如何在有限差分实现中规定此条件。