首页/文章/ 详情

边界元入门实现-二维拉普拉斯方程

1年前浏览681

简述

本文介绍边界元(BEM)数值模拟方法,在实际情况中,有限元虽然能解决几乎所有问题,但是当考虑到效率与精度的时候,与其他方法融合或许会有更好的效果。

本文是入门级的边界元实现,基于简单的拉普拉斯方程实现了边界元数值模拟的基本流程。

1.边值问题

边值问题还是以最为熟悉的拉普拉斯方程为例,求解同心圆上任意一点的电位分布。

二维拉普拉斯方程:

可以获知,拉普拉斯方程的基本解为:

基本解具有性质:

满足deta函数:

具有deta函数性质:

对于任何包围x=0的区间内,均满足以上积分结果。因此,它的一个重要的性质,若u(x)在x=0处连续,则有:

基本解的意义:在二维均匀空间中,放置在P位置的点电荷在看空间任意位置产生的电势。可以看出,其u的拉普拉斯算子积分其实就是电荷密度的积分,积分结果为1,说明正好是点电荷。

2.区域内积分方程

接下来推导积分方程,已知第二格林函数公式如下:

将待求解u和基本解带入其中,得到:

进一步推导,带入基本解与待求解u的拉普拉斯算子所具有的性质:

分析上述等式未知数,左边项表示区域内任一点位置的u值,右边点为边界上的u值与u值的梯度。

所以,上述等式表示,区域内任意一点位置的u值,可以通过边界u值及其梯度的积分运算获得。

在该问题中,边界的u值是已知的,未知的是u值的梯度。因此,对于二维区域问题而言,简化为求解一维边界问题,只要求解获得u及其梯度,那么其他位置均可以获得。这就是边界元中,将二维将阶到一维的本质原因。

要完成这求解,还必须知道左端项在边界上的deta积分。

这里不对deta积分做严格推导,通过上述示意图可以很好的理解其积分结果。图中三个点的特性:p1是区域内任意点不包含边界;p2表示边界上连续的点;p3表示边界上间断的点。

对于p1点而言,其位置的的积分结果可以理解为,围绕p1的红圈的面积乘以deta的值,由于deta仅在p1等于1,此时让红圈半径r逼近于0,不难看出,p1位置的积分结果:

继续分析p2点的积分结果,同样的道理,红圈半径r逼近于0的时候,得到p2的积分,但是此时区域内的面积仅仅占红圈面积的一部分,由于p2是连续的,因此随着红圈r的缩小,红圈内属于区域内的面积将逐渐趋于一半,此时,p2的积分结果可以获得:

分析p3点,此时由于p3是不连续的,无论红圈r如何小,p3始终存在一个折角,此时红圈面积始终被该折角分为两部分,区域内占据其中一部分,因此通过折角可以知道红圈面积在区域内的实际占比,由此可以获得p3的积分结果:

对于本次求解而言,边界上全部是连续的,因此边界积分方程进一步可以写成:

简化写,得到:

上述方程,才是符合该问题的边界积分方程。

3.离散边界积分方程

获得积分方程后,下一步需要将连续的边界离散化,然后使用基函数获取每一段的积分结果,最终累加所有单元获得整个边界的积分公式,因此,积分方程的离散化形式可以写成:

最终,可以表示为:

可以从边界元积分方程的离散结果看出,任意一点u的值的贡献,是由边界上所有边界点的场值与场值梯度的贡献。因此,可以推断最终矩阵A,G应该是一个满阵。

在每个单元中,边界元也存在基函数,这里一个单元仅取中点最为待求解未知数,属于零阶基函数,即N=1。

在实现中,最重要的步骤就是求解H矩阵和求解G矩阵。由于是零阶基函数,因此一个单元对应的H,G就一个数据,其中需要注意的问题:

I.当r=0的时候,也就是i==j的时候,此时1/r等于无穷大,需要特殊处理,需要使用求极限的方式求取Hii和Gii的结果。

对于Hii不难得出,由于ij重合,r的方向和n的方向相互垂直,此时cos(pi/2)=0,因此Hii=0。

对于Gii,首先将Gii的积分区域进行变换:

此时,积分区域变成[-1,1],Gii变成:

进一步推导:

对于式子中的积分项,可以通过求极限获得:

如此,获得Gii的计算公式:

II:注意i点的法相方向与j到i的向量方向的乘积。

由于在计算Hij的过程中,需要注意单元的法向方向于r的方向向量,因此必须统一单元的方向性问题,由于本问题是同轴圆问题,因此方向规定为,内圆的法向朝着内部,而外圆的法向朝着外部。

处理好这些问题后,即可正确的求解G、H矩阵,需要提醒,对于i不等于j的情况,最好使用高斯积分求解,并且可尝试不同阶数的高斯积分,以获得最佳精度。

最终获得系数矩阵方程如下:

已知u,求解得到q。然后根据区域内的积分公式,获得任意点位置的u值:

此时,区域内任意点不会与边界点重合,因此不存在i=j的情况。

4.测试结果






%% 参数设置a = 0.5;       % 内导体半径 (m)b = 1.0;       % 外导体半径 (m)V0 = 1.0;      % 内导体电压 (V)N = num;        % 每边界的离散单元数(内/外导体各N个单元)

边界元网格划分:

红色为边界元求解网格,蓝色为求解内部数值u,通过内部点u的数值分析测试精度。

当num=36*2个网格的时候,高斯阶数=1,测试结果:

当num=36*2个网格的时候,高斯阶数=2,测试结果:

当num=36*10个网格的时候,高斯阶数=1,测试结果:

