有限元法(Finite Element Method)是基于近代计算机的快速发展而发展起来的一种近似数值方法,用来解决力学,数学中的带有特定边界条件的偏微分方程问题(PDE)。而这些偏微分方程是工程实践中常见的固体力学和流体力学问题的基础。

有限元和计算机发展共同构成了现代计算力学 (Computational Mechanics)的基础。有限元法的核心思想是“数值近似”和“离散化”, 所以它在历史上的发展也是围绕着这两个点进行的。

“数值近似”

由于在有限元法被发明之前,所有的力学问题和工程问题中出现的偏微分方程只能依靠单纯的解析解(Analytical Solution)得到解答。这种方法对数学要求很高,而且非常依赖于一些理想化的假定(Assumption)。

比如在土木工程中梁柱计算中出现的平截面假定,小应变假定,理想塑性假定。这些假定其实是和实际工程问题有很大偏差的,而且一旦工程问题稍微复杂一些我们就不能直接得到解析解,或者解析解的答案误差过大。

而有限元法把复杂的整体结构离散到有限个单元(Finite Element),再把这种理想化的假定和力学控制方程施加于结构内部的每一个单元,然后通过单元分析组装得到结构总刚度方程,再通过边界条件和其他约束解得结构总反应。

总结构内部每个单元的反应可以随后通过总反应的一一映射得到,这样就可以避免直接建立复杂结构的力学和数学模型了。其总过程可以描述为:

总结构离散化 — 单元力学分析 — 单元组装 — 总结构分析 — 施加边界条件 — 得到结构总反应 — 结构内部某单元的反应分析

在进行单元分析和单元内部反应分析的时候,形函数插值(shape function interpolation)和 高斯数值积分(Gaussian Quadrature)被用来近似表达单元内部任意一点的反应,这就是有限元数值近似的重要体现。一般来说,形函数阶数越高,近似精度也就越高,但其要求的单元控制点数量和高斯积分点数量也更多。另外单元划分的越精细,其近似结果也更加精确。但是以上两种提高有限元精度的代价就是计算量几何倍数增加。

为了提高数值近似精度同时尽量较少地提高计算量,有限元法经历了很多发展和改良。下图就是一典型的有限元问题,因为模型中间空洞部分几何不规则性,结构用有限三角单元划分。由于在靠外区域,结构反应变化程度不是很大,因此划分的单元比较大和粗糙,而在内部,应力变化比较大,划分也比较精细。而在左边单元划分最密区域,有应力集中现象(如裂纹问题的奇异解现象),所以又有相应的高级理论(比如non-local theory)来指导这部分的单元应力应变计算。结构被选择性地离散,和高级理论构成了有限元发展的主要研究方向。

“离散化”

离散化和相应单元特性和收敛研究也是有限元中一个重要研究领域,总的来说,有限单元和他们组装成的总体结构主要分为: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单元去模拟梁单元等等。其实理论上来说这个领域可以有无限可能,因为对精度和数值稳定的追求可以是无限的。

“光滑边界” 和 与CAD的交互问题

其实这个算不上有限元的核心思想,不过是现在有限元研究热的不能再热的领域了,就是Hughes提出的“NURBS”有限元法,它的原理是用空间样条曲线来划分单元。如第一幅图所示,传统的有限元在处理不规则边界的时候一般都是较多的单元和用三角单元,多边形单元来解决,而且单元控制点都是和单元在一个平面上。而NURBS 单元的控制点脱离了单元本身,并且利用B-spline理论上可以把单元的光滑程度(continuity)提高到无限,而且不会显著提高计算量。

发展NURBS的另外一个好处是,在建模中常用的CAD软件是用B-spline来进行模型建立基础的,而NURBS 正好也是用用B-spline作为basis。所以CAD和NURBS的交互可以非常简单和高效的,甚至可以说是无缝连接。因此在工业界中十分复杂的模型都可以用CAD进行建模,再用NURBS进行有限元计算,如下图。现在成吨的有限元paper都来自这个领域,因为有限元的基本理论基本已经成熟和robust,利用高性能计算机进行大尺度(large-scale)和高复杂结构模拟也是有限元发展的一个主要方向。

P.S. :需要提到一点的是,没有高性能计算机技术的大力发展,就不可能有有限元的发展。有限元的理论最早是出现在1960年代,直到1970之后才随着计算机的发展而迅速发展。而现在发展迅速的计算力学也是得益于高性能计算机的发展。

可能当某一天计算机处理速度可以强大到我们可以用最复杂,最密集的单元完美快速地模拟任意结构,我们也不用再操心精度问题了。所以我觉得有限元的核心还需要加上计算机技术的发展吧。

作者:菲兹

-END-

