我们接着上一篇有限元刚度矩阵的一维变带宽存储用C++实现(一)介绍。上一篇中,我们得到了辅助数组pDiag中存储的是总体刚度矩阵[K]每行的半带宽。经过上一篇中节点自由度重编号,总刚矩阵[K]形式为:
此时,所有的非零元素都集中在带内。
一维变带宽存储的思路为:
将总刚度矩阵[K]的下三角部分的每一行,从第一个带内元素开始按行将元素排成一序列,存放于一维数组pGK[L]中,其中L是一维数组元素的个数,也就是总刚矩阵下三角部分的带内元素总数。
但是为了确定pGK中的元素在[K]中的行列号,还需将[K]中各行对角线上的元素在一维数组pGK中的下标(称作对角元地址),存放在另一辅助数组pDiag[n]中,