メモリを節約するために、剛性マトリックスをスパース形式で FORTRAN に格納しようとしています。つまり、非ゼロ要素 (irows、icols、A) の 3 つのベクトルを使用しています。これらの配列のサイズを確認したら、次のステップはそれらに値を挿入することです。したがって、ガウス ポイントを使用しています。つまり、ガウス ポイントごとにローカル剛性マトリックスを見つけて、このローカル剛性マトリックスをグローバル (irows、icols、A) マトリックスに挿入します。
この挿入の主な問題は、新しい値がグローバル配列に存在するかどうかを毎回確認する必要があるため、値が存在する場合は新しい値を古い値に追加し、存在しない場合は末尾に追加することです。つまり、配列全体を検索して、値が存在するかどうかを確認する必要があります。これらの配列 (irows、icols、A) のサイズが大きい場合、この検索は計算コストが非常に高くなります。
グローバル剛性マトリックスの各ガウスポイントにローカル剛性マトリックスを挿入するより良い方法を提案できる人はいますか。