声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1777|回复: 0

[其它软件] 漫谈关于“手撕有限元”

[复制链接]
发表于 2022-6-27 09:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我们系《有限元》这门课,我教了好几年了,颇有一些体会,愿意与大家分享。

首先,《有限元》这门课并不限于我的研究方向岩土专业,我们系的学生专业包括结构,岩土,环境,采矿等几个不同的方向,所以这门课要求照顾到所有专业的学生。另外,根据系里每年和工业界的座谈会议反馈,工业界对我们系毕业的学生希望不仅擅长有限元商业软件的应用同时对有限元的机理要非常清楚,因为工业界需要毕业生有针对有限元的二次开发的能力,单纯应用是不足够的。那么,本科生《有限元》这门课需要达到什么样的水准才算基础扎实呢?我的理解是上完这门课,要有手撕有限元的能力。

什么是手撕有限元?其实就是通过这门课要求学生能从简单的例子出发(比如杆、梁、板等一维、二维、三维问题)。首先,用手推导整个有限元的求解过程,而不是上来就用商业软件。商业软件想用好,必须有扎实的有限元基础,否则就是个黑匣子。

我们拿一个简单的bar(杆)为例,有限元的手撕过程无非就这几步:
1.Formulate element stiffness equations(单元刚度矩阵方程)。

2.Mesh(把问题离散成单元和节点)。

3.Assemble equations for each element into global stiffness equations(形成总纲矩阵方程)。

4.Solve global stiffness equations(解总纲方程)得到位移。

5.根据位移计算应力和应变(这是我们的目的)。

关于第一步,什么是单元的刚度矩阵,如何获得?

对于弹性问题,我们很容易理解ku=f,这里k 就是bar单元的刚度矩阵,u 是位移矩阵,f 是载荷矩阵。这里就涉及到线性代数中关于矩阵的知识。那么,如何得到单刚矩阵呢?最简单的方法就是,我们可以应用虚功原理或最小能量原理。那么,这两个原理什么意思呢?虚功原理其实就是遵循能量守恒原理,而最小能量原理更好理解,就是数学上求能量的极值,极值怎么求?让偏导数为零就可以了。这里当然是高等数学微积分的知识。另外说一句,任何方法,物理学那几个守恒方程是必须遵守的,比如能量守恒,动量守恒,角动量守恒等。

第二步,单元离散,这是有限元中的一个专门研究方向,涉及到单元的不同类型,越是高阶的单元计算越准。

什么是高阶单元?举个例子,为什么二阶的 (quadratic) 单元要比线性 (linear) 单元计算更准?这里学生必须对数值分析里面的比如Lagrange Interpolation (拉格朗日插值法)很清楚。学生要清楚有限元计算的结果相对解析解是近似值,为什么是近似值?因为拉格朗日插值法就是用有限个点和插值函数乘积的和无限接近真实解。点数越多,越接近。比如,linear单元需要两个点,二quadratic 单元需要三个点。所以,quadratic 单元要比linear 单元计算更准。而单元的插值函数就叫形函数。

第三步,如何从单元刚度矩阵组成总纲矩阵?

所谓手撕,更体现在这一步里。这里首先要讲清楚,什么是单元的局部坐标系和整体坐标系,它们之间是如何通过Steering Vectors 联系起来的。总之,要通过具体的例子,让学生清楚是如何把单刚矩阵的自由度移到总纲矩阵中去的。虽然,这些过程在软件里都是电脑程序在执行,但学生必须清楚整个过程到底是如何实现的。

第四步,解总纲方程组。

这是这几步里最重要,也是最难的一步,从某种意义上讲,有限元最后就是解偏微分方程组。在这步里,边界条件和加载条件如何考虑也很重要。有学生问,为什么需要边界条件?原因很简单,边界条件可以减少未知数的个数,很多情况下,没有边界条件,方程组根本解不了。这里面另外一个重要问题就是材料的本构。为什么需要材料的本构?材料本构是一组方程,如果不考虑材料的本构,未知数太多,方程太少,方程组还是没法解。总之,解偏微分方程组这是数学问题,比如说最简单的高斯消去法。可见数学对工科的学生来说是多么的重要。现在工科研究生考试为什么数学要考高等数学、线性代数、概率论与数理统计,而研究生阶段必须学数值分析和数理方程,这是有道理的。

第五步,根据解总纲方程得到的位移去求应变和应力。

为什么最后是应力和应变?这是因为工程中应力,应变是最容易测量的。我们的设计标准通常都是和应力或应变有关。

总之,所谓手撕有限元,就是通过具体的例子,一步步解构有限元计算的详细步骤,让学生对有限元的基本理念、概念、方法非常清楚。只有在这个基础上,结合编程和商业软件的应用,才能真正理解有限元这个近似方法。我们经常听到有人诟病有限元软件如何不靠谱,垃圾输入,垃圾输出,多数情况下并不是软件本身的问题,而是使用者对有限元理解的深度问题。另外一个诟病有限元不靠谱的原因是,使用者对工程问题不了解。比如岩土工程师,如果对岩石力学和土力学并不真正懂,尤其是土和岩石的物理力学性质不清楚或理解不深透,是很难用有限元建出合理的模型,算出满意的结果的。

最后说句题外话,我收集过很多大学《有限元》这门课的讲义,其实评价一个大学的学科是否一流,只要看相关课程讲义的难度和深度就够了,讲义的难度和深度以及老师的讲解方式(比如手撕有限元)将决定学生的基础是否扎实,是否有潜力,而毕业生的成色决定大学的水平。

来源:王善勇科学网博客,作者:王善勇。

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-4-17 07:57 , Processed in 0.090164 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表