根据本书第1 版多年来在清华大学和兄弟院校中的使用情况,并结合作者近年来的教学和科研实践,第2 版在第1 版的基础上做了较大幅度的修订,主要体现在:
1. 在2.6 节中补充了稀疏矩阵的行压缩存储格式,简要介绍了高性能大规模稀疏对称和非对称线性方程组求解器PARDISO,并删除了活动列求解器COLSOL 的源代码(共2页),读者可从本教材的网站下载。
2. 进一步改写了STAP90 程序,增加了内存管理模块memAllocate,显著地提高了STAP90 程序的易读性,并重写了2.6.5 节。
3. 在1.4 节中补充了拉格朗日乘子法的可解性条件、闭锁问题和迭代解法的内容,并增加了Nitsche 法。Nitsche 法结合了拉格朗日乘子法和罚函数的优点,在发展新型数值方法中受到了关注。
4. 为了节约篇幅,从第3 章中删除了求解大型系统特征值问题的子程序JACOBI90、SSPACE90 和LANCZOS90 的源代码(共34 页),读者可从本教材的网站上下载。
5. 时域分析需要求解关于时间的二阶常微分方程组,对于复杂结构问题计算量很大,且不便于分析结构在地震、风和海浪等随机载荷作用下的响应问题。另外,许多工程问题更关心结构的最大响应,而不是其时间历程。因此第2 版增加了结构动力学问题的频域分析方法(第6 章),包括频响函数与快速傅里叶变换、响应谱分析方法及其应用和随机振动数值分析初步。
6. 对计算冲击动力学部分进行了大幅度修改和扩充,增加了爆炸模拟中常用的欧拉描述的控制方程(含非守恒形式和守恒形式),扩展了应力率内容并给出了其Lie 导数解释,补充了接触算法的增广拉格朗日子乘子法,扩充了接触面搜索算法。另外,为了公式表达简洁,除了指标记号外,还补充了部分常用公式的张量实体表达形式。
7. 将材料模型作为单独一章并进行了大幅度扩充,详细讲述了亚弹性模型和亚弹性-塑性模型的本构积分算法 返回映射法,并给出了线性亚弹性、理想弹塑性、各向同性硬化弹塑性、Johnson-Cook 塑性和Drucker-Prager 模型的理论和实现方法;增加了模拟流体的线性多项式状态方程和模拟炸药的JWL 状态方程,补充了失效模型。
8. 增加了任意拉格朗日-欧拉法一章,详细讲述了任意拉格朗日-欧拉描述的运动描述方法、守恒方程及其有限元离散格式(含彼得罗夫-伽辽金有限元)和网格更新算法,并讲述了求解欧拉法和任意拉格朗日-欧拉法控制方程的算子分裂法和输运算法。
9. 鉴于近年来物质点法在模拟冲击爆炸等涉及材料破坏的问题中发展迅速,第2 版重写了物质点法部分,并简要介绍了本课题组用C 语言研发的三维物质点法数值仿真软件MPM3D。MPM3D 的FORTRAN 90 简化版MPM3D-F90 已经开源,可从本教材网站上下载。
10. 近年来多核计算机发展迅速,因此在并行计算部分中补充了用于共享内存并行编程的OpenMP 编程方法。
11. 将原第9 章改为第III 篇,并重整为4 章。
12. 增加了用ParaView 进行后处理的内容(附录C)。ParaView 可以对极大规模的数据进行快速可视化,功能强大、操作简单灵活。ParaView 是开源、跨平台软件,其数据处理规模和效率远高于Tecplot 软件,还可以基于原始数据做多种多样的数据提取和再分析。
除此之外,第2 版还对第1 版做了其他大量的修订,不再一一列出。王天舒负责修订计算多体动力学部分,刘岩负责编写第6 章(频域分析方法) 和1.4.3节,张雄负责修订其余部分并统稿。廉艳平博士编写了附录C,并将MPM3D 软件中的Drucker-Prager 模型移植到EFEP90 程序中,同时补充了边坡失效模拟算例。陈享补充了
第10 章中的三维输运算法(10.6.5节) 和结点变量的输运(10.6.6节) 算法中的交错网格法部分。
本教材受到清华大学“985”三期名优教材建设项目资助,特此致谢。