首页/文章/ 详情

Poisson方程基于叠层基函数的高阶有限元通式(三合一)

16天前浏览82

简述

在之前的文章中,依次介绍了结构化网格的插值型基函数的一维、二维、三维的高阶通式,在使用高斯积分后,任意高阶有限元成为可能。并且发现结构网格网格中,三维、二维网格均是一维网格的拓展,一通则全通。

这篇文章继续介绍结构化网格的叠层基函数的一、二、三维的任意高阶通式。

相比于较为复杂的插值型基函数,叠层基函数的任意阶基函数相对简单,容易实现。并且在前面插值基函数的实现基础上,只需要把计算基函数的部分替换掉即可。

对于边值问题,还是以最简单泊松方程出发,具体的有限元推导部分不再重复,参考:

初探高斯积分在一维有限元中运用:泊松方程

1.叠层基函数通式

a.一维基函数

同样,先从一维出发,同样首先给出最基本上的线单元的线性插值基函数:

将该线性插值基函数投射到[-1,1]的区域内,用以下方式表示:

得到映射后的线性插值基函数,同样的处理是为了方便高斯积分。

已知,1阶基函数为:

2阶叠层基函数的第三个基函数:

          3阶基函数,在1、2阶基础上,添加第四个基函数:

          可知,N阶基函数,可以表示为:

因此,通式:

对应的梯度为:

可见,一维度的叠层基函数的通式,还是保持着低阶包含高阶的特征,这对于混合阶有限元的实现是非常关键的。

b.二维基函数

二维叠层基函数就是由一维度基函数通式组合而成,因此,考虑二维两个方向X,Y,则X,Y连个方向分别的通式表示为:
因此不难获得:

c.三维基函数

三维叠层基函数的通式,则是X,Y,Z三个方向:    

因此,一维的通式确定,二维矩形单元,三维六面体单元通式也就都获得,并且实现一维度的推导,高维度通过乘积即可使用。即使更高维度,四维、五维...都可以很容易获得。

2系数矩阵组装

针对泊松方程而言,三维的有限元离散方程为:

一维度而言,对上述式子只取一项:

   

将上述等式全部写出高斯积分形式:

推导如此,就不必要继续推导,对两部分直接单部分求解,然后乘积即可获得被积函数。然后再通过高斯积分获得即可。
对于二维,三维系数矩阵公式,则可以直接写成高斯积分公式,首先定义:
所以,二维系数矩阵通式表示为:

   

三维系数矩阵通式为:

              

至此,推导完成,如果想要写成更高维度的通式,也可直接按规律获得。

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

这里的系数矩阵与插值型基函数的网格完全一致,直接套用插值基函数的各维度网格节点编号与单元映射关系即可。

不同点在于边界条件的加载,叠层基函数的高阶部分全部置为零,具体可参考文章:

一维高阶叠层有限元实现

还需要注意的地方是,叠层有限元的高阶部分不代表具体的点的泊松值,需要通过插值获得对于单元位置处的具体数值。

4结果展示

Eg1 一维度8阶有限元泊松结果

网格:5个网格;未知数为41个;求解区域[0,10]
稀疏矩阵的非零元素分布如下:    

求解结果如下:

Eg2 二维6阶有限元泊松方程结果    

网格:2*3=6个网格;未知数为247个;求解区域[0,10;0,10]
稀疏矩阵的非零元素分布如下:

结果可视化如下:

   

Eg3 三维5阶有限元泊松方程结果

网格:2*2*2=8个网格;未知数为1331个;求解区域[0,10;0,10;0,10]
稀疏矩阵非零元素分布:

求解结果显示:

参考插值基函数的结果可以了解,二者的结果是一致的。

总结

1.任意高阶有限元的流程均是一样,只是针对基函数的形式不一样,因此实现了插值型任意高阶后,叠层任意高阶也容易实现。关键还是在于任意叠层高阶基函数的确定。
2.叠层基函数的优势在于能实现混合阶有限元的实现,因此如果找到任意阶叠层基函数通式,那么对于p型自适应有限元也是没有技术难点了。
3.我所了解的4种不同类型的自适应有限元:

A.p型自适应有限元:自适应过程中,网格不变,根据后验误差控制网格阶数以达到高精度解的过程;

B.h型自适应有限元:自适应过程中,网格基函数阶数不变,加密或放粗网格大小,以达到高精度解析解;本公 众号在之前提供过一个案例:

