Menarik bahwa pertanyaan ini datang kemarin, karena saya baru saja menyelesaikan implementasi kemarin yang melakukan ini.
Latar belakang saya
Sebagai permulaan, beri tahu saya bahwa meskipun latar belakang pendidikan saya berasal dari komputasi ilmiah, semua pekerjaan yang telah saya lakukan sejak lulus, termasuk Ph.D. pekerjaan, telah di bidang elektromagnetik komputasi. Jadi, saya kira latar belakang kami agak mirip, karena Anda juga tampaknya melihat fisika (berdasarkan profil Anda).
FGMRES
Pertama-tama, apa yang Anda cari, seperti yang telah disebutkan Guido Kanschat dalam komentar, disebut Flexible GMRES atau FGMRES. Referensi, termasuk kodesemu, ada di [1]. Walaupun saya kadang-kadang menemukan kertas SIAM numerik agak sulit dibaca, [1] (dan sebagian besar karya Saad lainnya, termasuk [B1] yang cemerlang, yang tampaknya tersedia secara online secara online gratis) berbeda; makalah ini merupakan bacaan yang menarik, ditulis dengan sangat jelas dan dengan beberapa contoh dan saran yang bagus untuk aplikasi.
FGMRES mudah diimplementasikan, khususnya jika Anda sudah memiliki GMR prekondisi TEPAT yang berfungsi. Catat kata kunci KANAN di sini - jika Anda memiliki GMR prekondisi KIRI, yaitu Anda terbiasa memecahkan MAx = Mb, maka Anda harus membuat beberapa modifikasi. Bandingkan [B1, Algoritma 9.4 pada hal. 282] hingga [B1, Algoritma 9.5, hal. 284]. Anda juga dapat menemukan FGMRES di [B1, Algoritma 9.6, hal. 287], tetapi saya akan sangat menyarankan Anda untuk membaca [1] karena pendek, ditulis dengan baik dan masih memiliki banyak detail menarik.
Apa fungsinya
FGMRES pada dasarnya memungkinkan Anda untuk beralih prekondisi untuk setiap iterasi, jika Anda mau. Salah satu aplikasi untuk ini adalah Anda dapat menggunakan beberapa prekondisi yang bekerja sangat baik ketika Anda jauh dari solusi, dan kemudian beralih ke yang lain ketika Anda semakin dekat. [2], yang belum saya baca secara terperinci, tampaknya membahas sesuatu yang mirip dengan ini.
Namun, aplikasi yang paling menarik dalam kasus saya adalah Anda dapat menggunakan GMRES (prekondisi) sebagai prekondisi untuk FGMRES Anda. Ini adalah alasan di balik nama khas untuk FGMRES, "GMRES dalam-luar". Di sini, "luar" mengacu pada pemecah FGMRES, yang (sebagai prasyarat) menggunakan pemecah "dalam".
Jadi, seberapa bagus praktik ini?
Dalam kasus saya, ini bekerja sangat brilian. Di lingkaran dalam, saya "memecahkan" rumusan masalah yang berkurang kompleksitasnya. Dengan sendirinya, solusi ini terlalu tidak akurat untuk kita gunakan, tetapi ini berfungsi sangat bagus sebagai prasyarat. Perhatikan "" sekitar "penyelesaian" - tidak perlu menjalankan pemecah bagian dalam untuk konvergensi, karena Anda hanya mencari perkiraan kasar. Dalam kasus saya, saya beralih dari menggunakan 151 iterasi, masing-masing seharga 64 detik, menjadi 72 iterasi, masing-masing seharga 79 detik (saya menggunakan 5 iterasi tetap di GMRES bagian dalam). Itu adalah penghematan total selama satu jam, tanpa kehilangan keakuratan dan sangat sedikit pekerjaan pengkodean karena kami sudah memiliki GMRES yang berfungsi yang kami buat secara rekursif.
Untuk beberapa aplikasi dari hal ini, menunjukkan potensi kinerja, lihat [3] (yang sebenarnya menggunakan FGMRES tiga tingkat, sehingga FGMRES, dengan FGMRES sebagai bagian dalam, dengan GMRES sebagai bagian dalam-dalam) dan [4], yang mungkin terlalu aplikasi spesifik untuk Anda gunakan, tetapi berisi beberapa kasus uji menarik.
Referensi
[1] Y. Saad, “Algoritma GMRES prekondisi luar-dalam yang fleksibel,” SIAM J. Sci. Comp., Vol. 14, tidak. 2, hlm. 461–469, Maret 1993. http://www-users.cs.umn.edu/~saad/PDF/umsi-91-279.pdf
[2] D.-Z. Ding, R.-S. Chen, dan Z. Fan, "SSOR preconditioned metode GMRES fleksibel luar-dalam untuk analisis MLFMM dari hamburan benda terbuka," Kemajuan Dalam Penelitian Elektromagnetik, vol. 89, hlm. 339–357, 2009. http://www.jpier.org/PIER/pier89/22.08112601.pdf
[3] TF Eibert, “Beberapa hasil hamburan dihitung dengan teknik surface-integral-persamaan dan hybrid-element-boundary-integral hybrid, dipercepat dengan metode multi-level fast multipole,” IEEE Antennas and Propagation Magazine, vol. 49, tidak. 2, hlm. 61–69, 2007.
[4] Ö. Ergül, T. Malas, dan L. Gürel, "Solusi Masalah Elektromagnetik Skala Besar menggunakan Skema Iterative Inner-Outer dengan Algoritma Multipole Cepat Bertingkat Multilevel Biasa," Kemajuan Dalam Penelitian Elektromagnetik, vol. 106, hlm. 203–223, 2010. http://www.jpier.org/PIER/pier106/13.10061711.pdf
[B1] Y. Saad, Metode Iteratif untuk Sistem Linier Jarang. SIAM, 2003. http://www-users.cs.umn.edu/~saad/IterMethBook_2ndEd.pdf