Какие библиотеки имеют хорошую поддержку высокого уровня для мультисетки?

17

Я планирую использовать multigrid для вычисления некоторых собственных значений и векторов, и я заметил, что PETSc имеет высокоуровневую поддержку multigrid. Документация PETSc гласит, что эту часть PETSc не следует использовать, поскольку она скоро будет заменена.

Какие другие библиотеки имеют высокоуровневую поддержку многосеток, и примерно как скоро PETSc выпустит новую многосеточную поддержку?

Дэн
источник
2
Новый MG есть в petsc-dev и работает, как и новый решатель GAMG. Мы ждем релиза, пока не сможем изменить каждый пример (а их сотни). Я бы просто начал использовать petsc-dev сейчас.
Мэтт Кнепли

Ответы:

7

И у PETSc, и у Trilinos есть хорошие алгебраические многосеточные методы.

В deal.II реализованы геометрические многосеточные методы для дискретизации конечных элементов, см., например, учебную программу step-16 .

Вольфганг Бангерт
источник
2
PETSc выполняет геометрическую MG, если вы используете сетку DMDA (декартову) с тех пор, как мы знаем, как строить интерполяторы и решать грубые задачи.
Мэтт Кнепли
11

PETG multigrid (в качестве предварительного условия) является достаточно зрелым и может использоваться с любым из решателей KSP (итеративный метод Крылова) в PETSc, набрав:

-pc_type mg

Однако для этого требуется, чтобы у вас был какой-то способ создания грубых уровней, например структурированные сетки, определенные объектами DA PETSc, которые будут автоматически огрублены.

Или, если вы хотите использовать алгебраическую многосетку из пакета HYPRE, вы можете использовать

-pc_type hypre

Или из пакета ML с

-pc_type ml

Они загружаются в процессе настройки путем добавления

--download-hypre=1 --download-ml=1

в вашу ./configure командную строку.

Часть, которая является амортизируемой (на данный момент), является структурой DMMG, которая заменяется решателем SNES (нелинейным) FAS и обеспечивает лучшую поддержку для обработки многоуровневых дискретизаций при использовании MG или FAS, как мы говорим. Другая замена (для линейных задач)

-pc_type gamg -pc_gamg_type sa

Это более новый код, встроенный в PETSc, хорошо масштабируемая алгебраическая многосетка сглаженного агрегирования.

Питер Брюн
источник