工程仿真和科学计算领域有着大量的瞬态问题,需要通过时间求解器来计算得到未知量。根据时间求解器的类型,我们常将动力学问题的求解分为隐式与显式两种求解方法。WELSIM的结构仿真模块中已经支持了两种瞬态计算方法。本文会介绍两种计算方法的本质与应用优势。
隐式求解器
隐式是工程仿真中常用的瞬态求解方法,由于其计算快精度高的特点,在常规仿真计算中大量应用。隐式法最显著的特点是在每个时间步长内构建并求解ax=b矩阵方程,当控制方程含有非线性因素,还会引入非线性求解器如牛顿迭代求解器。可见隐式求解方式相对复杂,需要占用更多的计算机内存,编程也相对难以实现,尤其是并行算法更加复杂。隐式法是WELSIM的默认的瞬态计算方法。对于非线性很强的模型,当牛顿求解器无能为力时,会无法收敛。隐式的优势是无需考虑稳定性问题,时间步长可以设置的较大,因为大多数隐式时间求解器是无条件稳定的。同时各种残差余量收敛准则保证了计算精度。常见的隐式时间求解器有:Newmark, Hilber-Hughes-Taylor(HHT),Crank-Nicolson等。
显式求解器
显式法从算法上则显得简单许多,无需构建矩阵方程,从而无需求解大型ax=b方程组。对于非线性问题,也无需使用非线性求解器,一切通过时间求解器计算解决。显式法计算简单,易于编程实现,内存硬件占用小,同时对于并行算法有着天然优势,对于OpenMP,MPI,或是GPU等并行框架都能够达到很好的提速。对于高速、高率变问题有较大的收敛优势。然而缺点是需要很小的时间步长从而满足时间求解的稳定性要求,一旦不满足就会得到完全错误的结果。常见的显式时间求解器有:Runge-Kutta,中心差分法等。在WELSIM中使用显式法只需要将项目属性设置为Explicit。
总结
隐式、显式两种截然不同的计算方法,也决定着不同的应用优势。总体上,对于一些大率变问题,如结构中的大应变率问题,高速冲击与爆炸问题,显式有比较好的处理能力。对于强非线性问题,当隐式无法收敛时,也可以使用显式方法。而显式由于时间步长小,总体计算耗时长,希望随着GPU集群的普及,可以通过并行计算减少计算时长上的劣势。同时显式法的计算精度相对较低。
目前最好的开源显式动力学求解器是OpenRadioss,功能完备,且支持大量材料模型。WELSIM也将OpenRadioss作为了默认的显式动力学求解器,详情参见《使用WELSIM调用OpenRadioss进行显示动力学分析》一文。同时免费软件MatEditor也支持生成OpenRadioss的材料文本,详见《使用MatEditor生成OpenRadioss材料数据文件》一文。
目前对于常规的瞬态问题,使用隐式法还是比较好的选择。
WelSim与作者不隶属于OpenRadioss团队,和OpenRadioss开发者没有直接关系。这里引用OpenRadioss等项目仅用作技术博客文章与软件使用的参考。