首页/文章/ 详情

泊松方程-三维四面体插值基函数有限元实现-高斯积分

1月前浏览1015

简述

在之前实现过三维四面体网格的一阶、二阶插值基函数的泊松方程、霍姆霍兹方程有限元方法,其中单元系数矩阵都是直接推导得到,对于一阶4*4的系数矩阵简单,但是对于二阶10*10的系数矩阵就比较繁琐,进行了大篇幅的推导过程。

本文再次使用高斯积分原理,避开直接推导单元系数矩阵,最终实现一阶、二阶的插值型基函数的有限元算法。

本次将实现泊松方程与霍姆霍兹方程两种边值问题,用来对比采取高斯积分方法的结果与之前文章的结果,因此对于边值问题推导有限元问题不再赘述,详细请参考以下文章:

a.泊松方程三维二阶插值有限元实现-四面体

b.三维非结构化有限元实现-possion方程

c.三维高阶叠层与插值有限元细节对比-霍姆霍兹方程

1.边值问题

这里给出两种边值问题的表达式,泊松方程:

霍姆霍兹方程,模拟电场在损耗电介质中的衰减规律:

2.基函数表达式 

根据四面体面积坐标原理,获得线性基函数,简写可以表示为:

其中,对应方向的梯度有:

因此,对应的一阶型函数及其梯度为:

对应的二阶插值基函数为:

其对应的梯度为:

    可见,二阶10个基函数,单元系数矩阵为10*10,其推导过程就会非常的繁琐并且容易出错。

3.使用高斯积分获得系数矩阵

对于以上两种边值问题,其有限元方程,均可以写成:

将上述积分问题,写成高斯积分形式:

其中,Fmat,Frhs可以通过高斯积分点获得,V是四面体的体积。对于一阶、二阶四面体网格的高斯积分点位置对应的面积坐标权重值与积分权重值如下:

在求解单元系数过程中,首先使用高斯积分的面积坐标权重值Li得到Fmat与Frhs,然后乘以对应的积分权重值W,即可得到一个单元的单元系数矩阵,整个过程不需要再推导求解单元系数矩阵的具体表达式。

4.系数矩阵组装与边界条件加载

在得到每个单元的系数矩阵后,组装方式与以前介绍的方式一致,只需要将每个单元系数矩阵按照其局部节点到全局节点的映射关系,一一累加到全局系数矩阵中。

唯一需要注意的是二阶有限元,需要获取得到四面体每个棱边的局部与全局映射关系,与节点一样,其映射关系也必须是一一对应的。

边界条件的加载与以前文章介绍的方法一致,这里不再赘述。这些详细的实现方法均可以在简介中的文章中查看。

5.结果展示

a.泊松方程一阶    

b.泊松方程二阶

c.霍姆霍兹方程一阶

与理论解析解对比,精度验证:    

可视化求解结果的实部和虚部:

   

d.霍姆霍兹方程模拟电场衰减过程:二阶

与理论解析解对比,精度验证:

可视化求解结果的实部和虚部:

观察上述两种边值问题,粗略看结果基本上是正确的,一阶与二阶的精度对比,二阶的确也提高了至少10倍的计算精度。

再与之前的文章对比,一阶和二阶的结果在精度上完全一致,说明了使用高斯积分这种方式能得到完全一致的结果。    

最后

本次走通了基于高斯积分方法的三维有限元流程,避免了直接推导系数矩阵,相对于低阶优势不明显,但是如果是二阶10*10系数矩阵、三阶20*20的系数矩阵,这种方式就具备更好的实现优势。并且两种方式的结果精度是一致。

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

二阶矢量有限元实现:二维电场在介质中的衰减

