首页/文章/ 详情

混合阶有限元的实现过程与详细分析:二维电磁场衰减

1月前浏览1076

简述

关于二维问题的有限元数值模拟分析,之前分别介绍了一阶、二阶插值基函数、二阶叠层基函数的有限元实现过程,并测试验证了二阶有限元结果明显高于一阶,但是同时二阶求解的未知量个数也远大于一阶。
在有些物理问题中,我们可能不要求研究区域中每个位置的精度都非常高,而只需要某些位置或者后处理结果精度高就可以了,因此整个区域使用高阶基函数可能会浪费计算和内存空间,因此混合阶有限元在优化计算效率方面就势在必行。
例如本次测试的例子:二维电磁传播规律。在实际问题中,需要知道的是电磁波在传入研究区域后在入射表面位置的电磁场的变化情况(专业领域通过计算表面位置的视电阻率作为研究对象),下面是求解视电阻率的公式。

如图中,通过计算测试点(蓝色星号表示)的视电阻率的变化规律,来获得研究区域在测试面的视电阻率变化情况。  

下面就详细介绍混合阶有限元的关键实现技术与结果分析对比。

1.叠层基函数与单元系数矩阵

二维电磁衰减的边值问题、有限元推导、叠层基函数、单元系数矩阵推导均可以参考:二阶叠层基函数:二维电磁衰减数值模拟,这里不再详细讨论,只介绍关键技术。
根据求解的有限元方程:  

二阶叠层基函数具体表达式为:

对应的单元系数矩阵为:

红色框表示一阶所含有的内容,蓝色框表示二阶所含有的内容。可见高阶叠层基函数的特征一目了然:高阶系数项包含低阶系数项。

2.系数矩阵组装

混合阶有限元的两个关键点:重点1:对高阶部分的单元的棱边进行重新编号;重点2:对混合阶边界面的处理。

其他的单元系数矩阵组装和边界条件加载可以参考:二阶叠层基函数:二维电磁衰减数值模拟。这里用极简网格详细介绍两个重点内容的实现过程,网格如下图:

蓝色 区域为一阶、黄色 区域为二阶。给出了对应的节点编号和两个二阶三角形棱边编号。总共未知数为11个,四个单元。局部到全局编号为:


可以发现,由于存在两个三角形不是高阶,所以不能直接用所有的棱边编号,得重新对仅是高阶的三角形棱边进行编号。

第二个重点是在阶数分界面的位置需要特殊处理。

例如上述网格,阶数分界面含有两个节点编号3、4和一个棱边编号11,从一阶、二阶的单元系数矩阵不难看出,节点编号体现在一阶,而棱边编号表示的是二阶内容,阶数边界上要保持阶数一致,就得把高阶降至低阶统一。因为该棱边两侧最低阶为一阶,所以需要把二阶降至一阶,即把棱边表示的二阶内容去掉,与一阶统一。

具体在矩阵中实现就是对该棱边代表的行列去掉或者乘以大数置零处理。下面给出示意矩阵,可以看到系数矩阵的第11列的对角线的乘以大数以及右端项置零,就是对阶数边界的处理。

3.结果展示

a.以上述四个单元的网格为例,分别对一阶、二阶、混合阶(2小节的混合方式)计算结果,然后求解六个节点的误差结果,对比结果如下:  

可见,1、2号节点由于是第一类强制边界,因此精度一致;3、4号节点在阶数分界面上,纯二阶精度最高,混合阶的精度整体高于一阶,而5、6号节点也是二阶精度最高、一阶精度最低。

 b.设置5*6的网格单元的均匀介质,计算y=0位置处的视电阻率,测试混合阶有限元的优势。已知均匀电阻率为1的介质,在y=0处计算的理论视电阻率结果为1.其中混合阶y<10为2阶,其他为1阶,具体分布如下:  

下面是66个网格节点的精度分布规律,可以看出,纯二阶精度明显要高于混合阶和一阶。而混合阶的精度整体精度略高于一阶,只有越接近y=0的时候,精度要更加高一些。

