首页/文章/ 详情

三维矢量有限元实现-六面体网格

1月前浏览768

简述

本文以矢量波动方程描述的电场在介质中衰减规律为边值问题,介绍六面体网格的矢量基函数、系数矩阵推导。矢量波动方程的有限元推导这里不再介绍,详细参考:电场矢量波动方程的三维有限元实现

1.六面体网格基函数

六面体的棱边有12条,xyz方向各四条,因此棱边基函数也有十二条,分为xyz三个方向,可以得到基函数的插值公式为:

首先给出六面体单元的棱边编号的规律,如下图:

根据二维棱边基函数的经验,参考二维矢量有限元(结构化网格)实现流程,三维的基函数同样由一维基函数组装得到,已知三个方向的一维线性基函数为:    

以此来组装三维棱边基函数。仔细观察,针对Nx方向的棱边1,2,3,4,它在x方向是不会有变化的,因此可以断定Nx中是没有x方向的一维基函数,然后可以发现这四条边的插值规律,可以由zy方向的一维基函数组合表示获得,由此类推,可以得到棱边基函数:

可以发现,与节点基函数最大的不同,在于这十二个基函数都具有方向,Nx,Ny,Nz分别代表了XYZ三方向上各自棱边的插值基函数。并且验证发现,其顺序也是和上述图形中的棱边顺序一致,这很重要,不同的顺序得到的棱边基函数表达式结果也是不一样的。并且不难推导得到

梯度为零,而旋度不为零。继续推导各基函数的偏导数,以备后续使用:

   

2.单元系数矩阵推导

根据三维矢量波动方程的有限元方程:

针对第一项旋度乘积的积分项,得出其是由九个部分组成:

其中,根据单元系数矩阵的对称性,只需要求解对角线矩阵和上三角矩阵即可,首先推导单个基函数旋度表达式:

然后对上述式子进一步推导旋度的乘积,得到:    

由此,整理得到表达式:

对每一项进行积分,结合基函数的偏导数结果,可以快速求得:

 

 

非对角线矩阵:

         

所以,K的旋度部分的系数矩阵可以表示成3个4*4系数矩阵k1、k2、k3的组合;

继续推导系数矩阵的第二项,由于:    

不难发现:

因此,非对角线为零,只剩下对角线元素:

很容易推导:

从而可以得到:

观察Kyy,Kzz,两者具有与Kxx一样的规律,因此,系数矩阵为一样的。    


因此,归集有限元第二项结果为:

          


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

系数矩阵组装与一般的有限元组装一样,关键在于获得单元与棱边的映射关系,这里需要自己写算法获得该映射关系与棱边总数。最简单的方法就是先标记X再标记Y最后考虑Z,标记的过程要保持与单元六面体的顺序一致即可。这里给出1*3*2共计6个单元的映射关系以供参考:

x方向的棱边数,共计12个:

y方向的棱边数,共计18个:   

z方向的棱边数,共计16个:

同样仅考虑第一类边界条件加载,需要在棱边上赋值,如果考虑电场传播方向z方向,振动方程x方向的时候,则直接对边界上x方向的棱边赋值乘以大数即可。因为本身x方向的棱边方向与电场振动方向就是一致的,相比于四面体网格而言,要容易实现一些。

4.结果

测试模型大小10*10*20m,各个方向网格大小为10*10*20,共计2000个六面体,7040个棱边。

a.频率为1e4Hz,电导率为1欧姆米

数值结果与理论基本上能达到一致,误差还好,在1%以下。三维切片结果显示:

   

从三维切片结果显示,基本上与理论一致,在均匀介质中,Ex方向的电场顺利传过模型,并没有发射反射等现象,因此Ey,Ez几乎是没有电场的,有的仅仅是数值带来的误差。

b.频率为1e4Hz,电阻率为1欧姆米。中间存在一个立方体的区域电阻率为0.001欧姆米。

       

可以发现,各个方向均有明显的反应,其中以入射波Ex方向的变化最大,并且能明显观察到分界面位置的突变。

