PETSc multigrid (jako warunek wstępny) jest dość dojrzały i może być używany z dowolnym solwerem KSP (iteracyjna metoda Kryłowa) w PETSc, wpisując:
-pc_type mg
Wymaga to jednak pewnej metody generowania zgrubnych poziomów, takiej jak siatki strukturalne zdefiniowane przez obiekty PETSc DA, które zostaną automatycznie zgrubione.
Lub, jeśli chcesz użyć algebraicznej multigrid z pakietu HYPRE, możesz użyć
-pc_type hypre
Lub z pakietu ML za pomocą
-pc_type ml
Są one pobierane podczas procesu konfiguracji przez dołączenie
--download-hypre=1 --download-ml=1
do linii poleceń ./configure.
Część, która jest amortyzowana (na razie) to framework DMMG, który jest zastępowany przez SNES (nieliniowy) solver FAS i lepsze wsparcie dla obsługi wielopoziomowych dyskretyzacji podczas korzystania z MG lub FAS, gdy mówimy. Innym zamiennikiem (dla problemów liniowych) jest
-pc_type gamg -pc_gamg_type sa
Jest to nowszy kod, natywny w PETSc, wysoce skalowalna algebraiczna multigrid z wygładzoną agregacją.