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

学术   2024-11-21 09:00   山东  

简述

在之前的所有有限元文章中,单元系数矩阵的推导均是直接求解得到系数,其实还有一种方法,可以避免人工求解最终的系数矩阵,其原理就是使用高斯积分,对系数矩阵的被积分项使用高斯积分,从而避开人工推导系数矩阵。

本文通过最简单的一维泊松方程,初步探索高斯积分求解系数矩阵的过程。

1.边值问题

泊松方程的一维边值问题如下:

其对应的有限元问题如下,具体不再推导(参考:最简单的一维有限元问题:求解cos函数分布),直接给出结论:

2.一维线单元基函数

在之前的一维有限元基函数推导中,已知基函数可以表示为如下:

现在,我们将上述的基函数投影到区域[-1,1]中进行求解,投影关系有:

   

其中xe表示单元中心点坐标。将上述式子带入基函数中,得到:

上述基函数的梯度表示为:

因此,针对1阶基函数而言:

针对插值型2阶基函数而言:

         

 

3.系数矩阵推导

根据高斯积分公式,在实际插值中,高斯积分的阶数大于等于基函数插值阶数。

对于1阶泊松方程,积分第一项:    

将被积分式子堪称高斯积分中的被积项,带入:

推导这里即可结束!于积分第二项:

如此推导完成!

对于高斯积分的采样点与权重,直接给出:    

由此,就可以根据上述公式,直接得到积分结果,这对于编程实现是很便捷的。这里具体说明K11实现过程,以便于理解:

针对1阶基函数而言,已知基函数的导数:

带入得到:    

取1阶高斯积分,则已知:

带入上述式子:

所以,该项对x的梯度的积分结果为:

同理,针对右端项rhs11积分:

同样带入1阶高斯积分采样点和权重值,得到:

所以,该项的积分结果为:

针对2阶基函数而言的k11    

带入二阶高斯积分点和权重:

最终带入,得到该K11的 求解结果:

演示到这里停止,上述求解计算完全可以交给计算机,这里仅为了说明过程推导例子。

需要注意的是,该流程针对Kij,rhsi是完全一致的,因此不需要求解得到每个具体矩阵系数,这在编程通式求解是非常重要的。

4.组装矩阵与边界条件加载

这部分与之前的有限元组装流程一致,这里不再介绍,参考:最简单的一维有限元问题:求解cos函数分布

5.结果展示

计算区间为[0,10],均匀剖分为20个线网格单元。

a.1阶基函数,使用1阶高斯积分 共计21个未知数    

b.2阶基函数,使用2阶高斯积分 共计41个未知数

可见,数值结果结果与理论完全对应一致!

6.结论

在有限元的实现中,如果能求解通式,一定要比求解特定数值更加的适用,因此高斯积分的介绍也是为了这个目的。    

有限元语言与编程
面向科学计算,探索CAE,有限元,数值分析,高性能计算,数据可视化,以及 Fortran、C/C++、Python、Matlab、Mathematica 等语言编程。这里提供相关的技术文档和咨询服务,不定期分享学习心得。Enjoy!
 最新文章