!SOLVER¶
Kawalan penyelesai
Data kawalan wajib.
Parameter¶
METHOD = Kaedah penyelesaian (CG、BiCGSTAB、GMRES、GPBiCG、CR、DIRECT、DIRECTmkl、MUMPS)
DIRECT : Kaedah langsung selain analisis sentuhan (pemprosesan bersiri sahaja) (kini tidak tersedia)
DIRECTmkl : Kaedah langsung menggunakan Intel MKL
MUMPS : Kaedah langsung menggunakan MUMPS
Apabila kaedah langsung dipilih, baris data diabaikan.
Kaedah lelaran untuk masalah 3 darjah kebebasan menyokong keselarian benang dengan OpenMP
PRECOND = Kaedah prapensyaratan untuk penyelesai lelaran (1、2、3、5、10、11、12、22)
1, 2 : SSOR (blok) (dengan penyusunan berbilang warna hanya untuk masalah 3 darjah kebebasan)
3 : Penskalaan pepenjuru (blok)
5 : AMG menggunakan pakej prapensyaratan multigrid ML
10 : ILU(0) blok
11 : ILU(1) blok
12 : ILU(2) blok
22 : AMG menggunakan SA-AMG terbina dalam HEC-MW (AMG agregasi terlicin)
10、11、12 hanya tersedia untuk masalah 3 darjah kebebasan
22 hanya tersedia dalam binaan yang mengaktifkan LAPACK
Untuk keselarian benang OpenMP, SSOR, penskalaan pepenjuru, ML atau SA-AMG disyorkan
ITERLOG = Sama ada mengeluarkan sejarah penumpuan penyelesai lelaran (YES/NO)(lalai: NO)
TIMELOG = Sama ada mengeluarkan masa pengiraan penyelesai (YES/NO/VERBOSE)(lalai: NO)
LOGLEVEL = Aras keluaran maklumat diagnostik prapensyarat (integer)(lalai: tiada keluaran)
Ditentukan secara bebas daripada ITERLOG dan TIMELOG
Pada 1 atau lebih tinggi, pembinaan hierarki dan maklumat lain bagi prapensyarat jenis AMG (PRECOND=5、22) dikeluarkan
Pada 2 atau lebih tinggi, maklumat yang lebih terperinci turut dikeluarkan (seperti penggunaan memori)
USEJAD = Sama ada menggunakan penyusunan untuk pemproses vektor (YES/NO)(lalai: NO)
Sah hanya apabila kaedah lelaran digunakan untuk masalah 3 darjah kebebasan
SCALING = Sama ada menskalakan matriks supaya unsur pepenjuru menjadi 1 (YES/NO)(lalai: NO)
Sah hanya apabila kaedah lelaran digunakan untuk masalah 3 darjah kebebasan
DUMPTYPE = Format dump matriks (NONE、MM、CSR、BSR) (terutamanya untuk penyahpepijatan)
NONE : Jangan dump (lalai)
MM : Format Matrix Market
CSR : Format Compressed Sparse Row(CSR)
BSR : Format Blocked CSR
DUMPEXIT = Tamatkan program sejurus selepas dump matriks (YES/NO)(lalai: NO)
MPCMETHOD = Kaedah pemprosesan kekangan berbilang titik (1、3)
1: Kaedah penalti (lalai apabila menggunakan kaedah langsung)
3: Penghapusan darjah kebebasan eksplisit (lalai apabila menggunakan kaedah lelaran)
Kaedah MPC-CG (2) telah dibuang. Jika 2 ditetapkan, amaran dikeluarkan dan kaedah lalai digunakan.
ESTCOND = Kekerapan anggaran nombor keadaan (eksperimen)
Anggarkan nombor keadaan pada setiap sela lelaran yang ditentukan dan pada akhir lelaran
Jika 0 ditentukan, anggaran tidak dilakukan
RECOMPUTE_RESIDUAL = Kekerapan pengiraan semula vektor residu
Sah hanya apabila METHOD ditetapkan kepada CG, BiCGSTAB, GPBiCG atau PipeCG
Kaedah lelaran mengemas kini vektor residu dengan hubungan rekursif, menyebabkan ralat pembundaran terkumpul
Pada setiap sela lelaran yang ditetapkan, vektor residu dikira semula daripada {b}-[A]{x}
Jika 0 ditetapkan, nilai lalai bagi setiap kaedah digunakan (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Jika nilai negatif ditetapkan, pengiraan semula berkala tidak dilakukan
Pengiraan semula untuk pengesahan apabila kriteria penumpuan dipenuhi sentiasa dilakukan tanpa mengira tetapan ini
Jika tempoh terlalu pendek, bukan sahaja bilangan hasil darab matriks-vektor meningkat
malah penumpuan itu sendiri boleh merosot atau gagal dicapai
Jika nilai lalai diubah, semak sejarah penumpuan dan residu relatif akhir
METHOD2 = Kaedah penyelesaian kedua (BiCGSTAB、GMRES、GPBiCG) (eksperimen)
Sah hanya apabila CG ditentukan untuk METHOD
Jika kaedah CG mencapah, beralih secara automatik dan meneruskan penyelesaian
Nilai yang sama digunakan untuk parameter lain dan baris data
CONTACT_ELIM = Menentukan sama ada penghapusan darjah kebebasan dilakukan dalam analisis sentuhan (0,1)
0: Lakukan penghapusan darjah kebebasan hanya apabila menggunakan kaedah lelaran (lalai)
1: Sentiasa lakukan penghapusan darjah kebebasan (termasuk apabila menggunakan kaedah langsung)
** Baris kedua dan seterusnya **
| Pemboleh ubah | Atribut | Keterangan |
|---|---|---|
| NITER | I | Bilangan lelaran (lalai: 100) |
| iterPREmax | I | Bilangan lelaran prapensyaratan Additive Schwarz (lalai: 1) (nilai disyorkan ialah 1; 2 mungkin berkesan dalam pengiraan selari) |
| NREST | I | Bilangan subruang Krylov (lalai: 10) (sah hanya apabila GMRES dipilih sebagai kaedah penyelesaian) |
| NCOLOR_IN | I | Bilangan warna sasaran bagi penyusunan berbilang warna (lalai: 10) (sah hanya apabila bilangan benang OpenMP ialah 2 atau lebih) |
| RECYCLEPRE | I | Bilangan kali maklumat persediaan prapensyarat digunakan semula (lalai: 3) (sah hanya dalam analisis tak linear) |
| Pemboleh ubah | Atribut | Keterangan |
|---|---|---|
| RESID | R | Toleransi penumpuan (lalai: 1.0e-8) |
| SIGMA_DIAG | R | Faktor yang dikenakan pada unsur pepenjuru semasa mengira matriks prapensyaratan (lalai: 1.0) (jika pembahagian dengan sifar atau pencapahan berlaku dengan prapensyaratan ILU, nilai lebih besar daripada 1.0 mungkin membolehkan masalah diselesaikan) |
| SIGMA | R | Tidak digunakan (lalai: 0.0) |
Apabila PRECOND=5 (pilihan)¶
Jika PRECOND ditetapkan kepada nilai selain 5 atau 22, baris keempat diabaikan.
(Baris keempat) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
| Pemboleh ubah | Atribut | Keterangan |
|---|---|---|
| ML_CoarseSolver | I | Penyelesai grid kasar ML (1: gunakan pelicin, 2: KLU (kaedah langsung bersiri), 3: MUMPS (kaedah langsung selari)) (lalai: 1) (disyorkan: 3 atau 2 untuk masalah sukar, 1 untuk masalah biasa) |
| ML_Smoother | I | Pelicin ML (1: Chebyshev、2: SymBlockGaussSeidel、3: Jacobi) (lalai: 1) (disyorkan: 1) |
| ML_MGCycle | I | Kitaran multigrid ML (1: V-cycle、2: W-cycle、3: Full-V-cycle) (lalai: 1) (disyorkan: 2 untuk masalah sukar, 1 untuk masalah biasa) |
| ML_MaxLevels | I | Bilangan aras maksimum ML (lalai: 10) (untuk masalah yang sangat sukar, gunakan penyelesai grid kasar langsung dan 2 aras (3 jika memori tidak mencukupi); untuk masalah biasa, 10) |
| ML_CoarseningScheme | I | Skema pengasaran ML (1: UncoupledMIS、2: METIS、4: Zoltan、5: DD) (lalai: 1) (disyorkan: 1 atau 5) |
| ML_NumSweep | I | Bilangan sweep pelicin ML (darjah polinomial bagi Chebyshev) (lalai: 2) (disyorkan: 2 untuk Chebyshev, 1 untuk SymBlockGaussSeidel) |
Apabila PRECOND=22 (pilihan)¶
Jika PRECOND ditetapkan kepada nilai selain 22, baris kelima diabaikan. Baris keempat dan kelima boleh ditinggalkan sepenuhnya, dan item di hujung setiap baris juga boleh ditinggalkan. Nilai lalai digunakan untuk mana-mana item yang ditetapkan kepada 0.
Item 1 hingga 7 pada baris keempat disusun dalam tertib yang sama dengan baris pilihan PRECOND=5 (ML), maka baris pilihan ML boleh digunakan semula tanpa perubahan. Item 8 hingga 10 adalah khusus untuk SA-AMG.
(Baris keempat) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (tidak digunakan), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (tidak digunakan)
| Pemboleh ubah | Atribut | Keterangan |
|---|---|---|
| SA_CoarseSolver | I | Penyelesai grid kasar (0: automatik, 1: gunakan pelicin, 2: kaedah langsung matriks padat, 3: MUMPS (kaedah langsung selari)) (lalai: 0) (Dalam mod automatik, MUMPS digunakan dalam binaan yang mengaktifkan MUMPS; jika tidak, kaedah langsung matriks padat digunakan) |
| SA_Smoother | I | Pelicin (0, 1: Chebyshev) (lalai: 0) (Hanya Chebyshev disokong. Jika nilai lain ditentukan, amaran dikeluarkan dan Chebyshev digunakan) |
| SA_MGCycle | I | Kitaran multigrid (0: lalai (W-cycle), 1: V-cycle, 2: W-cycle) (lalai: 0) (Full-V-cycle tidak disokong) |
| SA_MaxLevels | I | Bilangan aras maksimum (lalai: 20) |
| (tidak digunakan) | I | Kedudukan yang sepadan dengan skema pengasaran ML. Oleh sebab SA-AMG sentiasa menggunakan agregasi tidak berangkai, nilai selain 0 menghasilkan amaran dan diabaikan |
| SA_ChebyDegree | I | Darjah polinomial pelicin Chebyshev (lalai: 2) |
| SA_CoarseSize | I | Saiz pemotongan grid kasar (lalai: 50000 apabila MUMPS digunakan sebagai penyelesai grid kasar; selainnya 100) |
| SA_MaxAggSize | I | Saiz agregat maksimum (lalai: 96) |
| SA_GalerkinLowMem | I | Kaedah pengiraan matriks grid kasar (0: biasa (mengutamakan kelajuan), nilai positif: penjimatan memori) (lalai: 0) (Tentukan nilai positif jika memori tidak mencukupi semasa persediaan) |
| (tidak digunakan) | I | Dikhaskan untuk pengembangan masa hadapan |
Baris kelima adalah khusus untuk SA-AMG dan tidak dibaca oleh ML.
(Baris kelima) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Pemboleh ubah | Atribut | Keterangan |
|---|---|---|
| SA_Theta | R | Ambang untuk menentukan sambungan kuat (lalai: 0.0) (Pada 0.0, struktur bukan sifar matriks digunakan secara langsung sebagai graf) |
| SA_ChebyAlpha | R | Nisbah yang menentukan had bawah julat nilai eigen yang disasarkan oleh pelicin Chebyshev (lalai: 20.0) |
| SA_Safety | R | Faktor keselamatan yang digunakan pada anggaran nilai eigen maksimum (lalai: 1.1) |
| SA_TaperK | R | Pekali K bagi penirusan pengasaran (lalai: 100) (Mulai aras 2, pengasaran dibuat lebih beransur-ansur supaya sekurang-kurangnya kira-kira K agregat kekal. Nilai negatif melumpuhkan penirusan) |
| SA_AggOrder | R | Tertib penelusuran agregasi (0: lalai (tertib BFS), 1: tertib BFS, 2: tertib hash nombor nod (eksperimen), 3: tertib darjah menaik (eksperimen), 4: tertib darjah menurun (eksperimen), nilai negatif: tertib nombor nod) (lalai: 0) |
| SA_MinAggSize | R | Saiz agregat minimum (lalai: 3) |
| SA_Verify | R | Sama ada menjalankan semakan kendiri semasa persediaan (0: tidak, nilai positif: ya) (lalai: 0) (terutamanya untuk penyahpepijatan) |
| SA_DumpVTK | R | Sama ada mengeluarkan agregasi pada aras tertinggi dalam format VTK (0: tiada keluaran, nilai positif: keluaran) (lalai: 0) (terutamanya untuk penyahpepijatan) |
Contoh penggunaan¶
Gunakan CG dengan prapensyaratan SSOR dan tetapkan bilangan lelaran maksimum kepada 10000 serta toleransi penumpuan kepada 1.0e-8
Gunakan GMRES dengan prapensyaratan SSOR dan tetapkan bilangan subruang Krylov kepada 40 serta bilangan warna sasaran penyusunan berbilang warna kepada 100
Gunakan CG dengan prapensyaratan ILU(0) dan tetapkan faktor pada unsur pepenjuru semasa pengiraan matriks prapensyaratan kepada 1.1
Gunakan AMG oleh ML sebagai prapensyarat CG
Gunakan AMG oleh ML sebagai prapensyarat CG dan MUMPS sebagai penyelesai grid kasar (untuk masalah sukar)
Gunakan AMG oleh ML sebagai prapensyarat CG dan W-cycle sebagai kitaran multigrid (untuk masalah sukar)
Gunakan AMG oleh ML sebagai prapensyarat CG, MUMPS sebagai penyelesai grid kasar dan tetapkan bilangan aras maksimum kepada 2 (untuk masalah yang sangat sukar)
Gunakan SA-AMG terbina dalam HEC-MW sebagai prapensyarat CG
Gunakan SA-AMG sebagai prapensyarat CG dan MUMPS sebagai penyelesai grid kasar
Bagi analisis sentuhan bergeseran, gunakan BiCGSTAB dengan prapensyaratan SA-AMG dan keluarkan hierarki prapensyarat AMG