水平井双侧向正演求解大型稀疏方程组的改进前线解法

时间:2022-08-19 11:54:48

【摘要】在进行有限元数值模拟时,会遇到大型稀疏方程组的求解。能否高效的求解大型稀疏方程组,一直是研究的热点。采用前线解法求解大型稀疏方程组,能有效缓解计算机内存不足的问题。本文阐述了在单元安装顺序上改进后的前线解法,并且用MATLAB语言实现了水平井双侧向正演过程中总体刚度矩阵求解的相关算法。

【关键词】水平井;有限元法 ;前线解法;大型稀疏方程组;计算机内存不足;MATLAB;

中图分类号:TE1

1前言

随着油气勘探难度的加大,水平井中的勘探分析变得尤为重要,水平井测井的正演数值模拟为水平井的勘探提供了理论依据。在对水平井双侧向测井进行正演模拟时,经常采用有限元方法 [ ],通过有限元方法,将问题转化为大型线性稀疏方程组的求解。随着研究模型的日益复杂,方程组个数也逐渐增加,高效的求解大型稀疏方程组将有助于有限元方法在工程分析中更好的应用。目前在大型稀疏方程组的求解问题上已发展起来了很多算法[ ][ ],但是这些方法都是对组装完成后的总体刚度矩阵进行的求解,当网格划分较密时,总体刚度矩阵可能因维数过大,而无法由单元刚度矩阵组装形成。前线解法[ ] [ ]是一种边安装边消元的求解方法,使得无需形成总体刚度矩阵就可以求解出各节点信息,但在水平井中会对某一方向上的网格划分要求较高,所以未改进的前线解法在计算过程中仍然会遇到内存不足的问题,并且未改进的前线解法在单元的安装顺序上不是太有规律,不利于算法在MATLAB中的实现,所以为了适应水平井的情况,就必须对前线解法做出改进。笔者在单元安装顺序上进行了修改,解决了因某一方向上网格划分过密所造成的求解问题,并且缩短了前线长度,为水平井双侧向正演中的大型稀疏方程组提供了一种高效的求解方法。

2水平井中双侧向测井的正演模拟

在对水平井进行模拟时,对z轴方向上的节点要求更高,所以可增加z轴方向上的节点数提高模拟精度,而经过改进后的前线长度为m+2,只与x轴方向上的节点数m有关。若是采用未改进的前线解法,随着n的增加前线矩阵的维数也会增加,所以也不能对方程组进行高效的求解。如表1中,当m=40,n=100时,明显可见改进后的前线解法形成的总体刚度矩阵维数最小。此外由于改进后的前线解法在单元安装顺序上变得更加有规律,在用MATLAB语言实现相关算法时,也会变得更加简单。

3.2边安装边消元及回代求解

由于改进后的前线解法在单元安装顺序变得更加有规律性,所以在用MATLAB语言实现相关算法时,会使得程序变得简单、清晰。前线解法一方面有效的减少了所耗内存,另一方面减小了安装和消元的维数,有效的提高了计算的精度和效率。

上一篇:黄鹤楼奇遇记 下一篇:板式给料机的调速方式