Solver dan Prapengkondisian¶
Solver linear FrontISTR dikonfigurasi dengan memilih metode langsung atau metode iteratif; metode iteratif dikombinasikan dengan prapengkondisi untuk menyelesaikan persamaan linear. Metode penanganan MPC dan eliminasi DOF kontak merupakan pilihan tambahan yang menentukan bagaimana sistem linear yang mengandung kendala multipoint atau kontak ditangani.
Gambaran Umum Fungsi¶
Pengaturan solver dan prapengkondisian terdiri dari pilihan berikut. Pertama, pilih metode iteratif atau langsung sebagai solver linear. Prapengkondisi hanya dikombinasikan dengan metode iteratif.
| Kategori | Opsi Utama | Peran |
|---|---|---|
| Metode iteratif | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN |
Menyelesaikan matriks jarang berukuran besar dengan penggunaan memori yang relatif efisien. |
| Prapengkondisi untuk metode iteratif | SSOR, penskalaan diagonal, BILU, AMG, SAINV, RIF | Meningkatkan konvergensi metode iteratif. Tidak digunakan dengan metode langsung. |
| Metode langsung | MUMPS, MKL |
Menyelesaikan persamaan linear secara robust melalui faktorisasi matriks. |
| Metode penanganan MPC | Metode penalti, metode MPC-CG, eliminasi DOF eksplisit | Memasukkan kendala multipoint ke dalam sistem linear. |
| Eliminasi DOF kontak | Otomatis, selalu diaktifkan | Mengendalikan penanganan derajat kebebasan kontak yang ditambahkan oleh kontak SLAGRANGE. |
| Fungsi tambahan | Estimasi bilangan kondisi, dump matriks, pencatatan log | Mendukung debugging, evaluasi konvergensi, dan evaluasi kinerja. |
Untuk eksekusi paralel, paralelisme MPI berbasis dekomposisi domain dapat dikombinasikan dengan paralelisme thread OpenMP. Metode iteratif merupakan pilihan standar untuk analisis paralel berskala besar, sedangkan metode langsung digunakan ketika pustaka yang diperlukan telah ditautkan dan dibutuhkan penyelesaian yang lebih robust.
Memilih Solver dan Prapengkondisi¶
Pertama tentukan apakah akan menggunakan metode iteratif atau langsung. Jika metode iteratif dipilih, kemudian pilih prapengkondisi.
| Faktor Keputusan | Pendekatan yang Disarankan |
|---|---|
| Ukuran masalah | Metode langsung stabil dan mudah digunakan untuk masalah kecil hingga menengah. Metode iteratif lebih hemat memori untuk masalah besar. |
| Simetri matriks | Pertimbangkan CG untuk masalah simetris definit positif. Untuk masalah tidak simetris, pertimbangkan BiCGSTAB, GMRES, GPBiCG, atau metode serupa. |
| Lingkungan paralel | Pada paralelisme MPI, kombinasikan metode iteratif dengan dekomposisi domain. Untuk prapengkondisian pada paralelisme OpenMP, pertimbangkan implementasi SSOR multicolor. |
| Prapengkondisi (saat menggunakan metode iteratif) | Coba SSOR default terlebih dahulu, lalu pertimbangkan AMG. SSOR memiliki biaya komputasi ringan ketika konvergensinya baik; AMG cocok untuk masalah kompleks berskala besar. |
| Kontak dan MPC | Pada analisis yang mengandung kontak atau kendala multipoint, pilihan metode penanganan MPC dan eliminasi DOF kontak memengaruhi konvergensi dan robustness. |
| Pustaka eksternal | MUMPS, MKL, dan AMG tersedia pada build yang ditautkan dengan pustaka terkait. |
Untuk analisis standar, toleransi konvergensi default, jumlah iterasi maksimum, dan koefisien koreksi diagonal untuk prapengkondisi umumnya sudah memadai. Hanya ketika konvergensi lambat atau solusi divergen, tinjau kembali secara berurutan metode iteratif, prapengkondisi, metode penanganan MPC, dan eliminasi DOF kontak. Lihat referensi kata kunci !SOLVER untuk nilai parameter dan sintaks.
Metode Iteratif¶
Metode iteratif menyelesaikan sistem jarang berukuran besar dengan memperbarui solusi berulang kali melalui perkalian matriks-vektor dan prapengkondisian. FrontISTR menyediakan metode iteratif berikut.
| Metode Iteratif | Aplikasi Umum | Catatan |
|---|---|---|
CG |
Masalah simetris definit positif | Kandidat standar untuk analisis struktur dan konduksi panas. |
BiCGSTAB |
Masalah tidak simetris | Kandidat ketika kontak gesek atau efek kopling menghasilkan ketidaksimetrian yang kuat. |
GMRES |
Masalah tidak simetris | Digunakan dengan ukuran subruang Krylov yang ditentukan. |
GPBiCG |
Masalah tidak simetris | Digunakan sebagai metode yang ditingkatkan dalam keluarga BiCGSTAB. |
GMRESR |
Masalah tidak simetris, aplikasi lanjutan | Opsi yang menggunakan GMRES secara tersarang. |
GMRESREN |
Masalah tidak simetris, aplikasi lanjutan | Varian rekursif dalam keluarga GMRESR. |
CG mengasumsikan matriks simetris definit positif. Jika kontak gesek, penanganan kendala tidak simetris, efek kopling, atau faktor serupa menimbulkan ketidaksimetrian yang kuat, pertimbangkan BiCGSTAB, GMRES, GPBiCG, atau solver tidak simetris lainnya. Pada GMRES, memperbesar ukuran subruang Krylov dapat meningkatkan konvergensi, tetapi juga meningkatkan penggunaan memori.
Ketika METHOD2 ditentukan, FrontISTR dapat beralih ke metode iteratif alternatif jika CG divergen atau mengalami breakdown. Fungsi ini merupakan fallback untuk kasus ketika CG adalah solver utama; metode alternatif menggunakan pengaturan dan baris data lainnya yang sama dengan solver utama.
Prapengkondisian¶
Prapengkondisian mentransformasikan matriks koefisien untuk meningkatkan konvergensi metode iteratif dan hanya diterapkan ketika metode iteratif dipilih. Metode langsung tidak menggunakan prapengkondisian. Bahkan untuk metode iteratif yang sama, pilihan prapengkondisi dapat sangat mengubah jumlah iterasi dan waktu komputasi yang diperlukan untuk mencapai konvergensi.
| Prapengkondisi | Karakteristik | Aplikasi Umum |
|---|---|---|
| SSOR | Prapengkondisi standar; mendukung pengurutan multicolor. | Kandidat pertama untuk dicoba; digunakan luas dalam analisis struktur. |
| Penskalaan diagonal | Prapengkondisi ringan yang menggunakan entri diagonal. | Ketika biaya komputasi rendah lebih diutamakan. |
| BILU | Faktorisasi LU tak lengkap berbasis blok. | Kandidat untuk masalah yang sulit dikonvergensikan dengan SSOR. |
| AMG | Multigrid aljabar menggunakan Trilinos-ML. | Kandidat untuk masalah berskala besar atau masalah yang didominasi komponen galat hierarkis. |
| SAINV | Sparse Approximate Inverse. | Opsi prapengkondisian khusus untuk masalah kontak atau lingkungan memori terdistribusi. |
| RIF | Robust Incomplete Factorization. | Opsi faktorisasi tak lengkap lainnya. |
SSOR merupakan pilihan standar, dan versi dengan pengurutan multicolor digunakan pada paralelisme OpenMP. Penskalaan diagonal ringan, meskipun peningkatan konvergensinya bergantung pada masalah. BILU diimplementasikan sebagai faktorisasi LU tak lengkap berbasis blok dan juga mendukung matriks dengan jumlah DOF umum. Untuk keluarga BILU, tersedia jalur yang secara otomatis menaikkan koefisien koreksi diagonal SIGMA_DIAG dan mencoba kembali ketika metode iteratif divergen; lihat referensi kata kunci untuk cara menentukan nilainya.
AMG menggunakan Trilinos-ML, sehingga ML harus diaktifkan pada saat build. Smoother, siklus multigrid, metode coarsening, dan pengaturan lain dapat ditentukan, tetapi lihat referensi kata kunci untuk nilai terperinci. Ketika SAINV digunakan dalam analisis paralel yang mengandung kontak atau kendala MPC, kedalaman overlap yang digunakan untuk dekomposisi domain dapat memengaruhi konvergensi.
Metode Langsung¶
Metode langsung menyelesaikan persamaan linear dengan memfaktorkan matriks koefisien. Karena tidak bergantung pada jumlah iterasi, metode ini robust dan dapat menjadi pilihan stabil untuk analisis yang mengandung kondisi kontak atau kendala. Namun, konsumsi memorinya meningkat seiring ukuran masalah.
| Metode Langsung | Lingkungan Paralel | Aplikasi |
|---|---|---|
MUMPS |
Paralel MPI | Menyelesaikan matriks jarang dengan metode langsung dalam lingkungan memori terdistribusi. |
MKL |
Intel MKL / OpenMP | Solver langsung berbasis Intel MKL. Intel PARDISO digunakan secara internal. Dengan beberapa proses MPI, jalur Cluster MKL digunakan. DIRECTmkl adalah alias dari MKL. |
Metode langsung dapat digunakan untuk matriks simetris maupun tidak simetris. MUMPS dan MKL memerlukan pustaka terkait untuk ditautkan pada saat build. Metode ini tidak dapat digunakan di lingkungan tanpa pustaka tersebut, jadi lihat panduan build untuk dependensi dan opsi CMake yang diperlukan.
FrontISTR juga memiliki jalur solver langsung bawaan yang tidak menggunakan pustaka eksternal, tetapi untuk analisis biasa yang memerlukan metode langsung, MUMPS atau MKL biasanya perlu dipertimbangkan terlebih dahulu.
Prapengkondisian tidak diterapkan pada metode langsung. Walaupun prapengkondisi ditentukan dalam !SOLVER, nilai tersebut tidak dirujuk pada jalur solver langsung.
Metode Penanganan MPC¶
Metode penanganan MPC menentukan bagaimana derajat kebebasan yang dihubungkan oleh kendala multipoint dimasukkan ke dalam persamaan linear. Bahkan dengan persamaan kendala yang sama pada data masukan, metode penanganan mengubah sifat dan perilaku konvergensi matriks koefisien.
| Metode Penanganan MPC | Posisi | Penggunaan Default |
|---|---|---|
| Metode penalti | Memenuhi kendala secara aproksimatif dengan menambahkan suku kekakuan besar ke persamaan kendala. | Default untuk metode langsung. |
| Metode MPC-CG | Metode lama yang menangani perkalian matriks-vektor yang mengandung kendala di dalam solver iteratif. | Tidak direkomendasikan. |
| Eliminasi DOF eksplisit | Mengeliminasi derajat kebebasan yang terkendala dan menyelesaikan sistem linear tereduksi. | Default untuk metode iteratif. |
Metode penalti adalah default untuk metode langsung, sedangkan eliminasi DOF eksplisit adalah default untuk metode iteratif. Metode MPC-CG merupakan opsi kompatibilitas lama dan tidak direkomendasikan untuk analisis baru; biasanya gunakan eliminasi DOF eksplisit atau penanganan default untuk metode langsung yang dipilih.
Metode penanganan MPC dapat ditentukan secara eksplisit dengan MPCMETHOD dalam !SOLVER. Lihat referensi kata kunci untuk arti dan sintaks setiap nilai.
Eliminasi DOF Kontak¶
Eliminasi DOF kontak mengurangi derajat kebebasan kontak tambahan yang diperkenalkan oleh kontak SLAGRANGE sebelum sistem diteruskan ke solver linear. Mengeliminasi derajat kebebasan kontak ini dapat memperbaiki sifat sistem linear yang ditangani metode iteratif.
Dalam mode otomatis default, eliminasi DOF kontak diaktifkan untuk metode iteratif dan dinonaktifkan untuk metode langsung. Untuk metode langsung, tersedia jalur yang menyelesaikan secara langsung sistem yang diperbesar dan mengandung derajat kebebasan kontak.
Ketika CONTACT_ELIM ditentukan secara eksplisit, eliminasi DOF kontak juga dapat dilakukan saat metode langsung digunakan. Untuk pilihan tipe kontak, pasangan kontak, dan algoritme kontak pada sisi masukan, lihat halaman Kontak dan Embedding.
Fungsi Tambahan¶
Estimasi bilangan kondisi, dump matriks, dan logging dapat digunakan untuk menyelidiki konvergensi dan kinerja solver. Fungsi-fungsi ini tidak diperlukan untuk analisis normal dan terutama diaktifkan untuk debugging atau evaluasi kinerja.
| Fungsi | Tujuan | Catatan |
|---|---|---|
| Estimasi bilangan kondisi | Mengeluarkan indikator bilangan kondisi untuk CG dan GMRES. |
Tersedia pada build dengan LAPACK diaktifkan. |
| Dump matriks | Menyimpan matriks dan ruas kanan yang diteruskan ke solver. | Mendukung format Matrix Market, CSR, dan BSR. |
DUMPEXIT |
Menghentikan analisis setelah melakukan dump matriks. | Digunakan ketika hanya matriks yang diperlukan untuk verifikasi eksternal. |
ITERLOG |
Mengeluarkan riwayat konvergensi metode iteratif. | Digunakan untuk memeriksa tren residual. |
TIMELOG |
Mengeluarkan waktu komputasi solver. | VERBOSE mengeluarkan rincian yang lebih detail. |
STEPLOG |
Mengeluarkan informasi step. | Digunakan untuk memeriksa prosedur analisis. |
Dump matriks memungkinkan matriks koefisien yang dirakit oleh analisis diperiksa dengan alat eksternal. Ketika DUMPEXIT diaktifkan, analisis berhenti setelah matriks dan ruas kanan disimpan. Estimasi bilangan kondisi adalah fungsi eksperimental yang tersedia dengan CG dan GMRES, dan dapat digunakan untuk mendiagnosis perilaku konvergensi.
Topik Terkait¶
- Solver Linear (Teori) — Prinsip matematis metode iteratif dan prapengkondisian.
- Iterasi Nonlinear dan Integrasi Waktu — Kerangka iterasi Newton, iterasi kontak, dan integrasi waktu yang memanggil solver linear.
- Dekomposisi Domain — Analisis paralel MPI dan pengaturan kedalaman overlap.
- Kontak dan Embedding — Pemilihan tipe kontak dan algoritme kontak.
- !SOLVER — Nilai dan sintaks parameter solver dan prapengkondisi.
- Pustaka Dependensi Wajib dan Opsional — Dependensi seperti
MUMPS,MKL(Intel PARDISO), Trilinos-ML, dan LAPACK.