Я пытаюсь сохранить матрицу жесткости в FORTRAN в разреженном формате для экономии памяти, т.е. я использую три вектора ненулевых элементов (irows, icols, A). После выяснения размера этих массивов следующим шагом будет вставка в них значений. Поэтому я использую точки Гаусса, то есть для каждой точки Гаусса я собираюсь найти локальную матрицу жесткости, а затем вставить эту локальную матрицу жесткости в глобальную (irows, icols, A).
Основная проблема с этой вставкой заключается в том, что каждый раз мы должны проверять, существует ли новое значение в глобальном массиве или нет, поэтому, если значение существует, добавьте новое к старому, а если нет, добавьте в конец. то есть мы должны просмотреть весь массив, чтобы найти, существует ли значение или нет. Если размер этих массивов (irows, icols, A) велик, этот поиск требует больших вычислительных ресурсов.
Может ли кто-нибудь предложить лучший способ вставки локальной матрицы жесткости для каждой точки Гаусса в глобальную матрицу жесткости.