首页/文章/ 详情

一维高阶插值基函数有限元实现

21天前浏览48
  1. 边值问题依旧讨论:求解cos函数分布

    边值问题的解析解:

2.有限元离散方程

推导过程参考:最简单的一维有限元问题

3.高阶(二阶)插值形函数

高阶插值形函数,顾名思义是在低阶的基础上插入点,对于二阶插值形函数,则是在一阶的基础上组建而成,具体形式如下:

L1,L2表示一阶线性基函数,N1,N2,N3表示二阶插值形函数,可以直观看出二阶的基函数完全由一阶基函数组合而成,但是与一阶的基函数完全不同。同时,在每个单元内,二阶插值形函数满足:

这就说明每个插值形函数对应网格所在位置的数值解,具有物理意义,这一点与高阶叠层基函数具有本质区别。在网格上的体现为在原有单元的中心点处插入一个点,同样以三个单元为例:

局部单元编号为从左到右,编号为1,2,3,对应二阶形函数的三个形函数N1,N2,N3。因此全局编号的表:    

4.单元系数矩阵推导

在确定了二阶插值基函数后,将基函数带入了有限元离散方程中推导即可得到对应部分的系数矩阵,这里同样采取以下公式或者查表的方式获得具体系数

在有了上述积分公式的工具后,这里再次给出系数矩阵的推导过程,其推导方式与一阶基函数的推导过程基本一致:

首先给出每个插值函数的梯度结果:

然后推导梯度乘以梯度的积分部分:

根据有限元矩阵具有对称性的原理,则可以得到最终的梯度乘以梯度的系数矩阵,其中a表示单元边的长度:

同理,有限元离散方程的第二项,基函数乘以基函数的系数矩阵推导:

得到第二项的系数矩阵为:

5.组装全局系数矩阵

针对上述三个单元网格的剖分为例,节点总个数为7个,因此最终组合成7*7的系数矩阵:

与一阶线性基函数类似,在起始点添加第一类边界条件、在终点添加第二类边界Kf=0

对应的右端项为:

在实际操作中,三等分求解区域后,单元的边长a=2.0944,组装后得到的K具体系数矩阵为:

6.计算结果与对比

三个单元网格7个节点的计算结果为:

将计算结果插值到每个单元的中心点,以此与1阶基函数对比计算精度,对比的效果更加的明显,其中二阶基函数的插值公式为:

3个网格单元,二阶基函数与一阶基函数对比精度:

10个网格单元,二阶基函数与一阶基函数对比精度

50个网格单元,二阶基函数与一阶基函数对比精度

7.总结

    1.高阶(二阶)插值型基函数有限元的流程基本上与低阶有限元一致,区别仅在于插值基函数;

     2.同等网格下,二阶有限元的计算精度至少是低阶有限元精度的十倍以上。

     3.值得注意的点:I 局部编号与全局编号的必须严格一一映射;II 边界条件必须添加到对应的网格边界点上;


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

最简单的一维有限元问题:求解cos函数分布

1.给出边值问题满足cos函数的边值问题:求解区域离散x=(0,2pi)该边值问题的解析解为:2.有限元离散方程推导首先对求解区域离散,例如x=(0,2pi)区域离散得到的网格:这里展示离散成3个单元段,四个节点,对应编号关系如下:针对离散网格,使用伽辽金推导方法对连续的边值问题进行离散,首先对微分方程乘以试探函数,并且再求解区域积分,得到:对上述式子第一项进行分部积分处理后:根据边界条件对上述的等号右端第一项分析:在x=0处是第一类边界条件,后续强加边界后会覆盖掉这里x=0项的值;在x=2pi处是第二类边界条件,对应给出的第二类边界条件等于0,也就是在x=2pi处加入第二类边界条件的系数矩阵为零;具体详细的公式,在后续给出,这里继续推导区域内的有限元方程:对求解区域进行网格划分,引入每个单元的线性插值型函数,表示为:对上述方程进行离散,得到有限元离散方程:其中,试探函数不等于零,因此约去,简化用矩阵表示,得到:当加入边界条件后,变成:上述就是有限元离散方程,K表示对应边值问题的有限元系数矩阵。3.确定形函数在每个小单元内,通过端点解与形函数的组合可以获得单元内任意一点的求解结果:理解为在单元(一维线段)内u任意一点值有两个端点u1,u2通过插值函数N获得。因此不难理解,型函数N必须满足在端点1处插值的点为u1,在端点2处插值结果为u2。使用拉格朗日插值公式,可以直接获得满足上述要求的基本插值函数:其中,a等于线段的长度,当型函数为线性一阶基函数的时候,形函数就等于插值函数:可以简单验证,上述形函数满足:4.单元系数矩阵推导在确定形函数后,根据有限元离散方程,发现还需要形函数的梯度,因此根据形函数与插值函数的关系,推导如下:根据有限元离散方程的系数矩阵K,其中主要有两部分组成,梯度*梯度与N*N,因此,分开考虑两部分,带入形函数的梯度推导结果,得到:其中第一项是常数积分,很容易获得;第二个公式可以查表获得,这里手动积分看看原理。对第二项的积分变量转化到§下,因为§的积分范围是一定的(0,1),因此:所以,得到第二项的积分结果:一般的,通过带入公式计算得到系数或者查表得到:5.组装全局系数矩阵根据上述离散网格,离散成三个单元,因此,单元长度a等于2pi/3,因此第一个单元的系数矩阵:其他两个单元一次可以得到相同的系数矩阵,然后把三个系数矩阵根据单元节点列表将局部单元系数矩阵一一映射到全局节点中:然后,对系数矩阵添加边界条件:在x=0处的第一类边界条件,使用乘以大数的方法,得到:在x=2pi位置处添加第二类边界条件,在终端边界点添加矩阵Kf:最终得到的系数矩阵数据,线性方程组:6.有限元计算结果求解线性方程组有很多方法,大体分成迭代法和直接求解方法,这里采用matlab中自带的直接求解方法求解,求解结果为:用图像显示,数值结果与解析解的误差:3个网格单元:10个网格单元:50个网格单元:可以直观感受,3个网格的最大计算误差在0.5左右,10个网格误差在0.1以下,而50个网格精度就达到了4e-3,基本上与理论解完全重合。7.总结有限元求解流程:1.确定边值问题与求解区域;2.推导有限元离散方程;3.确定形函数;4.单元系数矩阵推导;5.组装全局系数矩阵;6.求解线性方程组得到数值结果。来源:实践有限元

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