但是计算y=0位置的测点视电阻率的精度,发现混合阶几乎可以二阶媲美,远高于一阶计算精度。  

可见,如果仅需要y=0处的视电阻率达到高精度,则不需要考虑每个节点的精度,这时候使用混合阶的优势就非常明显,就本例子而言,混合阶的未知数为151个,而二阶的未知数精度为231个,具体计算系数矩阵比例,二阶是混合阶多了2.3倍。
c.设置5*10的网格,介质中存在不均匀电导率,分析混合阶不同数量下,精度与一阶、二阶的对比。如图所示,网格与测试的混合阶数量:

黑色框表示介质电阻率为100,蓝色、红色框等框表示不同混合阶,框内表示二阶部分。测试视电阻率如下:  

一阶计算结果和二阶结果完全不一致,而混合阶在y<6区域使用二阶基函数就已经达到了纯二阶的计算精度。而此时混合阶y<6的未知数相比于二阶的231个未知数而言,只有119个。

4.总结

1.介绍了二维三角形网格的混合阶有限元的实现,并详细介绍了其中关键步骤的实现过程;
2.混合阶的整体精度是高于低阶,其精度提升的地方主要是远离一阶部分的二阶,因此仅需要对感兴趣的区域使用高阶即可。
3.混合阶有限元在达到同等精度的时候,计算效率与内存资源利用往往远优于纯粹使用高阶基函数,这一点是混合阶有限元的优势所在。


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

一维混合高阶有限元详细实现过程

