首页/文章/ 详情

AI学习-快速实现二维曲边有限元-Possion方程

22小时前浏览24

简述

本文通过AI的帮助,快速实现了二维曲边有限元案例的实践与学习。

相比于直边有限元,曲边有限元能够更好地贴合复杂几何形状的边界,尤其是在处理曲线或曲面边界时,能够显著提高几何描述的精度,减少几何离散化误差。

下面通过AI的帮助,总结曲边有限元的实现流程。

1.边值问题

边值问题依然采用最常见的二维泊松方程。

边界条件可以根据需求,添加第一类边界条件进行约束。其有限元方法与直边有限元推导结果一致:

当处理为第一类边界条件时,第三项可以不考虑。将连续空间离散到每个三角形网格中,可以得到:

2.gmesh生成曲边三角形网格

对于曲边有限元,为了能表示其曲边性质,一般采取二阶三角形网格来描述,其本质是原本直边三角形中三个高阶点不再落在棱边上,而是根据原有几何模型,落在该棱边的实际几何模型上。    

如图生成的曲边有限元,三角形的高阶点在几何模型是曲边的地方并不落在三角形的直边上,而是契合几何模型的位置。

因此,生成的网格每个单元需要有六个节点来描述,即:

3.曲边单元基函数

相对于直边三角形,可以直接通过面积坐标在原坐标系中直接求解线性基函数而言,曲边三角形直接在原始坐标系中处理相对麻烦。

因此,首先将曲边三角形映射到参考直角三角形中,通过雅可比坐标转化矩阵连接实际曲边三角形与参考直角三角形。

    此时,对于右边的参考标准三角形,其二阶形函数很容易获得,与直边三角形一致:

其基函数,满足任意点落在节点位置时,对应形函数为1,其他形函数为零。对应的梯度也很容易获得:

接下来是雅可比矩阵的推导,对于任意实际坐标系中的(x,y),其均可通过形函数Ni和节点坐标(xi,yi)表示为:

其中形函数是关于参考坐标系的函数,因此(x,y)是参考坐标系
的函数,对x,y坐标系求导,

    

将x表示为插值形函数形式,带入:

因此,雅可比矩阵可以写成:

4.单元系数矩阵 

已知的系数矩阵实在xy坐标系中,因此需要对参考形函数和实际形函数进行转化:

对于微分子的映射,将雅可比矩阵的行列式看成三角形面积,如此就很容易得到:

将上述推导带入到单元系数矩阵与右端项中,最终得到:

观察可以发现,曲边三角形的信息完全存在了雅可比矩阵中,参考形函数仅仅需要使用直边坐标系的方式就可以获得获得形函数。并且参考直边三角形是一个标准三角形,可以通过高斯积分求解获得,从而也避免了对单元矩阵系数的直接推导。    

对于二阶三角形高斯积分的积分权重与积分点为:

至于组装与边界条件加载均和直边三角形有限元一致,将单元系数矩阵根据节点到全局节点的映射关系一一组装起来。

对于边界条件加载采用赋值1或者乘以大数的方法均可以实现。

5.结果

测试模型内半径=1,外半径=2,剖分得到环状网格:

Eg1.当具体边值问题为泊松方程

Eg2.当具体边值问题为拉普拉斯方程

对于拉普拉斯方程的通解,在r=1,u=1,r=2,u=0的边界条件下,其具有理论公式:

对比数值解,二者是完全一致的。

从二者的图形结果来看,求解结果是正确的。

总结

1.整个实现流程代码,全部基于AI帮助写,更多的是一步步告诉它我要做什么,例如首先让它帮我生成gmsh网格,然后让他读网格信息,最后写曲边有限元的泊松方程。过程中不明白的地方直接截图为AI,理论公式什么的全部让AI推导,直到推导到能看懂为止。

2.代码中,除了修改了几个小bug之外,基本上没有动手写。但是自己要明白每个子函数地方大致是怎么回事,结果错误的时候除了问AI,如果自己能分析出来最好。

3.做该例子的缘由是想要熟悉曲边有限元的实现过程,尤其是想要深入了解下雅可比矩阵在两个坐标系中的转化过程,通过AI也确实快速深入学习了的这部分内容。


博主长期深入实践电磁学领域的有限元技术,感兴趣的朋友可以添加博主公 众号,欢迎共同探讨与有限元相关的技术知识。



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

