comsol 多物理场中的时间步进

计算科学 pde 离散化 康索尔
2021-12-02 03:59:41

我想知道 Comsol 使用哪种算法来更正它使用的时间步长。例如,当您尝试求解在 PDE 系数接口中编写的方程并设置自由时间步长时,Comsol 会自动选择时间步长以获得指定的绝对误差。无论如何,Comsol 如何选择正确的时间步长?

  • 在 Navier Stokes 方程中,要查看的参数是 CFL 数,它必须小于 1。
  • 对于一般传输问题,参数是 Peclét 数。

但是所有其他问题呢?有一种通用的方法可以找到一个棘手的最大时间步长吗?

2个回答

给定 PDE 选择正确的数值求解策略需要一些知识/专业知识。(计算科学确实是一门“科学”,必须学习。)

在特定应用软件(例如,用于工程问题(如碰撞问题金属成形)的商业 FEM 求解器)中,这些知识以某种方式“结晶”和嵌入,因此大多数应用工程师应该能够在没有太多麻烦的情况下以数值方式解决物理问题。分析师可以专注于问题的物理性质,而不是过多地关注数字。这是一个乐观的观点:即使使用特定于应用程序的商业软件,真正棘手的问题也需要多学科的专业知识(数字分析、计算机科学、工程、物理学);但至少,在日常使用中,不会出现大错误。

相反,您的问题非常笼统和广泛,要求在非特定应用环境中适用于通用 PDE 和求解策略的指导方针。

我认为,如果没有任何暗示你试图解决的问题类型,就不可能给你一个明智的答案,因为不可能在几段中浓缩大量的计算科学。

尽管如此,我认为可以给出一些有用的建议。

  1. 物理量有量纲:说是一个很小的绝对误差是没有意义的。检查方程式的尺寸一致性;如果可能的话,试着把它们写成无量纲的缩放形式。1012

  2. 对于 PDE 的“正确”时间步长可能不仅取决于方程的缩放方式(物理测量单位的选择),还取决于空间离散化(更细的网格,更小的时间步长)。如果您手头没有理论结果,比较不同时间步长和网格大小的结果。

  3. 始终尝试计算全局量(例如动能)并以可变时间步长绘制其随时间的演变:您将深入了解正在发生的事情。

  4. 只要您能够评估给定的解决方案是否在物理上有意义,试错过程就没有错。

我知道帮助不大,但我希望这将是一个好的起点。

一般无法回答您的问题,因为 comsol 可能会根据问题使用不同的方法。

一般的答案是偏微分方程在空间和时间上都是离散的。就像你必须建立一个体积网格一样,你必须把时间分成几块。求解精度是时间步长“网格”的函数。

可变时间步长算法所做的是尝试动态选择时间步长,以便在解决方案快速变化时使其更小。这可能涉及测试一堆不同的时间步长,并选择一个相对于它检查的最佳网格给出可接受误差的时间步长。

然后,最大时间步长控制当解决方案在时间上看起来呈线性时可以多快找到解决方案。它应该按照您系统的相关时间尺度排序,因为如果您的估计偏离了,积分器将无法在其尝试的时间步长之间绘制一条平滑线。这可能会发生,特别是,如果事物发生振荡 - 在这种情况下,您需要的振荡周期少于振荡周期。