想深入学习计算力学(固体力学、结构工程、土力学等);从数学开始着手,还是从力学着手好?(本人土木出身)
8 个回答
谢邀。另一个受邀问题(如何系统学习固体力学)也就一并在这回答了。
力学知识往往需要依托于有限元等工具去解决实际工程问题。所以从大的方向来说,一方面要学好固体力学等力学知识,另一方面是有限元的相关知识。
固体力学方面,首先推荐一本书,Robert Asaro的 Mechanics of solids and materials。这本书从固体力学所需的数学知识,到线弹性,非线性弹性,塑性(包括晶体塑性)等都有介绍。
固体力学所需的数学知识主要包括张量计算,和一些微积分定理(如高斯定理,斯托克斯定理),基本就够用了。然后可以从线弹性力学开始学习,有助于熟悉张量计算,应力应变,本构关系,应变能等基础知识。另外线弹性力学有很多经典问题是可以不借助有限元就可以手解出解析解的,所以选几个经典问题加以练习是巩固固体力学基础的机会。再往后可以学习非线性弹性(比如大变形),个人觉得核心是引入了变形梯度(deformation gradient),在后面的晶体塑性也经常用到。再往后就是塑性力学,个人觉得有两个阶段,第一个是phenomenological plasticity,即只关注应力应变关系,或者说是弹塑性下的本构关系。需要学习一些屈服准则,和本构关系的模型。第二个是从更本质的物理意义去解释塑性变形,如晶体塑性理论。核心是将变形梯度F分解为弹性变形梯度Fe和塑性变形梯度Fp. 而Fp可以由更微观的位错理论决定,这就更深了。
有限元方面,由于除了一些线弹性问题可以手解解析解,其他都不可避免的需要用到有限元求解近似解。有限元需要一些泛函数分析,变分等数学知识支持。如果不熟悉可能需要先补充相关数学知识。主要把握强弱形式的基本思想,毕竟关于求解的数值方法就是另一片领域了。
最后对于如何学习提一些个人建议。如果只是一直看书可能有时候会感到迷失,不知道自己有没有真正掌握。所以可以尝试用学到的知识去解决一些简单的实际问题。个人对COMSOL软件比较熟悉,就拿它来举例。COMSOL有提供equation-based modeling模块,也就是说用户需要自己输入求解所需要的微分方程(或对应的强弱形式),这种半开放式的方式是很有助于巩固所学知识的。比如你可以将所学的线弹性问题的控制方程转化成弱形式,输入COMSOL求解,将结果和COMSOL内置固体力学模块所得到的结果进行对比。这样做的好处是你不用自己去编写有限元求解器,同时也避免了使用内置模块时对软件所使用的方程不理解的处境。