首页/文章/ 详情

介绍一个二维结构化有限元的常见边值问题

1月前浏览200

简述

    介绍复杂的二阶结构化有限元问题,意在给出二维结构化四边形有限元常见的系数矩阵。这里以求解sin(x+y)函数分布为例。

1.边值问题

    该问题的理论解与研究区域为:

    一般常见问题的微分方程可能是二阶导数方式不同例如梯度、旋度等;存在一阶导数、右端项不为零、各项系数不同等来表示不同的物理意义;边界条件可能是第二类、第三类边界条件。

    具体问题还是得具体分析,但是大体上思路以及推导方式是一致的。

2.有限元推导

    对微分方程乘以试探函数,并在研究区域内积分,得到如下公式:

    与以往的推导一样,同样采用分部积分得到:

    根据给出的边界条件,全部为第一类边界条件,在后续强加第一类边界条件后会覆盖掉上梯度的边界项,因此不需要考虑上述边界条件的影响,直接得到有限元方程:

3.四边形基函数

       采用四边形结构化的线性基函数,具体表达式:

       展开式如下:

对应的单元内任意点的插值公式为:

 详细的推导过程参考:最简单的二维结构化有限元问题:求解拉普拉斯方程

4.单元系数矩阵

这里直接给出三个部分的系数矩阵,具体的推导方式可以参考文章:最简单的二维结构化有限元问题:求解拉普拉斯方程,其中都有详细的介绍。

5.系数矩阵组装

    系数矩阵的组装过程与文章:最简单的二维结构化有限元问题:求解拉普拉斯方程几乎一致,这里不再赘述。

    其中四个边均为第一类边界条件,加载的方式同样采用乘以大数的方法。具体实现方式如下:假设有0123四个点,对1号点在(x=0,y)位置,2号点在(x,y=0)位置,则乘以大数的方法如下:

6.计算结果

    将x,y属于(0,2pi)的区域划分为20*20个网格的计算结果与误差:

将研究区域划分为100*100个网格时的结果:

7.总结

    a.实现二维结构化有限元例子,计算流程与文章:最简单的二维结构化有限元问题:求解拉普拉斯方程几乎一致,区别在于单元系数矩阵与边界条件的加载,这两点也是所有有限元问题求解的关键所在。

    b.matlab在求解20*20网格量的时候效率依旧非常高,但是在求解100*100的时候效率就变得非常慢,因为有1万个单元,1万多个节点,需要生成1万*1万的矩阵,因此在内存占用和计算效率上用matlab直接求解线性方程组的方法效果都比较差。采用稀疏存储与高效的线性求解器是可以很好的改善这些问题。  

    c.与一维有限元的误差分析一样的结果,网格越多,计算的精度也就越高,网格20*20的误差在0.025左右,网格100*100的误差低至1e-3。但是看查看误差分布可以得知,并不是所有的地方都需要密集的网格,所以各方面最优角度考虑,自适应有限元技术同样可以二维的问题,不同点在于网格加密策略与实现的过程要复杂于一维网格。

来源:实践有限元
MATLAB理论
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-12-06
最近编辑:1月前
实践有限元
硕士 签名征集中
获赞 0粉丝 0文章 57课程 0
点赞
收藏
作者推荐

一维高阶叠层有限元实现

将一维cos函数分布的边值问题进行到底该问题的解析解为:有限元离散方程详细推导参考:最简单的一维有限元问题:求解cos函数分布3.高阶叠层基函数原理:高阶叠层基函数的本质是通过引入单元线性一阶基函数的高阶项来提高计算精度,它的高阶项表示的就是高阶精度项,高阶项在网格单元内不具备对应点的物理含义。这本质与高阶插值基函数不同,高阶插值在网格单元有对应点表示物理函数,例如一维高阶插值基函数有限元实现中高阶项对应的物理含义表示在单元中心点的数值结果。这里给出一维的1~3阶的基函数表达式:其中,基函数的推导过程可以参考:最简单的一维有限元问题:求解cos函数分布叠层基函数的特性:a.高阶基函数中包含低阶基函数;b.高阶部分不表示单元上某一点的具体解,表示的是对1阶精度的修正,意义可以理解为泰勒级数展开后的高阶项,高阶项越多,精度也越高。c.高阶部分N3,N4是单元的所有1阶基函数组合而成,因此用单元表示N3,N4所在的位置,即有几个单元就存在多少个N3,N4。需要注意N3,N4不表示单元上的数值结果,仅表示高阶项。4.单元系数矩阵的推导详细的推导过程参考最简单的一维有限元问题:求解cos函数分布与一维高阶插值基函数有限元实现,这里直接给出对应项的单元系数矩阵:可以从1~3阶的单元系数矩阵直观地看出,3阶系数矩阵包含2阶系数矩阵,2阶系数矩阵又包含1阶系数矩阵。系数矩阵从低阶到高阶层层叠加,因此称之为叠层基函数。5.组装全局系数矩阵为了简便,同样将研究区域(0~2pi)划分成三个基本单元,以此得出局部坐标系到全局坐标系的映射关系:a.1阶基函数的网格映射关系与全局系数矩阵表达式:系数矩阵组装过程与结果参考:最简单的一维有限元问题:求解cos函数分布b.2阶基函数的网格映射关系与全局系数矩阵表达式:系数矩阵的组装过程类似1阶有限元,这里直接给出组装结果:在网格起始点1号位置添加第一类边界条件(u=0),在网格终点4号位置添加第二类边界条件Kf=0,得到最终系数矩阵表达式:在带入具体数值后,得到的具体系数K矩阵如下:c.3阶基函数的网格映射关系与全局系数矩阵表达式:类似1阶系数矩阵的组装过程,在组装系数后,同样添加边界条件后,得到最终的系数矩阵表达式:在带入具体数值后,得到的具体系数K矩阵为:6.计算结果与对比在获得系数矩阵与右端项后,在matlab中通过简单的X=K\B就可以获得方程的解,再通过对应基函数的插值方法,可以得到研究区域内任意一点的数值解。这里为了更加具体的对比不同阶数的精度,通过插值获得所有单元的中心点数值解,具体插值公式为:最终的计算结果与理论解析解对比,得出计算误差为:a.研究区域划分为3个均匀长度单元:I.1阶计算结果:II.2阶计算结果:III.3阶计算结果:b.再给出研究区域划分为10个单元的计算结果:I.1阶计算结果:II.2阶计算结果:III.3阶计算结果:从结果直接看出,当划分为3个网格单元时,1~3阶的最大误差依次为:0.5,0.05,0.005;当划分为10个网格单元时,1~3阶的最大误差依次为:0.1,5e-4,5e-4。7.结论高阶叠层有限元的数值模拟结果的精度随着阶数的提高而逐渐提高,2阶相对于1阶的精度提高非常的明显,而随着网格增多,3阶相对于2阶的精度提高效果不是那么好。因此在一般的计算中,2阶精度也就足够,3阶虽然在精度上还有提升,但是占据的内存与计算的时间均明显增多,可能会导致得不偿失。来源:实践有限元

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