首页/文章/ 详情

p型自适应有限元实现

22天前浏览91

简述

在很多工程物理的有限元仿真过程中,网格剖分是一个难点,得到适合模型的最优网格更是难上加难,自适应有限元则是解决方法之一。

自适应有限元有很多分支,大体上可分成:h型自适应,p型自适应,hp型自适应,r型自适应,本次要介绍的是P型自适应有限元的实现。

p型自适应:在不改变网格的基础上,改变每个网格单元的阶数来实现提高数值解的精度。有文献提及:“p型虽然不如h型更加的直观,但是在收敛效率上通常由于h型自适应”。

这篇文章的边值问题沿用一维电磁波的在介质中的传播规律,具体有限元推导部分可以参考:“适应有限元技术:一维电场衰减数值模拟”、“一维混合高阶有限元详细实现过程”,本文主要介绍p型自适应部分。

1.自适应有限元流程

其中重点是三个部分:有限元模拟,后验误差估计,网格优化。

对于一维p型自适应而言,网格优化体现在每个网格上的阶数,根据后验误差与给出的策略即可,不需要改变网格本身。

该边值问题的有限元数值模拟部分的详细实现过程请参考:“一维混合高阶有限元详细实现过程”。

后验误差这里采取基于残差的后验误差,其基本原理是数值解带入到原边值问题中所得到的残差即可评价该网格的精度是否满足要求,关于后验误差更加详细的内容可以参考:“自适应有限元:几种常见的后验误差”。

根据上述公式,对于理论解情况,r是等于零,而对于离散求解的数值解,r一般情况是非零的,这就提供了每个网格解的残差,即可得到对应物理问题在当前网格阶数下的误差情况。

这其中有个关键点是对数值解求取两次导数的技术,对于1阶有限元而言,一次导数为常数,二次导数即为零。这个问题在高阶的情况不用过多纠结,当为高阶的时候,二次导数自然不等于零。    

这里展示二次导数的具体推导,同样给出基本的线性基函数:

1阶叠层基函数与一次导数、二次导数的表达式:

2阶基函数则添加:

对于3阶基函数,的第四个基函数为:

   

N阶基函数的通式表示为:

对于初始网格的阶数选定,均为1阶,然后选择误差较大的一半进行加1,直到所有网格精度均满足要求。

退出自适应迭代标准:选择连续两次迭代变化结果,二者数值结果的误差变化量小于给定范围,即可满足要求,公式如下:

2.测试结果

Eg1:模型参数

自适应最终结果如下:

单元残差与单元阶数如下:    

Eg2:介电常数为0的情况
     

自适应结果下的电场如下:

单元误差与单元阶数如下:

Eg3:设计一个电导率变化的模型,中间存在相对高导的区域,结果如下: 
  

自适应结果下的电场如下:

单元误差与单元阶数如下:

              

测试各个模型后,自适应阶数的效果还是比较显著,呈现阶数越高,精度越大的态势。并且在变化区域大的地方阶数会高于阶数低的区域。

3.结论

实现了一维的P型自适应有限元,由于其一维的原因,不需要对阶数不同单元进行处理,所以其关键在于后验误差的获取和退出迭代标准的判断。

本次选择的后验误差与标准,从简单模型的效果上看不错的,在变化大的地方进行了阶数明显要高于变化小的区域。

一维的p型自适应有限元相对容易简单,这里也仅仅是抛砖引玉,对于二维、三维而言,考虑的因素更多,尤其是均匀网格有时候难以满足要求,对于ph型自适应,加密网格的同时再进行阶数优化可能会是更好的选择。

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

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

简述本文以矢量波动方程描述的电场在介质中衰减规律为边值问题,介绍六面体网格的矢量基函数、系数矩阵推导。矢量波动方程的有限元推导这里不再介绍,详细参考:电场矢量波动方程的三维有限元实现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.从上述结果中看出,依旧存在很大误差,这是由于网格量不足的原因导致的,在实际物理模型中,还需要对网格进行渐变处理,避免边界上的反射,或者使用吸收边界、解二次长的方法进行处理。来源:实践有限元

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