首页/文章/ 详情

二维三角形网格任意阶有限元实现

2月前浏览1020

简述

本文将介绍二维三角形网格任意高阶基函数的整个实现流程,通过一个简单的解析解为sin函数的边值问题,对比不同阶数的高阶与解析解的误差。

1.边值问题

讨论三角形的任意高阶网格,采用的边值问题使用文章《二维有限元实现详细过程:三角形网格二阶插值基函数》所表示的边值问题。

理论解为:

该问题的有限元推导也可以这篇文章,这里直接给出有限元方程

2.系数矩阵推导

对于三角形任意阶基函数的推导在前一篇文章《三角形高阶基函数通式的两种获取方法》已经详细介绍,这里通过第二种方法进一步推导。下面给出基函数通式与基函数梯度的通式:    

梯度表达式为:

当已知上述的通解公式后,进一步推导有限元的系数矩阵方程,已知边值问题离散后的有限元方程:

进一步推导,在每个单元上,将积分式子写成高斯积分形式,得到:    

可见,对被积函数P的每一项均可以通过基函数和基函数的梯度获得,从而可获得单元的系数矩阵。

3.网格映射关系与高斯积分

获得单元系数矩阵后,按照有限元组装方式,将对应项系数累加即可。其中如何获得单元节点的局部变量与全局变量的映射关系,是一个重点问题。这里采用以下方式进行排列单元,首先排列三角形顶点编号,然后排列棱边节点编号,最后排列单元内部节点编号。

下面展示母单元的局部节点编号顺序如下,以四阶网格为例:

下面给出两个三角形单元网格下的不同阶数网格,对于四阶节点的全局坐标:    

因此,映射关系可以得到:

高斯积分的积分点与积分权重值这里直接查阅书籍获取,更多高阶的插值可以再网上查阅,或者通过高斯积分的原理通过编程实现,这部分不是本文的重点。

   

准备好以上内容后,即可编程实现任意高阶的有限元。有限元的边界条件依旧采用简单的第一类边界条件的加载方法。

4.结果展示

模型区域为x = [0 2*pi],y=[0 2*pi];基本网格采取8*8的网格,共计128个三角形。

以下展示结果分别是1~4阶的网格节点关系、所有节点数值结果,三角形顶点的数值精度:

eg1 1阶基函数 ,共计81个节点未知数

   

eg2 2阶基函数 共计289个节点未知数    

   

eg3 3阶基函数 共计625个节点未知数

   

eg4 4阶基函数 共计1089个节点未知数    

   

通过观察1~4阶的有限元结果,发现随着阶数的不断增加,精度也在成惊人的100倍的速度增加,从最开始是的1e-1,到1e-7次方的精度。

5.结论

1.在使用高斯积分求解单元系数矩阵的时候,对高斯阶数的选择非常重要,一般的选择阶数大于等于有限元的阶数。

2.如果采用乘以大数的方法加载边界条件,需要注意求解结果是否是正确收敛的;

3.三角形高阶的精度增加,竟然是每增加一阶,精度提高一百倍,这一点不知道是特例还是的确如此,需要更多的算例。不过这也再次说明了高阶结果的精度优势可能是简单的加密网格难以达到的。

4.相比于直接推导获得单元系数矩阵而言,三角形的高斯积分同样避免了这些复杂的推导过程,通过高斯积分即可获得单元系数矩阵,为实现任意阶基函数提供了必要基础。

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

泊松方程的三维六面体任意高阶有限元实现

简述本文继续介绍三维六面体的高阶有限元实现过程,承接之前一维、二维结果,三维仅在二维基础上多了一个维度,实现起来也比较容易。一维、二维的内容这里不再介绍,依旧采用泊松方程作为示例,一维、二维任意阶有限元具体流程参考以下三篇文章:二维四面体任意高阶通式有限元实现-泊松方程任意高阶通式有限元玩法-泊松方程初探高斯积分在一维有限元中运用:泊松方程1.六面体基函数对于1阶而言,其表达式为:其中,将各方向的线性基函数落在[-1,1]上,得到如下转化关系:不难想到,其通式可以表示为:由此,其梯度可以表示为:2.系数矩阵推导推导与二维四边形推导一致,这里直接给出三个方向的推导。x方向偏导数:Y、Z方向的偏导数同样可以获得:右端项推导:推导完成,剩下的交给高斯积分来求解具体单元系数矩阵!3.系数矩阵组装这里与二维四边形网格存在的难点一致,首先需要确定六面体节点的局部节点顺序,然后再实现全局节点到局部节点的映射关系。具体实现根据六面体本身的拓扑关系获得,类似四边形,只是过程繁琐而已。4.结果展示模型大小10*10*10,剖分为numx*numy*numz=4*4*4=64个网格。Eg1:1阶情况,共计125个未知数其非零元素的稀疏矩阵分布如下:三维可视化结果,将节点值显示如下:从稀疏矩阵规律看出,结构化网格的确很符合有限元逻辑,矩阵呈现稀疏化,并且非零元素集中成带状,这种形态也便于线性求解器求解。对于4*4*4网格而言,1阶的结果看起来还是太粗糙。Eg2:对于2阶,共计729个未知数其非零元素的稀疏矩阵分布如下:三维可视化结果,将节点值显示如下:Eg3:针对4阶,未知数大量增加,共计4913个同样,对应非零元素的稀疏矩阵分布如下:三维可视化结果,将节点值显示如下:从2阶、4阶的结果,随着阶数增加,未知数也成倍增加,结果也更加精致。并且从高阶的非零元素分布,可以清晰看出网格个数是由四个组成,并且同侧非对角线的带状条数也代表了具体阶数。最后1.对于插值型基函数的一、二、三维度的任意阶有限元的实现到此就全部打通,其核心技术两点:a.高阶插值形函数通式;b.高斯积分的使用;一个难点:高阶形函数所需要的网格节点生成。2.三维的高阶有限元,如果自己推导高阶单元系数矩阵也是一个庞大的工程,二阶单元系数矩阵为27*27的维度,4阶125*125的系数矩阵,难以想象,这时才真正体现高斯积分的强大,大量避免了繁琐的计算,将这些计算交给计算机执行。来源:实践有限元

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