二阶矢量有限元实现-四面体网格

简介作者认为有限元最复杂的部分就是高阶矢量有限元的实现。其棱边、面、体之间的关系与高阶基函数交织在一起,再加上棱边、面均具有方向的特性,导致实现起来比较困难。本次以霍姆霍兹方程出发,在之前一阶矢量有限元的基础上,实现了二阶矢量有限元。依旧采用边值问题为描述电场衰减的霍姆霍兹矢量方程,其有限元推导等流程可以参考:三维四面体矢量有限元实现-霍姆霍兹方程-高斯积分,这里不再赘述。1.高阶基函数根据四面体网格,首先得到线性插值基函数:一阶基函数:直接给出,具体参考文章三维四面体矢量有限元实现-霍姆霍兹方程-高斯积分。将式子中梯度项展开,得到:基函数旋度项的通式:二阶基函数推导:在一阶基础上,所有的20个基函数与棱边、面的关系如下:对应的具体二阶基函数表达式如下:可以发现,其本质上是二阶倒数的全基函数与三阶倒数的旋度项基函数组合而成。对基函数的旋度与展开式可以获得:面的展开式:面的旋度推导,首先以线性基函数为基准,推导得到:然后对线性基函数的梯度展开,进一步推导得到:到这里,公式推导完成,无论是矢量基函数的旋度与矢量基函数本身而言,其均为形成的矩阵20*3,两两相乘后,通过高斯积分,最终得到20*20的系数矩阵矩阵。2.四面体网格、系数矩阵组装与边界条件加载四面体网格,不同于之前,因为基函数包含了面的信息,因此必须获得所有棱边和所有面的信息,并且唯一确定其标记,这就需要对四面体网格进行几何网格信息的提取。在组装系数矩阵的过程中,必须确保系数矩阵的每一项为全局映射关系,如此才能进行各个单元的累加。其中Nedge1部分与一阶一样,必须保证棱边方向唯一;Nedge2无需考虑,只需要与Nedge1一致即可;而Nface1、Nface2均需要考虑,因为面的三个节点编号顺序不一致,会导致同一个面在不同单元结果是不一样,不满足唯一性,因此需要确定面方向的唯一。最简单的方式就是Nface1顺序定义为全局面的顶点编号从大到小排列,Nface2的编号按照Nface1的排列错一位。如上述表格。第一类边界条件的高阶矢量基函数加载与高阶节点有限元的加载方式一致,对于一阶部分,在边界棱边与边界面上强加已知数值,在边界棱边与面的二阶部分强加零元素。3.结果展示模型依旧为:研究区域大小10m*10m*10m,频率10000Hz,电导率1欧姆米。由于采用二阶有限元,因此未知数会成倍增加,因此对网格粗化,共计289个四面体网格,110个顶点,498个棱边,678个面。a.一阶矢量有限元求解的数值解与理论解对比:三维可视化结果:数值可视化结果出现“块状”的分布,也是低阶矢量有限元的体现,在梯度方向完全没有约束的情况下导致的。b.二阶矢量有限元求解的数值解与理论解对比:直观可以看出,精度相比于一阶而言,得到了明显改善。可视化结果如下:可视化结果更加的明显,其一阶中出现的分块情况不再体现。主要原因是由于二阶基函数保留的一阶的梯度约束项,当然本身也有二阶精度高于一阶的原因。在详细分别对比一阶、二阶与文章XX的结果精度进行对比结果如下:对比发现,2阶用更少的自由度得到了更好的精度。同样的网格下,精度提升在5倍左右,计算时间慢10倍。但是在1阶使用超5000的自由度下也无法达到2阶2300的自由度的精度。因此,二阶的精度效果还是非常具体的。总结本文介绍了二阶矢量有限元的实现过程与一些技术细节,并对比了相同网格下不同阶数的求解精度的对比。在使用高斯积分求解系数矩阵的情况下,二阶矢量有限元的难点不再是20*20的单元系数矩阵,而是棱边、面、节点的全局映射关系与矢量基函数的一一对应,稍微出错即全盘皆输。其次则是网格的处理,如何高效的获取全局棱边编号、面的编号以及他们与单元的关系,这也是实现高阶有限元的难点之一。来源:实践有限元

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