将内部点各个方向的结果均恢复,可以得到二维可视化结果:

上述结果的理论解与数值解一致,说明边界元的实现成功。通过不同网格,不同高斯阶数显示,适当的采取高斯高阶进行插值,可以获得更好的求解精度。

总结

本文基于拉普拉斯方程,实现了边界元数值模拟的基本流程。

边界元的实现流程:首先确定微分方程的基本解,然后使用第二格林函数获得积分方程。离散积分方程,处理不同位置的积分方程表达式,然后组装边界元矩阵,最终求解获得边界的数值与对应梯度。根据求解结果使用积分方程可恢复每个位置的解。

实现过程中需要注意的点:1.正确处理边界不连续点、连续点;2.确保单元节点的顺序一致;3.适当使用高阶高斯积分,能有效提高计算精度。


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

四面体网格混合阶矢量有限元实现

简述对于电场矢量波动方程的数值模拟,矢量有限元是求解电场分布规律的常见数值方法。在之前的实践过程中发现,二阶的计算精度虽然有效的高于一阶,但是未知数也是成倍的增加,在实际工程中无论是效率和精度都不是最优的选择,对此,混合阶矢量有限元可能是更好的选择,既能保证感兴趣的位置精度,同时降低不必要区域的阶数。这篇文章抛砖引玉,探讨实现基于一阶、二阶下混合阶的矢量有限元。其中基于矢量有限元的整个实现流程可以参考以下文章,这里不再介绍。重点介绍混合阶矢量有限元的一些关键技术点与测试结果。二阶矢量有限元实现-四面体网格三维四面体矢量有限元实现-霍姆霍兹方程-高斯积分1.矢量基函数表达式本次混合阶是基于一阶、二阶的,因此这里给出一阶二阶的基函数表达式一阶基函数:二阶基函数:再次提及,二阶基函数中包含了一阶基函数,这是混合阶有限元能实现的基本要求。高阶基函数可以理解为基函数的本身的高阶项,因此在四面体单元不存在具体的某个点与之对应,这是区别于插值基函数而言。确定基函数后,可以发现一阶基函数会形成6*6的单元系数矩阵,而二阶基函数会形成20*20阶的单元系数矩阵。2.四面体网格的自由度计算与拓扑关系由于整个网格中,不再是统一的一阶或者二阶,因此首先必须确定每个四面体网格的阶数,例如测试模型10*10*10的模型,规定x<5区域部分为二阶基函数,其余为一阶基函数,得到的阶数分布规律如下:可见混合阶网格的自由度不再很容易获得,不同阶数单元的自由度不同,一阶为6个自由度,二阶为20个自由度,分别用棱边、面表示。因此需要计算整个模型中实际的未知数个数。对于上述示意图而言,需要计算得到红色区域的棱边数量与面的数量,并且对它们进行编号,如此可以得到:获得这些信息后,然后再根据总未知数的关系,得到单元与每个未知数上的映射关系,以便于后续的系数矩阵组装。此外,还需知道一阶和二阶四面体单元所在分界面的面、棱边的编号信息关系,因为在高阶向低阶基函数的过渡区域,我们需要统一阶数,即将四面体相连的高阶棱边、面处理成低阶的状态。3.系数矩阵组装与边界条件在获取的必须的网格拓扑关系、自由度关系与一阶、二阶基函数后,组装矩阵则是按照正常的有限元系数矩阵组装即可,一阶的四面体累加上6*6单元系数矩阵,二阶的四面体累加上20*20单元系数矩阵。边界条件依然是使用第一类边界条件,对于基函数阶数分界面而言,需要统一阶数,将高阶部分基函数处理成低阶状态。组装好矩阵后,正常求解即可。在后处理插值中,同样高阶部分使用高阶插值,低阶部分使用低阶插值,避免精度浪费。4.结果测试为了与之前文章对比,采用相同的模型10*10*10的网格,首先取x<5的区域为二阶基函数,其他区域为一阶基函数,得到的阶数分布如上图。具体的电场衰减结果与理论解进行对比:分别对比一阶、二阶与文章二阶矢量有限元实现-四面体网格的结果精度进行对比结果如下:整体上看,混合阶的精度在一阶、二阶之间,这也符合预期。再看看其三维可视化结果,更容易观察出混合阶的优势:由于x<5的区域是二阶,可以明显看出x<5的区域,插值的电场结果更加的光滑,而相反x>5区域依旧呈现一阶的锯齿状结果。在实际结果中,我们可能只对x=0位置或者附近的电场感兴趣,如此通过混合阶有限元,就能避免其他区域不必要的高阶有限元阶数。再测试y<5的区域采用二阶网格,其他区域采用一阶网格的三维可视化结果,如下图:依然可以明显看出,二阶部分的插值结果明显要比一阶部分的插值结果光滑很多。由此基本上可以确定对于一阶、二阶的混合阶矢量有限元的求解是正确的。结束语1.本文章实现了简单的一阶、二阶的混合阶有限元,并讨论了混合阶有限元的关键技术点。2.本文章仅仅是对混合阶有限元的简单实现操作,在具体工程案例中,还需要考虑具体位置的阶数分布,这需要具体的仿真经验与对模型电场分布规律的了解等,最佳的有自适应技术,通过电场、模型分布规律自动实现阶数分布的确定,这其中涉及到网格剖分、阶数分布特征、自适应技术、专业知识背景等等。博主长期深入实践电磁学领域的有限元技术,感兴趣的朋友可以添加博主公众号,欢迎共同探讨与有限元相关的技术知识。来源:实践有限元

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