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, хорошо масштабируемая алгебраическая многосетка сглаженного агрегирования.