PDE 数值方法的计算成本

计算科学 pde 复杂
2021-11-25 23:34:09

假设我需要以数字方式求解 PDE。根据问题和所选择的数值方法,我通常会看到一些问题:实现问题(例如边界条件、并行化)、离散化问题(例如双曲线问题的有限元的稳定性并不好笑,而有限体积“正常工作” ,椭圆问题的“对立面”),时间积分......

我通常仅基于这些“直觉”来进行离散化的初始选择。尽管如此,我还是希望将它们建立在有关问题的事实和证据的基础上我必须投入多少计算工作才能将我的问题解决到所需的解决方案错误(即美元/错误)?

  • 是否有任何资源可以用来衡量该标准的方法的适用性?

尽管可以计算方法的复杂性,但仍然需要先验误差估计器,如果它们存在的话,将具有不同的“锐度”,具体取决于方法。有没有一种非经验的方法来发现这一点?如果无法避免测试所有可能的方法,那么人们将如何继续呢?大多数领域都有标准的数值测试用例,它们有意义吗?是否有任何公共数据库比较这些测试用例的实现?

免责声明:这不应该是唯一的标准,对复杂边界实施有限差分是“可行的”,但很痛苦。不过,经历那种痛苦值得吗?如果使用 FD 的成本远低于替代品,那么对于某些人来说,它可能会。

3个回答

如果您希望能够可靠地获得最佳方法的恒定因子(例如几个数量级),即使只是在一种类型的计算机上,您也要求过于雄心勃勃。如果有人声称拥有一种商业分析技术,可以告诉你任何一家公司在五年内的价值,他们就会被指控卖蛇油。PDE 求解方法的统一最优性分析同样无法实现。你会发现,当你构建一个分类方法时,你将不得不严格限制你可以处理的问题和方法的范围,或者付出如此巨大的不确定性因素的代价,使方法分析变得毫无用处。缺乏简单的答案是“最佳” PDE 求解方法仍然是一个活跃的研究领域的原因之一。

鉴于 PDE 解决方案的性质差异很大,我认为这是不可能的。但是,您可以想到的一般启发式方法如下:

  1. 找出什么类型的方程(椭圆、抛物线、双曲线)。
  2. 查看问题/雅可比中的系数。问题是硬的吗?如果是这样,您将需要某种隐式方法(即 Crank-Nicolson),否则您可以使用一些显式或预测校正器方法。
  3. 看看你的几何。你的几何简单吗?然后尝试有限差分法。当几何形状复杂时,使用有限元方法。

此过程适用于大多数问题。圆环上的抛物线刚性方程?试试隐式 FEM 求解器。但是,这不适用于所有问题,您可能必须返回并尝试另一种方法。或者更糟糕的是:如果问题足够难,那么获得解决 PDE 的计算方法本身就是一个研究课题。这就是为什么计算偏微分方程仍然是一个活跃的研究领域。

还要记住,任何花费在编码上的时间都计入您花费在解决问题上的时间。如果你选择一个需要 5 分钟编写但在 2 天内解决的方法,它仍然比需要 3 天编写但在几分钟内解决的方法实际上“更快”(并且你可以完成更多工作) . 因此,除非您要解决多年的问题或者是数值方法的研究人员,否则不要担心您的问题的“最佳方法”。

计算成本不仅取决于自由度的数量,还取决于求解结果(非线性?)方程系统的效率。

作为一种极端情况,在 x 和 y 方向上周期性结构的时间谐波麦克斯韦方程可以扩展为傅里叶模式(在 x 和 y 方向上)。由此产生的系统具有非常少的自由度。它可以通过各种方法解决,但最终归结为通过某种射击方法解决两点边值问题。如果您使用矩阵方法来稳定解决此问题,则运行时间与周期性晶胞面积的三次方成比例。如果您改用简单的 FDTD 方案来求解时间谐波麦克斯韦方程,您最终会得到很多自由度。在这种情况下,您不需要求解方程组,并且运行时间与周期性晶胞的面积成线性关系。(这两种方法都可以修改以克服它们的主要局限性,

请注意,时间谐波麦克斯韦方程是椭圆的,但 FDTD 解决的时域问题是双曲线的。