本文继续介绍三维六面体的高阶有限元实现过程,承接之前一维、二维结果,三维仅在二维基础上多了一个维度,实现起来也比较容易。
一维、二维的内容这里不再介绍,依旧采用泊松方程作为示例,一维、二维任意阶有限元具体流程参考以下三篇文章:
对于1阶而言,其表达式为:
其中,将各方向的线性基函数落在[-1,1]上,得到如下转化关系:
不难想到,其通式可以表示为:
由此,其梯度可以表示为:
推导与二维四边形推导一致,这里直接给出三个方向的推导。x方向偏导数:
Y、Z方向的偏导数同样可以获得:
右端项推导:
推导完成,剩下的交给高斯积分来求解具体单元系数矩阵!
这里与二维四边形网格存在的难点一致,首先需要确定六面体节点的局部节点顺序,然后再实现全局节点到局部节点的映射关系。
具体实现根据六面体本身的拓扑关系获得,类似四边形,只是过程繁琐而已。
模型大小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阶的结果,随着阶数增加,未知数也成倍增加,结果也更加精致。并且从高阶的非零元素分布,可以清晰看出网格个数是由四个组成,并且同侧非对角线的带状条数也代表了具体阶数。