pde中微元分析法的主要思想_有限元方法的核心思想相关推荐

  1. pde中微元分析法的主要思想_果然是清北学霸,高中数学解题思想与技巧方法,学会不下145分...

    美国著名数学教育家波利亚说过,掌握数学就意味着要善于解题.而当我们解题时遇到一个新问题,总想用熟悉的题型去"套",这只是满足于解出来,只有对数学思想.数学方法理解透彻及融会贯通时, ...

  2. pde中微元分析法的主要思想_初中数学常用的思想方法丨所有题型的考试技巧最全整理,高分必备...

    [导语]初中数学虽然是基础数学,但是这并不意味着就没有难度,特别是在素质教育下,从培养学生综合素质能力的角度出发,初中数学越来越重视数学思维的培养,因此在很多数学问题的设置上,都进行了相当难度的调整, ...

  3. pde中微元分析法的主要思想_调和分析中的四大猜想及PDE的现代研究

    Besicovitch在解决Kakeya``旋针"问题过程中, 构造了Besicovitch集合($R^d$中含任意方向单位线段且具有任意小测度之集合),已经成为解决调和分析.PDE领域著名 ...

  4. 小马哥spring编程核心思想_小马哥讲Spring核心编程思想

    小马哥讲Spring核心编程思想 ├─第01章:Spring Framework总览 (12讲) │      01丨课程介绍.mp4 │      02丨内容综述.mp4 │      03丨课前准 ...

  5. matlab中信赖域法,第8讲信赖域方法.ppt

    第8讲信赖域方法 3.6 信赖域方法( Trust-Region Methods) * 基本思想 线性搜索与信赖域方法的联系 信赖域方法思想 信赖域半径的选择 信赖域算法 信赖域方法的收敛性 解信赖域 ...

  6. java 事务处理 是不是aop思想_理解原生JAVA AOP思想

    一路走来,遇到好些后生来问我:AOP该如何理解?我一开始是丢个度娘给他们的.但是现在回头想想,培养新人不能这么草率,丢个度娘给他们,让他们花了大量的时间去阅读无用的文章外,一不小心还走火入魔了.所以现 ...

  7. UWB中TOF测距法的公式推导

    UWB中TOF测距法的公式推导 UWB常用测距方法有两种:飞行时间测距法(TOF)和到达时间差法(TDOA).这里说一下TOF.网上很多地方都给了公式,但是缺了过程推导,这里补上,有像我一样纠结公式是 ...

  8. SQL优化核心思想:或许你不知道的5条优化技巧

    点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书. --异步小编 随着系统的数据量逐年增加,并发量也成倍增长,SQL性能越来越成为IT系统 ...

  9. 定义 范围与核心思想 IT服务管理及其价值

    中国信息化推进联盟副秘书长 郝亚斌 中国信息化推进联盟IT治理专业委员会副主任 孙强 IT服务管理的定义 前面我们详细讲解了IT服务管理的产生和发展,那么到底什么叫IT服务管理呢?要理解IT服务管理的 ...

最新文章

  1. Android画图学习总结(四)——Animation(上)
  2. 阿里云蒋江伟:我们致力于为世界提供70%的算力 | 凌云时刻
  3. 用 vue + d3 画一棵树
  4. 神经网络与机器学习 笔记—支持向量机(SVM)(上)
  5. vue踩坑- 报错npm ERR! cb() never called!
  6. linux 中断程序设计,Linux中断编程
  7. 【招聘(深圳)】迈瑞招.NET 开发Leader和PM
  8. 李建中黑大计算机学院院长,向您致敬 | 我校开展教师节走访慰问活动
  9. Unity3d Android安卓JDK9打包失败
  10. C#常见委托のdelegate定义,Func,Action,Predicate总结
  11. 使用两个队列,改进耗时线程引起的性能问题的思路及代码
  12. python泰坦尼克号生存预测论文_Kaggle 泰坦尼克号生存预测--8%(Python)
  13. 共享店铺靠谱么?共享店铺哪家好?全方位测评企雀共享店铺,黑谷共享店铺!
  14. IIS 启动不了(发生意外错误0x8ffe2740)
  15. Improving Twitter Sentiment Classification Using Topic-Enriched Multi-Prototype Word Embeddings
  16. 扫描工具nmap、ncat
  17. 始终从最不易改变的方面开始
  18. android订餐系统app、android购物商城系统app 手机端+服务器端 mysql数据库,界面简单,功能齐全 安卓购物商城 安卓在线订餐系统
  19. 八数码问题中的逆序数
  20. 关键词是什么?浅谈关键词的种类

热门文章

  1. python xlwings api_2021-01-13python,xlwings,api运用,及一些问题
  2. java二重循环计数_java的二重循环代码样例
  3. Eclipse编辑器字体大小的设置
  4. python画环形图_用Python把图做的好看点:用Matplotlib画个环形图
  5. web html介绍笔记,WEB 之 HTML 系列笔记
  6. vue 引用网络css_vue如何引用其他组件(css和js)
  7. ModelCoder国产化解决方案已逐步代替国外软件Matlab/Simulink
  8. 你发这些什么目的_微信CRM系统究竟是什么?
  9. excel学习1-查看一列数值是否在另一列中存在
  10. k52zip shell band 流氓软件总是显示~