有限元法是基于近代计算机的快速发展而发展起来的一种近似数值方法,用来解决力学,数学中的带有特定边界条件的偏微分方程问题。而这些偏微分方程是工程实践中常见的固体力学和流体力学问题的基础。
有限元和计算机发展共同构成了现代计算力学的基础。有限元法的核心思想是“数值近似”和“离散化”,所以它在历史上的发展也是围绕着这两个点进行的。
1. 数值近似
由于在有限元法被发明之前,所有的力学问题和工程问题中出现的偏微分方程只能依靠单纯的解析解得到解答。这种方法对数学要求很高,而且非常依赖于一些理想化的假定。比如在土木工程中梁柱计算中出现的平截面假定,小应变假定,理想塑性假定。这些假定其实是和实际工程问题有很大偏差的,而且一旦工程问题稍微复杂一些我们就不能直接得到解析解,或者解析解的答案误差过大。
而有限元法把复杂结构离散到有限个单元,再把这种理想化的假定和力学控制方程施加于结构内部的每一个单元,然后通过单元分析组装得到结构总刚度方程,通过边界条件和其他约束解得每个单元的反应,这样就可以避免直接建立复杂结构的力学和数学模型了。其总过程可以描述为:
总结构离散化 — 单元力学分析 — 单元组装 — 总结构分析 — 施加边界条件 — 得到结构总反应 — 单元内部反应分析
在进行单元分析和单元内部反应分析的时候,形函数插值和高斯数值积分被用来近似表达单元内部任意一点的反应,这就是有限元数值近似的重要体现。一般来说,形函数阶数越高,近似精度也就越高,但其要求的单元控制点数量和高斯积分点数量也更多。另外单元划分的越精细,其近似结果也更加精确。但是以上两种提高有限元精度的代价就是计算量几何倍数增加。
为了提高数值近似精度同时尽量较少地提高计算量,有限元法经历了很多发展和改良。下图就是一典型的有限元问题,因为模型中间空洞部分几何不规则性,结构用有限三角单元划分。由于在靠外区域,结构反应不是很大,因此划分的单元比较大和粗糙,而在内部,应力变化比较大,划分也比较精细。
而在单元划分最密区域,有应力集中现象,所以又有相应的高级理论(比如non-local theory)来指导这部分的单元应力应变计算。结构被选择性地离散,和高级理论构成了有限元发展的主要研究方向。
2. 离散化
离散化和相应单元特性和收敛研究也是有限元中一个重要研究领域,总的来说,有限单元和他们组装成的总体结构主要分为:
1-D 单元 (1-D element)
杆单元 (bar element) ------ 桁架 (truss)
梁单元 (beam element) ------ 框架 (frame)
板单元 (plate element) ------ 壳体 (shell)
2-D单元 (2-D element)------平面应力体 (plain stress) 和 平面应变体 (plain strain)
三角单元 (triangle element)
四边形单元 (quadrilateral element)
多边形单元 (polygonal element)
3-D 单元 (3-D element) ------立体结构 (3-D problem)
三角体 (tetrahedrons element)
立方体单元 (hexahedrons element)
多边体单元 (polyhedrons element)
具体的分类和单元形状见下图:
可以看到每种单元又可以提高形函数的阶数(控制点 node 数量)来提高精度。很多有限元研究也集中在这个领域。比如研究新的单元引用于结构动力反应以减小数值震荡,比如用3-D单元去模拟梁单元等等。其实理论上来说这个领域可以有无限可能,因为对精度和数值稳定的追求可以是无限的。
3. “光滑边界” 和 与CAD的交互问题
其实这个算不上有限元的核心思想,不过是现在有限元研究热的不能再热的领域了,就是“NURBS”有限元法,它的原理是用空间样条曲线来划分单元。如第一幅图所示,传统的有限元在处理不规则边界的时候一般都是较多的单元和用三角单元,多边形单元来解决,而且单元控制点都是和单元在一个平面上。而NURBS 单元的控制点脱离了单元本身,并且利用B-spline理论上可以把单元的光滑程度(continuity)提高到无限,而且不会显著提高计算量。
发展NURBS的另外一个好处是,在建模中常用的CAD软件是用B-spline来进行模型建立基础的,而NURBS 正好也是用用B-spline作为basis。所以CAD和NURBS的交互可以非常简单和高效的,甚至可以说是无缝连接。因此在工业界中十分复杂的模型都可以用CAD进行建模,再用NURBS进行有限元计算,如下图。现在成吨的有限元paper都来自这个领域,因为有限元的基本理论基本已经成熟和robust,利用高性能计算机进行大尺度(large-scale)和高复杂结构模拟也是有限元发展的一个主要方向。