Sistem saya adalah masalah FE simetris dengan pengganda lagrange (misalnya aliran Stokes yang tidak dapat dikompresi):
di mana adalah kasus khas (saya bahkan telah memastikan bahwa persamaan diberi nomor sehingga pengali Lagrange muncul terakhir). Sistem ini cukup besar (garis + 100k).
Setelah membaca jawaban untuk pertanyaan ini , saya mendapat kesan bahwa ada prasyarat yang cocok yang dapat digunakan untuk masalah campuran FE.
Menggunakan PETSc, saya telah berhasil menyelesaikan sistem dengan MINRES ( -ksp_type minres -pc_type none -mat_type sbaij
), meskipun presisi tidak terlalu bagus (menyebabkan beberapa iterasi Newton untuk masalah linier). Tidak ada kombinasi lain dari preconditioner dan ksp-solver yang berfungsi.
Apakah ada kombinasi flag untuk PETSc yang akan menyelesaikan sistem ini lebih cepat daripada hanya MINRES?
sumber
Jawaban:
Peringatan
Memecahkan masalah sadel melibatkan lebih banyak pilihan daripada masalah yang pasti, dan ada banyak hal yang bisa salah. Gunakan monitor untuk semua level untuk men-debug konvergensi, untuk memastikan bahwa ruang nol ditangani dengan benar ketika operator tambahan singular (biasanya hanya ruang nol konstan), dan untuk memastikan bahwa prekondisi stabil. Teknik-teknik ini dibahas dalam pertanyaan ini .
Memecahkan masalah titik sadel
Anda bisa mulai dengan bagian tentang memecahkan matriks blok di Panduan Pengguna . Untuk masalah seperti Stokes, Anda dapat membangun preconditioner komplemen Schur menggunakan PCFIELDSPLIT .
Ini dapat dikombinasikan dengan preconditioner Least Squares Commutator untuk komplemen Schur (
-fieldsplit_1_pc_type lsc
). Adalah umum untuk-fieldsplit_1_ksp_type preonly
dan membiarkan iterasi luar melakukan sebagian besar pekerjaan. Varian blok-segitiga populer ketika digunakan dengan cara ini, misalnya-pc_fieldsplit_schur_fact_type upper
,.Anda dapat menemukan rincian lebih lanjut tentang komposisi solver menggunakan opsi opsi di makalah kami (pracetak) , yang juga membahas komuter multigrid dengan dekomposisi blok (menempatkan bidang fields di dalam multigrid).
Untuk banyak masalah, Anda harus menyesuaikan dekomposisi bidang dan prekondisi pelengkap Schur, yang banyak di antaranya melibatkan operator bantu. Sebagai contoh, metode "tekanan konveksi-difusi" (PCD) dari Elman et al membutuhkan diskritisasi operator tambahan di ruang tekanan. Lihat contoh PCSHELL dan bagian manual pengguna untuk tujuan ini.
sumber
Anda memang menginginkan prekondisi, dan pembangunannya dibahas di sini: http://www.math.tamu.edu/~bangerth/videos.676.38.html
sumber