Perpustakaan mana yang memiliki dukungan tingkat tinggi yang baik untuk multigrid?

17

Saya berencana menggunakan multigrid untuk menghitung beberapa nilai eigen dan vektor, dan saya perhatikan PETSc memiliki dukungan tingkat tinggi untuk multigrid. Dokumentasi PETSc mengatakan bahwa bagian PETSc ini tidak boleh digunakan, karena akan segera diganti.

Perpustakaan lain mana yang memiliki dukungan tingkat tinggi untuk multigrid, dan kira-kira seberapa cepat PETSc akan merilis dukungan multigrid baru?

Dan
sumber
2
MG baru ada di sana di sini dan berfungsi, seperti halnya pemecah GAMG yang baru. Kami menunggu untuk rilis hingga kami dapat mengubah setiap contoh (dan ada ratusan). Saya hanya akan mulai menggunakan petsc-dev sekarang.
Matt Knepley

Jawaban:

7

Baik PETSc dan Trilinos memiliki metode multigrid aljabar yang baik.

deal.II mengimplementasikan metode multigrid geometrik untuk diskritisasi elemen hingga, lihat misalnya program tutorial langkah-16 .

Wolfgang Bangerth
sumber
2
PETSc melakukan MG geometris jika Anda menggunakan kisi DMDA (Cartesian) sejak saat itu, kami tahu cara membuat interpolator dan masalah kasar.
Matt Knepley
11

PETSc multigrid (sebagai prekondisi) cukup matang dan dapat digunakan dengan salah satu pemecah KSP (metode Krylov iteratif) dalam PETSc dengan mengetik:

-pc_type mg

Namun, ini mengharuskan Anda memiliki beberapa cara untuk menghasilkan tingkat kasar Anda, seperti memiliki kisi-kisi terstruktur yang didefinisikan oleh objek-objek PETSc DA, yang akan kasar secara otomatis.

Atau, jika Anda ingin menggunakan multigrid aljabar dari paket HYPRE, Anda bisa menggunakan

-pc_type hypre

Atau dari paket ML dengan

-pc_type ml

Ini diunduh selama proses konfigurasi dengan menambahkan

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

ke baris perintah ./configure Anda.

Bagian yang didepresiasi (untuk saat ini) adalah kerangka DMMG, yang digantikan oleh pemecah FAS SNES (nonlinear) dan dukungan yang lebih baik untuk menangani diskritisasi bertingkat saat menggunakan MG atau FAS saat kita bicara. Penggantian lainnya (untuk masalah linier) adalah

-pc_type gamg -pc_gamg_type sa

Ini adalah kode yang lebih baru, asli dalam PETSc, multigrid yang dihaluskan-agregasi yang sangat skalabel.

Peter Brune
sumber