在有限元刚度矩阵的一维变带宽存储用C++实现(二)中,我们已经把总体刚度矩阵[K]中下三角部分的带内元素顺利存入pGK数组中,现在我们来讨论如何从pGK数组中取出[K]内的任意元素。
从存储了总刚矩阵[K]中的带内元素的一维数组pGK中取出总刚矩阵[K]的元素,主要是建立总刚矩阵[K]中第i行第j列的元素与pGK[]数组中元素的对应关系。根据[K]为对称矩阵的前提,就可以根据pGK[]中的总刚矩阵下三角部分,推断总刚矩阵的上三角部分的元素。
(1)建立总刚矩阵[K]中第GKi行第GKj列与pGK数组中元素的对应关系。
1)对于[K]中的下三角部分,GKi> GKj。此时按行取出[K]中元素。
第GKi行主对角元到当前元素的距离为:iBuf=GKi-GKj;
对于[K]中的带内元素,已存入pGK数组中,
此时[K]中第GKi行第GKj列的元素在pGK数组中的下标为&