自适应有限元技术:一维电场衰减数值模拟

C.hp型自适应有限元,利用p型和h型的优势,网格与阶数均变化,平衡二者关系,使用最小的资源获得最好的精度;个人感觉该方法得有很强的物理背景才能实现合理的分布。   

D.r型自适应有限元,或者叫做动网格技术,根据后验误差,不增加网格量,而是通过调整网格大小分布以获得最好的精度。这种方法似乎在流体力学中使用较多。


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

任意高阶通式有限元玩法-泊松方程

简述在上篇文章中实现了高斯积分取代求解系数矩阵的过程,那么这篇文章高能来了,既然可以不用求系数矩阵,是否存在基函数到系数矩阵整个流程的通式,直接实现任意阶有限元!答案是肯定的!高斯积分的有限元框架实现后发现,只需要再实现N阶基函数的通式即可。这就是高斯积分带给我们的惊喜!本文依旧以一维泊松方程为例,实现任意阶有限元。一维有限元流程这里不再推导,这里重点给出任意阶基函数的通式推导。1.一维线单元基函数通式首先,确定任意高阶形函数的基底为线性基函数:并且根据高斯积分需求,将线性基函数投影到[-1,1]的区间,如下:如此,线性基函数可以表示为:已知,线性基函数满足:接下来就推导并求解具体的形函数的过程。首先考虑1阶,已知两个形函数是线性基函数基底组成,并且为1阶,由此有:N1,N2是满足插值形函数的基本要求:因此,带入求解,得到:所以,1阶基函数为:针对2阶形函数,插值点在中心点,形函数有3个,阶数为2,因此有:此时,形函数满足条件:分别带入,可以求解得到:继续对于三阶形函数的表达式为:对于四阶形函数的表达式为:由此,可以推导得到N阶形函数的表达式为:得到形函数后,进而对其求梯度:求解系数,带入节点信息求解即可:对于头尾两个节点,带入所有点坐标;对于中间节点,仅需要带入内部插值点坐标求解即可。如此,只需要组装好矩阵,求解方程交给计算机实现,即可实现任意阶的形函数求解,进而通过高斯积分方法,得到自动得到任意阶单元系数矩阵,从而实现任意阶有限元。在实现过程中,还需要处理的地方是节点信息随着阶数增加的增加,因此单元到节点的映射关系也需要随着阶数的增加而改变。在一维有限元中,实现起来也比较容易。2结果展示测试三个算例,分别验证了泊松方程的任意高阶实现、霍姆霍兹方程的任意高阶实现与霍姆霍兹方程的高阶精度与同等未知数下的一阶精度对比。Eg1:泊松方程,研究区域[0,10],网格剖分为5个单元给出了线性基函数L1,L2在单元节点的取值与形函数通式中求解得到的各个系数。a.2阶结果11个未知数b.4阶结果21个未知数c.6阶结果31个未知数d.9阶结果46个未知数可见结果均正确,精度均是非常高的,这也是由于泊松方程太过于简单的原因。下面测试电场衰减的例子,精度误差就有非常明显的感觉。Eg2:电场衰减模型,研究区域5个波长,网格剖分为10个网格a.2阶结果b.5阶结果c.8阶结果d.12阶结果观察可得,随着阶数增加,误差从最开始0.1量级降到最后1e-10次方量级。Eg3:电场衰减模型,研究区域5个波长,测试相同101个未知数下,不同阶数之间的精度对比a.1阶基函数,100个单元b.2阶基函数,50个网格c.5阶基函数20个网格d.10阶基函数,10个网格可见,虽然未知数一致,但是阶数越高精度越高,可见单纯的增加网格,达到阶数增加而达到的精度。总结1.实现了任意阶的一维有限元算法,重点在于使用高斯积分避开求解系数矩阵与推导任意阶基函数的通式;2.很容易想到,对于结构化有限元而言,一维有限元的任意阶有限元实现后,二维四面体、三维六面体的任意阶有限元实现的技术也基本上迎刃而解。后期将会逐一实现介绍。3.虽然从未知数角度看,高阶有限元等价于多网格1阶有限元,但是从精度上看,高阶有限元精度远远高于同等未知数下1阶多网格有限元。这也说明了高阶有限元的必要性,尤其在复杂边值问题上,高阶的精度是低阶无法实现的。来源:实践有限元

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