我最近继承了大量遗留代码,这些代码解决了一个非常僵硬的瞬态问题。我想证明空间和时间步长足够小,如果减小它们,计算解决方案的定性性质不会改变。换句话说,我想表明解决方案在质量上是“收敛的”。由于我可以明确设置空间网格大小,因此该部分很简单。但是,由于代码使用自动时间步长控制,我无法直接设置时间步长。
该算法根据在最后一次达到容错所需的雅可比迭代次数来更改两个边界之间的时间步长时间步长。它使用雅可比迭代的事实使我相当肯定它是某种隐式方案,但我不能绝对肯定。它没有考虑在当前时间步中看到的错误,这导致它有时会遇到迭代限制(可能在几千个时间步的过程中十几次,几乎总是在最动态的部分模拟)。我正在完成的当前运行我将时间步长界限设置为两个半数量级(到)。
在运行中,我可以控制时间步长范围、选择当前时间步长时它查看的过去时间步长的数量、时间步长的最大变化(比率)、雅可比迭代的目标数量、最大迭代次数和误差范围。我想如果有人能让我走上分析时间步独立性的正确道路,或者至少弄清楚使用了什么算法。