一、理论推导
二、TL和UL的高性能代码实现
TL和UL虽然是两种基于不同时刻构型的求解方法,但它们理论以及计算结果到最后都是完全一致的,上面的每一项都是相互对应且相等的。以上形式是在学术程序之中经常用到的,但是如果编写成代码需要考虑以下两点:
1.减少大规模变量的存储。TL格式下每个积分点上形函数偏导虽然只需计算一次,但是存储起来进行每步的计算花费实际上代价更高。(我个人更推荐UL格式)
2.尽量减少变量的计算次数。在计算两种格式下整体刚度矩阵的时候需要分别计算材料刚度矩阵和几何刚度矩阵,而形函数偏导有可能计算了两次,这对代码的运行效率也有着一定不利。
这说明以上的理论知识,编写出的代码是有可能效率不高的。在查阅很多相关文献,在Nonlinear solid mechanics—A Continuum Approach for Engineering(chapter 8, pg 396-399)这本书找到了答案,将几何刚度项纳入到材料刚度项中,使得以前的两个刚度项相加,变为只需一个刚度项相加,形函数偏导只需计算一次
三、注意事项(06-24)
UL格式下,每一迭代步都进行坐标更新的话,会计算精度更高点?如果是每个载荷步更新位移,计算有以下好处
- 计算内存更小,因为为了每迭代步更新位移而且为了不能收敛返回到原来值,必须存储以前的坐标值,必定会消耗内存,如果节点数据多的话。