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 multi-titik atau kontak ditangani.
Ikhtisar Fitur¶
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, eliminasi DOF eksplisit | Memasukkan kendala multi-titik 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 bawaan terlebih dahulu, lalu pertimbangkan AMG. SSOR memiliki biaya komputasi ringan ketika konvergensinya baik; prapengkondisian AMG cocok untuk masalah kompleks berskala besar. AMG tersedia sebagai implementasi Trilinos-ML atau SA-AMG bawaan HEC-MW; pilih sesuai konfigurasi build. |
| Kontak dan MPC | Pada analisis yang mengandung kontak atau kendala multi-titik, pilihan metode penanganan MPC dan eliminasi DOF kontak memengaruhi konvergensi dan robustness. |
| Pustaka eksternal | MUMPS, MKL, dan AMG (Trilinos-ML) tersedia pada build yang ditautkan dengan pustaka terkait. AMG (SA-AMG) tersedia pada build dengan LAPACK diaktifkan. |
Untuk analisis standar, toleransi konvergensi bawaan, 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 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.
CG, BiCGSTAB, GPBiCG, dan PipeCG memperbarui vektor residu dengan relasi rekurensi, sehingga galat pembulatan terakumulasi seiring bertambahnya iterasi dan dapat menimbulkan penyimpangan dari residu sebenarnya. Untuk mencegahnya, vektor residu dihitung ulang secara berkala dari ruas kanan dan hasil kali matriks-vektor. Periode ini dapat ditentukan dengan RECOMPUTE_RESIDUAL. Memperpanjang periode mengurangi jumlah perkalian matriks-vektor, tetapi meningkatkan risiko residu dari relasi rekurensi menyimpang dari residu sebenarnya sehingga solusi yang belum konvergen dinilai sudah konvergen. Sebaliknya, jika periode dibuat terlalu pendek, bukan hanya jumlah perkalian matriks-vektor yang bertambah, tetapi hubungan antara residu dan vektor bantu yang dipertahankan oleh relasi rekurensi dapat rusak sehingga konvergensi itu sendiri memburuk. Nilai bawaan menyeimbangkan hal-hal ini untuk setiap metode; jika diubah, periksa riwayat konvergensi dan residu relatif akhir.
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 (Trilinos-ML) | Multigrid aljabar menggunakan pustaka eksternal Trilinos-ML. | Kandidat untuk masalah berskala besar atau masalah yang didominasi komponen galat hierarkis. |
| AMG (SA-AMG) | Multigrid aljabar tipe agregasi terhaluskan (Smoothed Aggregation) bawaan HEC-MW. | Sama seperti di atas; kandidat ketika AMG digunakan tanpa menambahkan pustaka eksternal. |
| 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 (multigrid aljabar) memiliki dua implementasi: implementasi yang menggunakan pustaka eksternal Trilinos-ML dan SA-AMG bawaan HEC-MW. Keduanya merupakan implementasi independen dengan konfigurasi build yang diperlukan dan opsi yang tersedia berbeda.
AMG berbasis Trilinos-ML memerlukan ML diaktifkan saat build. Penghalus, siklus multigrid, skema pengasaran, dan pengaturan lain dapat ditentukan; lihat referensi kata kunci untuk nilai terperinci.
SA-AMG adalah prapengkondisi multigrid aljabar tipe agregasi terhaluskan dan tidak memerlukan Trilinos-ML. Namun, SA-AMG menggunakan LAPACK secara internal, sehingga diperlukan build dengan LAPACK diaktifkan; jika dipilih pada build tanpa LAPACK, eksekusi berakhir tanpa memulai analisis. Untuk penyelesaian kisi kasar, MUMPS dapat digunakan pada build dengan MUMPS diaktifkan; jika tidak, digunakan metode langsung matriks rapat bawaan.
SA-AMG terutama ditujukan untuk sistem simetris definit positif (CG), tetapi juga mendukung sistem tereduksi tidak simetris yang timbul akibat kontak gesek (BiCGSTAB, GMRES, dan lainnya). SA-AMG mendukung 1 (konduksi panas), 2 (bidang), 3 (padat), dan 6 (cangkang) DOF per node, tetapi tidak mendukung matriks dengan jumlah DOF yang berbeda antar-node. Solver kisi kasar, siklus multigrid, derajat penghalus, dan opsi lain dapat ditentukan, tetapi nilai bawaan dapat digunakan untuk analisis standar. Lihat referensi kata kunci untuk nilai dan sintaks. Pada build dengan GPU (OpenACC) diaktifkan, tahap penerapan prapengkondisi dijalankan pada GPU.
Ketika SAINV digunakan dalam analisis paralel yang mengandung kontak atau kendala MPC, kedalaman tumpang tindih 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 multi-titik 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 Bawaan |
|---|---|---|
| Metode penalti | Memenuhi kendala secara aproksimatif dengan menambahkan suku kekakuan besar ke persamaan kendala. | Bawaan untuk metode langsung. |
| Eliminasi DOF eksplisit | Mengeliminasi derajat kebebasan yang terkendala dan menyelesaikan sistem linear tereduksi. | Bawaan untuk metode iteratif. |
Metode penalti adalah bawaan untuk metode langsung, sedangkan eliminasi DOF eksplisit adalah bawaan untuk metode iteratif. Metode MPC-CG yang sebelumnya dapat dipilih telah dihapus; masukan yang menetapkan MPCMETHOD=2 menghasilkan peringatan dan diproses menggunakan pengaturan bawaan tersebut.
Pada eliminasi DOF eksplisit, massa terpusat yang digunakan dalam analisis modal dan analisis dinamik eksplisit juga direduksi dengan transformasi yang sama seperti matriks kekakuan. Karena matriks massa hasil reduksi umumnya tidak diagonal, jumlah tiap barisnya digunakan sebagai massa terpusat. Untuk kendala penghubung atau interpolasi yang jumlah koefisien persamaan kendalanya sama dengan 1, massa derajat kebebasan dependen didistribusikan ke derajat kebebasan utama secara proporsional terhadap koefisien tersebut.
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 bawaan, 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 residu. |
TIMELOG | Mengeluarkan waktu komputasi solver. | VERBOSE mengeluarkan rincian yang lebih detail. |
STEPLOG | Mengeluarkan informasi step. | Digunakan untuk memeriksa prosedur analisis. |
LOGLEVEL | Mengeluarkan informasi diagnostik seperti konstruksi hierarki prapengkondisi AMG. | Ditentukan secara independen dari ITERLOG dan TIMELOG. Nilai yang lebih besar meningkatkan jumlah keluaran. |
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.
- Partisi Mesh — Analisis paralel MPI dan pengaturan kedalaman overlap.
- Kontak dan Embedding — Pemilihan tipe kontak dan algoritme kontak.
- !SOLVER — Nilai dan sintaks parameter solver dan prapengkondisi.
- Dependensi Wajib dan Opsional — Dependensi seperti
MUMPS,MKL(Intel PARDISO), Trilinos-ML, dan LAPACK.