В настоящее время в связи с бурным развитием информационных технологий и САПР в машиностроении широкое распространение получили компьютерные системы инженерного анализа, имеющие разнообразную теоретическую и прикладную направленность. Рядовой пользователь проводит, например, расчет прочности или температурных полей в конструкции через интерфейс компьютерной программы, но должен иметь представление о структуре компьютерных вычислений, чтобы грамотно выбирать настройки генерации расчетной сетки и решателя.
Наиболее эффективный численный метод решения инженерных задач при компьютерном проектировании - метод конечных элементов (МКЭ). Он позволяет преобразовать аналитические уравнения математической модели к тому виду, который непосредственно обрабатывается компьютером. В процессе построения дискретных эквивалентов дифференциальных уравнений, описывающих физические процессы проектируемых инженерных систем, возникают большие системы линейных, а в общем случае нелинейных, алгебраических уравнений. Для этого в каждом расчетном узле производные исходного дифференциального уравнения записываются в виде конечной разности искомых параметров между соседними шагами в пространстве или во времени. Нелинейные задачи возникают, например, когда коэффициенты дифференциальных уравнений, отражающие свойства материалов или среды, сами являются функцией искомого параметра.
Нелинейные системы уравнений решаются в два этапа: на первом этапе они линеаризуются, а затем полученная система линейных уравнений на каждом шаге решается с помощью какого-либо метода линейной алгебры. Если сходимость не достигнута, то процесс повторяется. Таким образом, каждый раз решается система линейных алгебраических уравнений (СЛАУ):
Матрицы [A] СЛАУ (*), как правило, симметричны и имеют выраженную разреженную структуру, т.е. содержат большое количество нулевых элементов. Выбрав определенную нумерацию узлов расчетной сетки, эти матрицы можно привести к ленточной структуре, когда ненулевые элементы собраны вблизи главной диагонали матрицы. Для ленточных матриц вводят понятие "ширины ленты" - это количество ненулевых элементов строки вблизи главной диагонали.
При использовании конечно-элементной технологии возникает проблема разработки эффективных алгоритмов формирования, хранения и использования разреженных матриц. Память, используемая для хранения разреженных матриц, состоит из двух частей: основной памяти, в которой содержатся числовые значения элементов матриц, и дополнительной памяти, где хранятся указатели, индексы и другая информация, необходимая для формирования структуры матриц и обеспечивающая доступ к числовым значениям их элементов при выполнении процедур формирования и решении СЛАУ, т. е. так называемые списки связности. Способы хранения и использования данных, хранящихся в основной и дополнительной памяти, весьма разнообразны и определяются, главным образом, выбранным методом решения СЛАУ.
При реализации итерационного решения системы уравнений (*) весьма частой является ситуация, когда необходимо выполнить умножение матрицы системы [A] на какой-либо вектор, например, на вектор узловых неизвестных {u} или на вектор невязки {r}. Построение произведений типа [A]{u} или [A]{r} является одним из узких мест эффективной реализации всего итерационного процесса решения системы уравнений (*), поскольку требует наибольших затрат процессорного времени.