!SOLVER¶
Kontrol solver
Data kontrol wajib.
Parameter¶
METHOD = Metode penyelesaian (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Metode langsung selain untuk analisis kontak (hanya pemrosesan serial) (saat ini tidak tersedia)
DIRECTmkl : Metode langsung menggunakan Intel MKL
MUMPS : Metode langsung menggunakan MUMPS
Jika metode langsung dipilih, baris data diabaikan.
Metode iteratif untuk masalah 3-DOF mendukung eksekusi paralel thread dengan OpenMP
PRECOND = Metode prapengkondisian untuk solver iteratif (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : (Block) SSOR (dengan pengurutan multicolor hanya untuk masalah 3-DOF)
3 : (Block) Penskalaan diagonal
5 : AMG menggunakan paket multigrid prapengkondisian ML
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block ILU(2)
22 : AMG menggunakan SA-AMG bawaan HEC-MW (Smoothed Aggregation AMG)
10, 11, dan 12 hanya tersedia untuk masalah 3-DOF
22 hanya tersedia pada build dengan LAPACK diaktifkan
Untuk eksekusi paralel thread OpenMP, disarankan menggunakan SSOR, penskalaan diagonal, ML, atau SA-AMG
ITERLOG = Apakah riwayat konvergensi solver iteratif dikeluarkan (YES/NO)(Bawaan: NO)
TIMELOG = Apakah waktu komputasi solver dikeluarkan (YES/NO/VERBOSE)(Bawaan: NO)
LOGLEVEL = Level keluaran diagnostik prapengkondisi (bilangan bulat)(Bawaan: tidak ada keluaran)
Ditentukan secara independen dari ITERLOG dan TIMELOG
Nilai 1 atau lebih mengeluarkan konstruksi hierarki dan informasi lain untuk prapengkondisi AMG (PRECOND=5,22)
Nilai 2 atau lebih mengeluarkan informasi yang lebih terperinci (seperti penggunaan memori)
USEJAD = Apakah pengurutan untuk prosesor vektor digunakan (YES/NO)(Bawaan: NO)
Hanya valid ketika metode iteratif digunakan untuk masalah 3-DOF
SCALING = Apakah matriks diskalakan sehingga entri diagonal bernilai 1 (YES/NO)(Bawaan: NO)
Hanya valid ketika metode iteratif digunakan untuk masalah 3-DOF
DUMPTYPE = Format dump matriks (NONE, MM, CSR, BSR) (terutama untuk debugging)
NONE : Jangan dump (Bawaan)
MM : Format Matrix Market
CSR : Format Compressed Sparse Row (CSR)
BSR : Format Blocked CSR
DUMPEXIT = Hentikan program segera setelah dump matriks (YES/NO)(Bawaan: NO)
MPCMETHOD = Metode untuk menangani kendala multi-titik (1, 3)
1: Metode penalti (Bawaan ketika menggunakan metode langsung)
3: Eliminasi DOF eksplisit (Bawaan ketika menggunakan metode iteratif)
Metode MPC-CG (2) telah dihapus. Jika 2 ditetapkan, peringatan ditampilkan dan metode bawaan digunakan.
ESTCOND = Frekuensi estimasi bilangan kondisi (eksperimental)
Estimasikan bilangan kondisi pada setiap interval iterasi yang ditentukan dan pada akhir iterasi
Estimasi tidak dilakukan jika 0 ditentukan
RECOMPUTE_RESIDUAL = Frekuensi penghitungan ulang vektor residu
Hanya berlaku ketika CG, BiCGSTAB, GPBiCG, atau PipeCG ditentukan untuk METHOD
Metode iteratif memperbarui vektor residu dengan relasi rekurensi sehingga galat pembulatan terakumulasi
Pada setiap interval iterasi yang ditentukan, vektor residu dihitung ulang dari {b}-[A]{x}
Jika 0 ditentukan, digunakan nilai bawaan masing-masing metode (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Jika nilai negatif ditentukan, penghitungan ulang berkala tidak dilakukan
Penghitungan ulang untuk memastikan konvergensi selalu dilakukan ketika kriteria konvergensi terpenuhi, terlepas dari pengaturan ini
Interval yang terlalu pendek tidak hanya menambah perkalian matriks-vektor, tetapi juga dapat
memperburuk konvergensi itu sendiri hingga penyelesaian tidak lagi konvergen
Setelah mengubah pengaturan ini dari nilai bawaannya, periksa riwayat konvergensi dan residu relatif akhir
METHOD2 = Metode penyelesaian sekunder (BiCGSTAB, GMRES, GPBiCG) (eksperimental)
Hanya valid ketika CG ditentukan untuk METHOD
Jika CG divergen, otomatis beralih ke metode sekunder dan lanjutkan penyelesaian
Nilai yang sama digunakan untuk parameter dan baris data lainnya
CONTACT_ELIM = Menentukan apakah eliminasi DOF dilakukan dalam analisis kontak (0,1)
0: Lakukan eliminasi DOF hanya ketika menggunakan metode iteratif (Bawaan)
1: Selalu lakukan eliminasi DOF (termasuk ketika menggunakan metode langsung)
** Baris ke-2 dan seterusnya **
| Nama variabel | Atribut | Deskripsi |
|---|---|---|
| NITER | I | Jumlah iterasi (Bawaan: 100) |
| iterPREmax | I | Jumlah iterasi prapengkondisian Additive Schwarz (Bawaan: 1) (Nilai yang disarankan: 1; 2 dapat efektif pada sebagian komputasi paralel) |
| NREST | I | Jumlah subruang Krylov (Bawaan: 10) (Hanya valid ketika GMRES dipilih sebagai metode penyelesaian) |
| NCOLOR_IN | I | Jumlah warna target untuk pengurutan multicolor (Bawaan: 10) (Hanya valid ketika jumlah thread OpenMP adalah 2 atau lebih) |
| RECYCLEPRE | I | Jumlah penggunaan ulang informasi setup prapengkondisi (Bawaan: 3) (Hanya valid dalam analisis nonlinear) |
| Nama variabel | Atribut | Deskripsi |
|---|---|---|
| RESID | R | Galat pemotongan (Bawaan: 1.0e-8) |
| SIGMA_DIAG | R | Faktor skala yang diterapkan pada entri diagonal saat menghitung matriks prapengkondisian (Bawaan: 1.0) (Jika terjadi pembagian dengan nol atau divergensi dengan prapengkondisian ILU, masalah dapat konvergen jika nilai lebih besar dari 1.0 ditentukan) |
| SIGMA | R | Tidak digunakan (Bawaan: 0.0) |
Ketika PRECOND=5 (Opsional)¶
Jika PRECOND diberi nilai selain 5 atau 22, baris ke-4 diabaikan.
(Baris ke-4) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
| Nama variabel | Atribut | Deskripsi |
|---|---|---|
| ML_CoarseSolver | I | Solver kisi kasar untuk ML (1: gunakan penghalus, 2: KLU (metode langsung serial), 3: MUMPS (metode langsung paralel)) (Bawaan: 1) (Disarankan: 3 atau 2 untuk masalah sulit, 1 untuk masalah biasa) |
| ML_Smoother | I | Penghalus ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (Bawaan: 1) (Disarankan: 1) |
| ML_MGCycle | I | Siklus multigrid ML (1: V-cycle, 2: W-cycle, 3: Full-V-cycle) (Bawaan: 1) (Disarankan: 2 untuk masalah sulit, 1 untuk masalah biasa) |
| ML_MaxLevels | I | Jumlah maksimum level ML (Bawaan: 10) (Untuk masalah yang sangat sulit, gunakan solver kisi kasar dengan metode langsung dan 2 level (atau 3 jika memori tidak mencukupi); untuk masalah biasa, disarankan 10) |
| ML_CoarseningScheme | I | Skema pengasaran ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (Bawaan: 1) (Disarankan: 1 atau 5) |
| ML_NumSweep | I | Jumlah sweep penghalus ML (derajat polinomial untuk Chebyshev) (Bawaan: 2) (Disarankan: 2 untuk Chebyshev, 1 untuk SymBlockGaussSeidel) |
Ketika PRECOND=22 (Opsional)¶
Jika PRECOND diberi nilai selain 22, baris ke-5 diabaikan. Baris ke-4 dan ke-5 dapat dihilangkan seluruhnya, dan item di bagian akhir pada masing-masing baris juga dapat dihilangkan. Nilai bawaan digunakan untuk setiap item yang diberi nilai 0.
Item ke-1 sampai ke-7 pada baris ke-4 disusun dalam urutan yang sama dengan baris opsi PRECOND=5 (ML), sehingga baris opsi ML dapat digunakan kembali tanpa perubahan. Item ke-8 sampai ke-10 khusus untuk SA-AMG.
(Baris ke-4) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (tidak digunakan), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (tidak digunakan)
| Nama variabel | Atribut | Deskripsi |
|---|---|---|
| SA_CoarseSolver | I | Solver kisi kasar (0: otomatis, 1: gunakan penghalus, 2: metode langsung matriks padat, 3: MUMPS (metode langsung paralel)) (Bawaan: 0) (Dalam mode otomatis, MUMPS digunakan pada build dengan MUMPS diaktifkan; jika tidak, metode langsung matriks padat digunakan) |
| SA_Smoother | I | Penghalus (0 atau 1: Chebyshev) (Bawaan: 0) (Hanya Chebyshev yang didukung. Jika nilai lain ditentukan, peringatan dikeluarkan dan Chebyshev digunakan) |
| SA_MGCycle | I | Siklus multigrid (0: bawaan (W-cycle), 1: V-cycle, 2: W-cycle) (Bawaan: 0) (Full-V-cycle tidak didukung) |
| SA_MaxLevels | I | Jumlah maksimum level (Bawaan: 20) |
| (tidak digunakan) | I | Posisi yang bersesuaian dengan skema pengasaran ML. Karena SA-AMG selalu menggunakan agregasi tak berkopel, nilai bukan nol akan menghasilkan peringatan dan diabaikan |
| SA_ChebyDegree | I | Derajat polinomial penghalus Chebyshev (Bawaan: 2) |
| SA_CoarseSize | I | Ukuran batas kisi kasar (Bawaan: 50000 ketika MUMPS digunakan sebagai solver kisi kasar; jika tidak, 100) |
| SA_MaxAggSize | I | Ukuran maksimum agregat (Bawaan: 96) |
| SA_GalerkinLowMem | I | Metode komputasi matriks kisi kasar (0: normal (memprioritaskan kecepatan), nilai positif: hemat memori) (Bawaan: 0) (Tentukan nilai positif jika memori tidak mencukupi selama setup) |
| (tidak digunakan) | I | Dicadangkan untuk pengembangan mendatang |
Baris ke-5 khusus untuk SA-AMG dan tidak dibaca oleh ML.
(Baris ke-5) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Nama variabel | Atribut | Deskripsi |
|---|---|---|
| SA_Theta | R | Ambang untuk menentukan koneksi kuat (Bawaan: 0.0) (Pada 0.0, struktur tak nol matriks digunakan langsung sebagai graf) |
| SA_ChebyAlpha | R | Rasio yang menentukan batas bawah interval nilai eigen yang ditargetkan oleh penghalus Chebyshev (Bawaan: 20.0) |
| SA_Safety | R | Faktor keamanan yang diterapkan pada estimasi nilai eigen maksimum (Bawaan: 1.1) |
| SA_TaperK | R | Koefisien taper pengasaran K (Bawaan: 100) (Mulai level 2, pengasaran dibuat lebih bertahap agar sedikitnya sekitar K agregat tetap ada. Nilai negatif menonaktifkan tapering) |
| SA_AggOrder | R | Urutan penelusuran agregasi (0: bawaan (urutan BFS), 1: urutan BFS, 2: urutan hash nomor node (eksperimental), 3: urutan derajat menaik (eksperimental), 4: urutan derajat menurun (eksperimental), nilai negatif: urutan nomor node) (Bawaan: 0) |
| SA_MinAggSize | R | Ukuran minimum agregat (Bawaan: 3) |
| SA_Verify | R | Apakah pemeriksaan mandiri dijalankan selama setup (0: tidak, nilai positif: ya) (Bawaan: 0) (terutama untuk debugging) |
| SA_DumpVTK | R | Apakah agregasi pada level tertinggi dikeluarkan dalam format VTK (0: tidak dikeluarkan, nilai positif: dikeluarkan) (Bawaan: 0) (terutama untuk debugging) |
Contoh¶
Gunakan CG dengan prapengkondisian SSOR, dan tetapkan jumlah maksimum iterasi menjadi 10000 serta galat pemotongan menjadi 1.0e-8
Gunakan GMRES dengan prapengkondisian SSOR, dan tetapkan jumlah subruang Krylov menjadi 40 serta jumlah warna target untuk pengurutan multicolor menjadi 100
Gunakan CG dengan prapengkondisian ILU(0), dan tetapkan faktor skala yang diterapkan pada entri diagonal saat menghitung matriks prapengkondisian menjadi 1.1
Gunakan AMG oleh ML sebagai prapengkondisi untuk CG
Gunakan AMG oleh ML sebagai prapengkondisi untuk CG dan gunakan MUMPS sebagai solver kisi kasar (untuk masalah sulit)
Gunakan AMG oleh ML sebagai prapengkondisi untuk CG dan gunakan W-cycle sebagai siklus multigrid (untuk masalah sulit)
Gunakan AMG oleh ML sebagai prapengkondisi untuk CG, gunakan MUMPS sebagai solver kisi kasar, dan tetapkan jumlah maksimum level menjadi 2 (untuk masalah yang sangat sulit)
Gunakan SA-AMG bawaan HEC-MW sebagai prapengkondisi untuk CG
Gunakan SA-AMG sebagai prapengkondisi untuk CG dan gunakan MUMPS sebagai solver kisi kasar
Untuk analisis kontak dengan gesekan, gunakan BiCGSTAB dengan prapengkondisian SA-AMG dan keluarkan hierarki prapengkondisi AMG