首页/文章/ 详情

泊松方程的三维六面体任意高阶有限元实现

1月前浏览1000

简述

本文继续介绍三维六面体的高阶有限元实现过程,承接之前一维、二维结果,三维仅在二维基础上多了一个维度,实现起来也比较容易。

一维、二维的内容这里不再介绍,依旧采用泊松方程作为示例,一维、二维任意阶有限元具体流程参考以下三篇文章:

二维四面体任意高阶通式有限元实现-泊松方程

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

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

1.六面体基函数

对于1阶而言,其表达式为:

其中,将各方向的线性基函数落在[-1,1]上,得到如下转化关系:

不难想到,其通式可以表示为:

由此,其梯度可以表示为:    

2.系数矩阵推导

推导与二维四边形推导一致,这里直接给出三个方向的推导。x方向偏导数:

Y、Z方向的偏导数同样可以获得:

右端项推导:

推导完成,剩下的交给高斯积分来求解具体单元系数矩阵!

3.系数矩阵组装

这里与二维四边形网格存在的难点一致,首先需要确定六面体节点的局部节点顺序,然后再实现全局节点到局部节点的映射关系。

具体实现根据六面体本身的拓扑关系获得,类似四边形,只是过程繁琐而已。

4.结果展示

模型大小10*10*10,剖分为numx*numy*numz=4*4*4=64个网格。

Eg1:1阶情况,共计125个未知数

其非零元素的稀疏矩阵分布如下:

   
三维可视化结果,将节点值显示如下:

从稀疏矩阵规律看出,结构化网格的确很符合有限元逻辑,矩阵呈现稀疏化,并且非零元素集中成带状,这种形态也便于线性求解器求解。

对于4*4*4网格而言,1阶的结果看起来还是太粗糙。

Eg2:对于2阶,共计729个未知数

其非零元素的稀疏矩阵分布如下:

三维可视化结果,将节点值显示如下:

Eg3:针对4阶,未知数大量增加,共计4913个 

同样,对应非零元素的稀疏矩阵分布如下:

三维可视化结果,将节点值显示如下:

从2阶、4阶的结果,随着阶数增加,未知数也成倍增加,结果也更加精致。并且从高阶的非零元素分布,可以清晰看出网格个数是由四个组成,并且同侧非对角线的带状条数也代表了具体阶数。    

最后

1.对于插值型基函数的一、二、三维度的任意阶有限元的实现到此就全部打通,其核心技术两点:a.高阶插值形函数通式;b.高斯积分的使用;一个难点:高阶形函数所需要的网格节点生成。
2.三维的高阶有限元,如果自己推导高阶单元系数矩阵也是一个庞大的工程,二阶单元系数矩阵为27*27的维度,4阶125*125的系数矩阵,难以想象,这时才真正体现高斯积分的强大,大量避免了繁琐的计算,将这些计算交给计算机执行。

来源:实践有限元
UM
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-12-06
最近编辑:1月前
实践有限元
硕士 签名征集中
获赞 0粉丝 1文章 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
联系我们
帮助与反馈