5.总结

a.结构化网格的矢量有限元实现起来相对要比非结构网格容易,但是其中依旧是要注意局部棱边顺序与全局棱边顺序的一致。

b.从上述结果中看出,依旧存在很大误差,这是由于网格量不足的原因导致的,在实际物理模型中,还需要对网格进行渐变处理,避免边界上的反射,或者使用吸收边界、解二次长的方法进行处理。

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

三维三棱柱单元有限元实现-泊松方程

简述本文介绍一种网格单元:三棱柱单元,并通过简单的泊松方程来实现其有限元流程。这种单元特殊性在于在两个方向上是非结构,而剩下方向是结构化的,这导致对于一些特殊场景,比如某个方向变化远没有其他两个方向复杂的时候,使用三棱柱单元剖分能在保证几何形态的同时有效的降低网格量。同样,possion方程的微分问题与有限元方程这里不再赘述,详细参考:泊松方程三维结构化有限元实现初探1.三棱柱基函数推导分析上述三棱柱示意图的组成形式,由XY平面的上下两个三角形和Z方向的三条线连接组合而成,因此考虑三棱柱基函数也可以由三角形基函数和线单元基函数组合而成。已知XY平面的三角形基函数(参考:同轴线求电容,初探泊松方程的二维非结构化有限元)与Z方向的线单元(参考:最简单的一维有限元问题:求解cos函数分布):组合二者,得到三棱柱的6个节点基函数:所以,三棱柱内任意位置的插值公式表示为:根据三角形基函数规律与线单元基函数规律,不难得出,当p点落在任意一节点的时候,对应节点的基函数等于1,其他基函数等于0。三棱柱内任意点在z方向移动时,符合线单元的线性变化规律,在x,y轴变化的时候,符合面积坐标规律,说明三棱柱组合而成的形函数符合要求继续推导得出三棱柱基函数的梯度表达式:2.系数矩阵推导针对三维泊松方程梯度项的有限元方程:首先考虑x方向的梯度项乘积积分的推导:组合成系数矩阵为:上述积分中线单元部分的积分可以使用一维线单元积分公式:针对第一项对y的偏导,可以直接将对x的偏导的系数结果中的a系数改成b系数即可。对于第三项对z偏导的推导:上述积分中的二维积分推导可以使用二维三角形积分公式:其他项可以类比得出,最终得到关于z方向上的系数矩阵:由此,得到偏导数整体的单元系数矩阵:针对泊松方程的右端项的有限元单元系数向量的推导:3.总体系数矩阵组装对于三棱柱的网格生成软件,这里没有特别调研,本次使用的三棱柱网格是自己生成的相对结构化的网格。如下图,对于一个2*2*1的三棱柱网格:节点共计18个,全局节点编号如下:三棱柱单元共计8个,与全局节点编号:通过上述单元与节点的全局关系,即可在获得每个单元的6*6单元系数矩阵后,将这些单元系数矩阵一一组装累加起来,从而得到全局18*18系数矩阵与全局18*1向量的右端项。边界条件依旧采用第一类边界条件,边界上u=0,对六个边界面上的节点均乘以大数处理。其组合方式与四面体、六面体网格的有限元组装方式一致,具体组装结果这里不再显示。4.结果显示设置网格20*20*10,共计8000个三棱柱网格:求解的possion切片图显示:不难看出,求解结果与之前的四面体、六面体网格的结果是一致,说明整个三棱柱的基函数、系数矩阵推导过程都是正确性。5.结论1.三棱柱单元的有限元实现过程的重点还是三棱柱基函数的确定与系数矩阵的推导,其他流程与一般的有限元流程一致。2.如三棱柱网格剖分图显示,三棱柱网格的优势在于某个平面上是非结构化的三角形网格,这使得在这个平面上可以要求模型为复杂模型;而在另一个方向上是结构化网格,可以模拟一些相对于平面尺寸极薄、极厚的模型,并且不会生成如四面体网格那样畸形的差网格。来源:实践有限元

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