Описание решателей Direct и Iterative
Автор: vesel444 • Июнь 14, 2022 • Реферат • 935 Слов (4 Страниц) • 146 Просмотры
Санкт-Петербургский политехнический университет Петра Великого Институт энергетики
Реферат
на тему «Описание решателей Direct и Iterative»
группа № 3241302/11801
Выполнил: Иванов И.В.
Принял: Зимин И.Ю.
Санкт-Петербург
2022 г.
На каждом итерационном шаге метода Ньютона нам необходимо решать систему линейных алгебраических уравнений. В comsol предусмотрено несколько алгоритмов для решения СЛАУ: прямые(direct) и iterative (итерационные).
[pic 1]
Прямые (Direct) решатели, используемые в COMSOL — это MUMPS, PARDISO, и SPOOLES. Все они используют метод LU-разложения, также называемый LU-факторизацией.
Процедура решения состоит из 2 операций: прямая и обратная подстановка.
В таблице показано как зависит объем используемой памяти и время расчета от числа степеней свободы решаемой задачи (количества искомых переменных).
[pic 2]
Таблица 1
Все эти решатели дают одно и то же решение для всех корректно-поставленных задач конечных элементов, в решении которых они обладают наибольшим преимуществом. Они даже могут решать некоторые некорректно-поставленные задачи. С точки зрения решения, неважно какой именно решатель вы выберете, так как все они найдут одно и то же решение. Прямые решатели отличаются только по своей относительной скорости исполнения. Каждый из MUMPS, PARDISO и SPOOLES решателей может использовать все ядра процессора на одной машине, но PARDISO будет чуть быстрее, а SPOOLES чуть медленнее остальных прямых решателей. При этом, SPOOLES использует наименьшее количество памяти. Все прямые решатели требуют значительный объём оперативной памяти (RAM), но MUMPS и PARDISO могут хранить решение в режиме out-of-core, что означает, что они могут использовать при решении некоторых задач жесткий диск (т.е. создают файл-подкачки). Решатель MUMPS поддерживает также кластерные вычисления, позволяющие использовать больший объем памяти, нежели предоставленный единственной машиной.
Если вы занимаетесь решением задачи, которая не имеет решения (например, конструкционная задача с неограниченной нагрузкой), прямые решатели все равно попытаются решить задачу, но, скорее всего, выдадут сообщение об ошибке подобное этому:
[pic 3]
Если вы получили такого типа сообщение об ошибке, тогда необходимо все перепроверить, чтобы убедиться, что задача поставлена корректно.
Итерационные (Iterative) решатели
[pic 4]
Итерационные (Iterative) решатели, используемые в COMSOL — это GMRES, FGMRES, BICGStab, Conjugate gradients, TFQMR.
Фактически запускается некая итерационная процедура и новое приближение к решению рассчитывается на основе предыдущего или нескольких предыдущих итераций. Итерации выполняются пока не будет выполнено условие окончания итераций e(xj)<TOL. Осуществляется оценка ошибка решения и сравнивается с некоторой заданной точностью. Если ошибка решения оказывается меньше заданной точности, то можно считать что решение получено.
[pic 5]
Таблица 2
Требуемые ресурсы вычислительные и время расчета уже не так сильно зависят от числа степеней свободы, таким образом итерационные алгоритмы более экономичны и быстры при решении задач.
GMRES
Этот решатель использует перезапущенный метод GMRES (обобщенный метод минимальных невязок). Это итерационный метод для общих линейных систем вида Ax = b. Для быстрой сходимости важно использовать соответствующее предобуславливание.
FGMRES
Этот решатель использует перезапущенный метод FGMRES (гибкий обобщенный метод минимальных невязок). Решатель – это вариант решателя GMRES, который может надежно обрабатывать более широкий класс предварительных условий. Вы можете, например, использовать любой итерационный решатель в качестве предобуславливателя для FGMRES. Недостатком этого метода является то, что он использует в два раза больше памяти как GMRES для того же количества итераций перед перезапуском. FGMRES использует правильное предобуславливание и поэтому имеет тот же критерий сходимости, что и GMRES.
...