如何为欧拉方程选择一个简单的制造解?

计算科学 pde 数值分析 测试
2021-12-08 06:01:40

为了验证两相亚音速可压缩等温欧拉码,我正在尝试按照此处讨论的内容和其中的参考来实施制造的解决方案。此外,作为此处已回答的问题的扩展,我正在寻找有关针对特定案例选择制造解决方案的更详细说明,尤其是有关相关参数的选择。

例如,在本文中,作者建议使用以下形式的制造解决方案(二维):

ρ(x,y)=ρ0+ρxsin(aρxπxL)+ρycos(aρyπyL)+ρxycos(aρxyπxyL2)
在哪里ρ0,ρx,ρy,ρxy,aρx,aρy,aρxy就这样给出,没有任何解释。

我发现这个表达式真的很复杂,我的问题是为什么作者选择了如此复杂的函数?我知道三角函数是很好的候选者,因为C但是为什么提议的制造解决方案是这些功能的如此复杂的组合?为什么一个简单的余弦还不够?最重要的是,他们如何为上面写的七个参数选择值?是什么让你在设置之间做出选择ρxy例如到 2 和 500?

2个回答

使用制造的解决方案,您可以选择所需的解决方案的形式,通过控制方程来调整它们,并生成右侧函数,您可以实施这些函数以将解决方案驱动到您制造的解决方案。选择一些解决方案来满足您想要的其他属性。Spencer 的评论表明,边界条件是您可能希望也包含在您的制造解决方案中的一组属性。周期性是另一个。此外,您需要选择足够平滑的解决方案,以便有足够的导数来巧妙地通过您的运营商。您可能想对解决方案施加许多其他条件,因此选择的原因可能永远无法从外部猜测。本文没有给出作者选择这种特殊形式的理由。

超越函数经常被使用,因为它们可以同时激发算子的多种模式。它们的总和或乘积是一种将这些函数组合成有效探索多维空间的简单方法。

增强比尔·巴特已经说过的话:

1/您不想使用多项式,因为许多方法(例如有限元方法)至少对于低阶多项式是精确的。

2/你想选择解析的解决方案,或者至少C以便可以很好地近似解。

这两个要求自然会导致三角函数。

对于系数:3/您要选择aρx大到足以让你获得超过一半的振荡进入你的域宽度。

4/ 但你想选择aρx足够小,以便您有机会使用网格解决解决方案。例如,即使在最粗的网格上,您可能希望(余)正弦的每个周期至少有 2 个网格大小,然后在细化网格时每个周期使用越来越多的元素。

最后两点导致对(余)正弦频率的非常明显的选择。

至于前面的因素:它们通常无关紧要。至少对于线性问题,它们只是直接扩展(如果您选择两倍大的解决方案,错误也将是两倍大)。但是,对于非线性问题,您将需要选择这些因素,以便非线性存在并且很重要,但不会压倒您的算法。