简述二维一阶的矢量有限元在之前的文章中已有实现,本文在高斯积分求解的基础上,实现三角形网格的叠层二维二阶矢量有限元。并分析其计算精度与计算效率。二维电磁在介质中的传播问题的边值问题这里不再详细介绍,具体可以参考:1.二阶矢量基函数对于矢量基函数而言,首先依旧是得到三角形网格的线性基底面积坐标:由此,可以得到一阶矢量旋度基函数表达式为:对于二阶矢量基函数,则是保留完全的一阶矢量基函数,加上二阶矢量基函数的旋度部分,进而得到:对于第三项面矢量基函数而言,虽然节点组合可以得到三组面基函数,但是由于其中任意一项与其他两项是呈线性相关的,因此仅需要考虑任意两项。具体展开后,每个三角形由八个矢量基函数组成,如下:可以发现,前三项基函数与一阶的矢量基函数是一致的,这也是叠层矢量基函数的特征,高阶项保留低阶项,以便于使用混合阶矢量有限元。2.系数矩阵的推导同样,由于引入了高斯积分来求解具体的系数矩阵,因此不需要完全推导N*N的系数矩阵,只需要推导得到其表达式即可。因此,根据上述二阶矢量基函数,需要进一步推导的内容是矢量基函数的旋度。第一部分一阶矢量基函数的旋度直接给出结果:第二部分的矢量基函数本身由梯度组成,因此也很容易得出其旋度等于零。第三部分面矢量基函数进行推导,难度也不大:最终得到三部分的旋度表达式如下:接下来的求解过程就交给高斯积分完成,最终求解得到每个三角形的系数矩阵,具体高斯离散求解如下所示:3.系数矩阵的组装与边界条件对于二阶矢量有限元,组装过程中需要注意对应棱边编号、正负以及对应面的方向确定。这一点是非常重要的。基本原理就是保证同一条边在全局上是具有唯一的方向的,同一个面在全局方向也是唯一确定的。同时也需要把这些边的全局方向映射到局部单元上,以确保根据母单元顺序可以唯一的组装好系数矩阵。对于母单元而言,三角形的排列顺序为:自由度节点编号棱边11,2棱边22,3棱边33,1棱边41,2棱边52,3棱边63,1面11,2,3面22,3,1对于第一类边界条件,其加载原理与叠层节点的有限元一致,在一阶部分使用强加第一类边界,对于二阶部分强加为零。同时矢量有限元需要将节点位置的场值映射到棱边切向分量,具体实现可参考:4.结果展示测试模型为10m*20m的矩形,频率为1000Hz的电场垂直入射Y方向,介质体电导率为1欧姆米,模拟电场在介质中的衰减过程。Eg1.网格横纵剖分5*10*2共计100个三角形网格其中棱边165个,未知数共计165*2+100*2=530个。下面是具体的三角形网格剖分。系数矩阵的分布如下,可以看出两个棱边部分与两个面部分在系数矩阵中体现的很分明,总体上该系数矩阵还是大型稀疏矩阵。求解该矩阵方程后,得到结果,将二阶结果、一阶结果的电场与理论解进行对比,如下:未知数矩阵求解时间/s最大误差1阶矢量有限元1655.046e-310%2阶矢量有限元5300.0140750.3%对比发现,相比于一阶矢量有限元,二阶有限元计算精度提高了30多倍,当然二阶的计算时长是一阶的2.79倍。二阶精度提升在与理论解对比上也是非常的明显。Eg2.剖分网格为20*20*2=800个网格,共计4080个未知数。在模型中间放置一个低电导率,得到的电场衰减分布规律如下:可以明显看出,电场Ex的实部虚部在介质分界面有明显的突变情况。这也体现了矢量基函数的特点:仅保证切向连续,不保证法向连续。总结1.成功实现了二维二阶矢量有限元,相对于一阶而言计算精度有明显提升;2.二阶矢量有限元实现的关键点需要注意单元于自由度之间的映射关系以及确保每个自由度全局方向唯一性。3.矢量基函数的构成方面,可以理解为一阶矢量基函数为二阶节点基函数的旋度部分;二阶矢量基函数为二阶节点基函数的旋度、梯度部分加上三阶节点基函数的旋度部分。来源:实践有限元

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