简述一维混合阶有限元,顾名思义,就是把不同阶数的基函数混合在一起。要实现混合阶有限元,这里不得不再次提到叠层基函数和插值基函数的区别,将两者加以对比,更加能理解如何实现混合阶。插值基函数的不同阶数的形函数是相对独立的,高低阶不存在包含的关系,因此在阶数不同的分界面上,无法保证基函数阶数一致,所以插值基函数无法实现混合阶有限元。具体插值基函数公式可以参看:一维高阶插值基函数有限元实现而叠层基函数的特点就是高阶基函数包含低阶,因此天然的适合做混合阶的实现,在阶数不同的分界面上,通过处理成相对低阶一致,就能够保证基函数阶数一致。下面将根据高阶叠层基函数的原理,详细介绍具体边值问题的混合阶实现过程。1.边值问题‍‍‍‍为了更好的体现混合阶有限元在某些问题上的必要性,这里引入一个新的边值问题:一维电磁波在导体介质上的衰减规律。假设电场只沿着X轴振动,磁场只沿着Y轴振动,则根据Maxwell方程的推导并处理,最终可以得到如下的一维电磁场传播规律方程:该边值问题在均匀介质中的解析解为:2.有限元离散方程边值问题的微分方程的推导过程类似:最简单的一维有限元问题:求解cos函数分布,不同点在于第二项多了表征研究介质区域属性的系数k,这部分的简略推导如下:使用伽辽金推导方法,首先对微分方程乘以试探函数,并且再求解区域积分,得到:对上述式子第一项进行分部积分处理后:其中,上述等式的右边对一项表示边界位置,这部分对于边界条件,详细推导如下:最终得出有限元方程为:解释为什么第三类边界条件部分的系数矩阵为[1]:因为一维度的边界为一个点,也就是零维度,基函数的目的是为了插值得到对应单元类的任意一点值,而一个点零维则表示该单元(点单元)只可能存在一个值(可以理解为不管如何插值,都只有几个结果),所以插值基函数就是[1],对应的系数矩阵就是[1]*[1]=[1].可以类比二维的边界是一维,所以二维的边界条件的基函数用的是一维的基函数;三维的边界条件用的基函数是二维的基函数。3.高阶叠层基函数直接给出1、2、3阶基函数的表达式与关系如下:其中1阶基函数的详细推导细节参考:最简单的一维有限元问题:求解cos函数分布,高阶基函数通过低阶可以获得。从阶数的组成方式可以观察到,1阶基函数是直接与一个点关联,并且具有具体物理意义;2、3阶是与单元的所有点关联,不具备物理意义(无法表示在单元内任何一点的数值解)。所以,1阶基函数的位置表示在点上,2、3阶基函数用单元表示,但是不具备物理意义。这个特点在后面也会多次强调。4.叠层基函数对应的系数矩阵红色方块从小到大表示1、2、3阶,可以直观感受到单元系数矩阵高阶包含低阶的现象。5.组装系数矩阵以三个均匀剖分的单元为例:a.给出1阶的全局与局部坐标系映射关系,后期将用于对比混合阶的精度:b.1、2、3混合阶全局坐标系与局部坐标系映射关系:将三个单元系数矩阵组装成全局系数矩阵的位置关系如下:将第一类边界条件和第三类边界条件加入上述矩阵中,得到:从组装结果与网格都明确显示:单元1与单元2分别为3阶和2阶,并且两者相关联的2号节点均表示1阶部分的基函数,也就是说单元1,2在分界点2上自然的满足阶数一致。2号单元与3号单元也是同理,所以这不需要对边界再做阶数一致化处理。注意在二维、三维情况又有所不同。6.具体系数矩阵与结果对比a.首先考虑3个网格单元,给定需要的物理参数与网格剖分信息:然后可以得到具体的系数矩阵:求解线性方程组后,通过对应阶数插值(高阶叠层基函数必须通过插值获得对应点的数值解,因为仅用1阶部分的结果可能无法体现高阶部分的精度),获得每个单元中心点的数值解,具体的插值方式:下面给出具体插值得到的数值解与理论解析解的误差分析结果:Extheoy1阶数值解混合阶数值解1阶误差%混合阶误差%实部0.69470.71770.69382.31%0.09%0.22900.25880.22592.97%0.31%0.00000.01300.01651.30%1.65%虚部0.22570.16480.22606.09%0.03%0.31520.30860.31670.66%0.15%0.20790.22000.21011.22%0.23%1阶数值解对比理论解析解:1、2、3阶混合阶数值解对比理论解:计算结果显示:纯粹1阶对比混合阶的精度要低;而混合阶中,阶数越高,与解析解的误差越小,3阶、2阶、1阶的单元数值解实部误差分布为:0.09%、0.31%、1.65%。可见,混合阶有限元的实现是成功的。b.考虑20个网格单元,具体参数如下:1阶计算结果对比解析解:混合阶阶数信息与计算结果对比解析解:单元编号12345678910单元阶数3333332222单元编号11121314151617181920单元阶数2211111111从20个单元网格的计算结果显示:纯粹1阶的数值结果中,误差较大的位置分布x=0~400位置。因此在混合阶的组合中,将网格的前部分设置为3阶,中部设置为2阶,误差较小的后部分设置为1阶,如此组合的阶数,求解的数值结果误差能控制在了0.04%以下。7.总结(1)混合阶的计算精度整体上是明显高于低阶数值结果的;(2)混合阶的实现过程需要注意的是对高阶部分的编号处理,以及对高低阶分界面的处理,尤其是二维、三维的数值模拟,这一点上要重要注意。(3)混合阶的必要性:根据20个单元网格的计算结果,纯粹的1阶计算精度,只有左侧网格单元的误差较大,这部分的确需要高阶来提高精度;而在右侧网格的误差很小,这部分不需要高阶。所以混合阶有限元就在精度与内存性能上达到了最优效果,即保证了全局的精度要求,又避免了不必要的内存空间浪费。这对于大规模数据模拟或者仅需要局部最优解的问题来说,是一个非常好的选择。(4)综述混合高阶有限元实现过程的主要步骤:a.网格划分;b.边值问题推导出有限元离散化方程;c.网格单元阶数的确定;d.排列全局计算点(自由度)编号与局部自由度编号的映射关系;e.推导叠层基函数表达式与单元系数矩阵;f.根据全局编号组装全局系数矩阵;g.添加边界条件,对于第一类边界的加入将高阶的点处理成1阶;h.求解线性方程组得出数值结果;i.使用叠层基函数插值获得研究区域任意一点结果;来源:实践有限元

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