容易混淆的概念是,划分时间步这个计算步骤在原则上是和牛顿迭代无关的。因为牛顿迭代是在每个时间步内进行的子循环。直到迭代满足收敛条件,计算才向下一步进行。这个过程圆环套圆环娱乐城的过程,导致了非线性求解的一系列特点和麻烦。
第一,收敛标准的问题。这个本质上是牛顿法需要探讨的,但是因为时间步必须解决这个难点,所以在这里需要说说。在固体力学里面,收敛标准一般是三种,简称为UPW,分别指位移(U),加载(P),和做功(W)。每个量的收敛条件,本质都是衡量所在迭代步的相对误差。理论上讲,必须三个量都收敛才能保证计算结果稳定和精确,但是如果根据问题可以放松,那么常用的量至少要保证U和P收敛。
第二,时间步的划分问题。加载步多了求解时间长,少了不准确或者根本不收敛(因为牛顿法本质上只能求局部不动点),所以时间步的划分是个艺术。这个问题没有标准答案,只能说视具体情况而定。如果你的问题不太难,求解器自带的自适应算法应该能够自动调整步长。静力自适应算法的本质,是计算到目前为止的时间步的收敛模式。简单地说,如果求解器发现现在这步收敛得快,那么下一步步长就可以放宽点,如果收敛得慢或者搞不定,那么就得缩小步长。基本上是个猜猜猜的过程。
第三,动力问题时间步的问题。和静力问题不同,动力问题有“真正”的时间,需要进行时间积分,所以时间步的划分是根据积分算法来决定的。而积分算法应该根据具体问题来选择。常用的算法,固体和结构分隐式和显式:隐式基本上都在Newmark和HHT上玩系数,目的是保证精确性但又滤掉高频的信号,而显式基本上就是保证时间步尽量大但又不大到影响稳定。流体基本上都是在Runge-Kutta和各种向后积分法中求稳定。所以当积分法定了,时间步的选择的大方向也就定了。普通用户在这个时候可以和精力情形一样,寄希望于自适应算法。动力问题的时间步自适应基本上分两类。一类是调整步长以适应特定的结构振动频率,一类是调整步长以适应特定的积分误差。
第四,多尺度的问题。下面这三类常见问题,对于时间步的决定都是让人头疼的,本质上都是因为有空间/时间多尺度的特点: 接触问题(固体),湍流问题(流体),激波问题(固体和流体)。工程上解决的方式,本质上都是给模型添加稳定性,即所谓的数值减振/衰减。这里面问题就太多,以后慢慢聊。
本文转自【有限元科技】