我试图以稀疏格式将刚度矩阵存储在 FORTRAN 中以节省内存,即我正在使用三个非零元素向量(irows、icols、A)。在找出这些数组的大小之后,下一步是在其中插入值。所以我使用高斯点,即对于每个高斯点,我要找出局部刚度矩阵,然后将这个局部刚度矩阵插入全局(irows,icols,A)之一。
这种插入的主要问题是,每次我们必须检查新值是否存在于全局数组中,所以如果值存在,则将新值添加到旧值中,如果不添加到末尾。即我们必须搜索整个数组以查找该值是否存在。如果这些数组(irows、icols、A)的大小很大,那么这个搜索在计算上是非常昂贵的。
任何人都可以提出一种更好的方法来为每个高斯点插入全局刚度矩阵的局部刚度矩阵。