Lewati ke isi

!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 **

(Baris ke-2) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
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)
(Baris ke-3) RESID, SIGMA_DIAG, SIGMA
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

!SOLVER, METHOD=CG, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Gunakan GMRES dengan prapengkondisian SSOR, dan tetapkan jumlah subruang Krylov menjadi 40 serta jumlah warna target untuk pengurutan multicolor menjadi 100

!SOLVER, METHOD=GMRES, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1, 40, 100
  1.0e-8, 1.0, 0.0

Gunakan CG dengan prapengkondisian ILU(0), dan tetapkan faktor skala yang diterapkan pada entri diagonal saat menghitung matriks prapengkondisian menjadi 1.1

!SOLVER, METHOD=CG, PRECOND=10, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.1, 0.0

Gunakan AMG oleh ML sebagai prapengkondisi untuk CG

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Gunakan AMG oleh ML sebagai prapengkondisi untuk CG dan gunakan MUMPS sebagai solver kisi kasar (untuk masalah sulit)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

Gunakan AMG oleh ML sebagai prapengkondisi untuk CG dan gunakan W-cycle sebagai siklus multigrid (untuk masalah sulit)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  1, 1, 2

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)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3, 1, 1, 2

Gunakan SA-AMG bawaan HEC-MW sebagai prapengkondisi untuk CG

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Gunakan SA-AMG sebagai prapengkondisi untuk CG dan gunakan MUMPS sebagai solver kisi kasar

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

Untuk analisis kontak dengan gesekan, gunakan BiCGSTAB dengan prapengkondisian SA-AMG dan keluarkan hierarki prapengkondisi AMG

!SOLVER, METHOD=BiCGSTAB, PRECOND=22, ITERLOG=YES, TIMELOG=YES, LOGLEVEL=1
  10000, 1
  1.0e-8, 1.0, 0.0