21
\ begingroup美元

我正在使用MIKE3建模包中的海岸水动力模型。MIKE3采用有限体积法在三角形网格上求解显式时步浅水方程。

我的模型经常在流量高峰时,在岬角周围的几个单元格中“爆炸”(数值发散)。我可以采取什么步骤来提高数值稳定性,无论是通过修改网格或其他措施?

\ endgroup美元

    2答案2

    12
    \ begingroup美元

    几乎所有使用前向时间模型的有限方法都遵循courant - friedrichs - lewy定律,该定律计算courant数并将其与决定稳定性的$C_{max}$进行比较,因此对于2-D:

    $ $ C = \ \压裂压裂{V_xdt} {dx} + {V_ydt} {dy} \通用电气C_{马克斯}$ $

    其中$C$为库朗数,$V_i$为下标方向的速度,$dx$或$dy$为指定方向的长度区间,$dt$为指定的时间步长。如果你想得到数值上的不稳定性,增加网格间距会降低库仑数,但是你可能会错过你想要捕捉的动态。如果你减少时间步长,它将需要更长的动力学发展计算。

    解决这个计算问题的一种方法是在动态时间步长中编码:持续计算$C$和$C_{max}$。如果$C > C_{max}$,那么让模型将步长降低一半。再次检查,然后重置为下一步,这样您就可以在“不太动态”的时间内有更大的时间步长。我已经在其他模型中实现了很多次,而且效果很好。

    另一种可能是你的网格有很高的纵横比:如果你的$x$方向是10公里,$y$是1公里,那么$10:1的纵横比就非常高了。在您的例子中,由于您使用的模型包是三角形,所以您希望三角形网格中的角度尽可能锐角。一般来说,钝角意味着高纵横比。

    像llmari一样,我不熟悉流体动力学模型,所以我不做细节。我的专长是地幔对流和板块弯曲模型。我希望这能有所帮助。

    \ endgroup美元
    1
    • 1
      \ begingroup美元 我认为你有锐/钝角反:-)实际上,最好的三角形网格将倾向于有等边三角形。两个都是很好的答案,但接受这个,因为它的得票更高:-) \ endgroup美元
      - - - - - -半日西蒙
      2014年4月20日7:23
    10
    \ begingroup美元

    通常解决数值稳定性问题的灵丹妙药是减小时间步长。它并不总是有帮助(事实上,在某些情况下甚至会使不稳定性更糟),但它通常是要尝试的第一件事。

    当然,更短的时间步长会占用更多的计算机时间。另一种尝试的方法是,如果减少时间步长没有帮助,或者导致不可接受的糟糕性能,则改进或有点矛盾的是,在有问题的区域中粗化网格。(这两种方法哪一种更有可能起作用,取决于不稳定的确切原因。)如果单靠这个也没用,试着调整网格而且减少时间步长。

    最终,最好的解决这类问题的方法通常是切换到更稳定的时间步进方法。作为一般的经验法则,高阶方法比低阶方法更稳定(至少在某种程度上),隐式方法比显式方法更稳定。在这两种情况下,稳定性都是以额外的计算工作量为代价的,但它通常仍然比仅仅减少足够的时间步长来实现类似的稳定性要便宜。

    不幸的是,我个人并不熟悉MIKE3软件,不知道它使用什么时间步进算法,也不知道最终用户是否有办法调整算法。

    \ endgroup美元
    4
    • \ begingroup美元 Ps:很抱歉给出了一个如此模糊的答案,但我想,如果没有人提出更好的答案,至少比什么都没有好。 \ endgroup美元
      - - - - - -Ilmari Karonen
      2014年4月19日0:02
    • \ begingroup美元 我不确定高阶方法是否通常比小时间步更便宜。 \ endgroup美元
      - - - - - -BHF银行
      2014年4月19日5:46
    • \ begingroup美元 @BHF:有时是,有时不是。但如果它们通常不是比缩短时间更有效,那么开发它们就没有多大意义了,不是吗? \ endgroup美元
      - - - - - -Ilmari Karonen
      2014年4月19日5:52
    • \ begingroup美元 我同意。顺便说一下,不需要担心时间步长的稳定性可能是这样一个原因,独立于计算成本。 \ endgroup美元
      - - - - - -BHF银行
      2014年4月19日6:10

    你的答案

    点击“张贴您的答案”,即表示您同意我们的服务条款隐私政策而且饼干的政策

    这不是你想要的答案?浏览带标签的其他问题问自己的问题