Фронтальный решатель
Фронтальный решатель — это подход к решению разреженных линейных систем , который широко используется в анализе методом конечных элементов . [1] Алгоритмы такого типа представляют собой варианты исключения Гаусса , которые автоматически позволяют избежать большого количества операций с нулевыми членами из-за того, что матрица разрежена. [2] Обычно считается, что разработка фронтальных решателей восходит к работе Брюса Айронса . [3]
Фронтальный решатель строит LU или разложение Холецкого разреженной матрицы.Фронтальные решатели начинают с одного или нескольких диагональных элементов матрицы, затем рассматривают все те диагональные элементы, которые связаны с первым набором через недиагональные элементы, и так далее. В контексте конечных элементов эти последовательные наборы образуют «фронты», которые проходят через область (и, следовательно, через матрицу, если переставить строки и столбцы матрицы таким образом, чтобы диагональные элементы были упорядочены по волне, по которой они являются частью). Обработка передней части включает в себя операции с плотной матрицей , которые эффективно используют ЦП.
Учитывая, что элементы матрицы необходимы только по мере продвижения фронта через матрицу, можно (но не обязательно) предоставлять элементы матрицы только по мере необходимости. Например, для матриц, возникающих в результате метода конечных элементов, можно структурировать «сборку» матриц элементов путем сборки матрицы и исключения уравнений только для подмножества элементов за раз. Это подмножество называется фронтом и, по сути, представляет собой переходную область между уже завершенной частью системы и еще не затронутой частью. В этом контексте вся разреженная матрица никогда не создается явно, хотя разложение матрицы сохраняется. Этот подход в основном использовался исторически, когда у компьютеров было мало памяти; находится только фронт в таких реализациях в памяти , а факторы при декомпозиции записываются в файлы . Матрицы элементов считываются из файлов или создаются по мере необходимости и отбрасываются. Более современные реализации, работающие на компьютерах с большим объемом памяти, больше не используют этот подход и вместо этого полностью сохраняют как исходную матрицу, так и ее разложение в памяти.
Разновидностью фронтальных решателей является мультифронтальный метод, берущий свое начало в работах Даффа и Рида . [4] Это усовершенствованная версия фронтального решателя, которая одновременно использует несколько независимых фронтов. На фронтах могут работать разные процессоры , что обеспечивает возможность параллельных вычислений .
Видеть [5] для экспозиции монографии.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Рено Сизер, Руководство пользователя keyFE2, 2005 г., разд. I.4.2 Solving_linear_system онлайн. Архивировано 8 октября 2006 г., в Wayback Machine.
- ^ Хайреттин Кардестунсер, Эд. Справочник по методам конечных элементов .
- ^ Айронс, Брюс М. (1970). «Программа фронтального решения для анализа методом конечных элементов». Международный журнал численных методов в технике . 2 (январь/март): 5–32. Бибкод : 1970IJNME...2....5I . дои : 10.1002/nme.1620020104 .
- ^ И.С. Дафф, Дж.К. Рид, Многофронтальное решение неопределенной разреженной симметричной линейной операции, транзакции ACM в математическом программном обеспечении (TOMS), т.9, №3, стр.302-325, сентябрь 1983 г., DOI 10.1145/356044.356047
- ^ Иэн С. Дафф, Альберт М. Эрисман, Джон К. Рид, Прямые методы для разреженных матриц, Oxford University Press, Inc., Нью-Йорк, Нью-Йорк, 1986