!SOLVER¶
Çözücü kontrolü
Zorunlu kontrol verisidir.
Parametreler¶
METHOD = Çözüm yöntemi (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Temas analizi dışındaki doğrudan yöntem (yalnızca seri işlem) (şu anda kullanılamaz)
DIRECTmkl : Intel MKL kullanan doğrudan yöntem
MUMPS : MUMPS kullanan doğrudan yöntem
Doğrudan yöntem seçildiğinde veri satırları göz ardı edilir.
3-DOF problemleri için yinelemeli yöntemler OpenMP ile iş parçacığı paralel çalıştırmayı destekler
PRECOND = Yinelemeli yöntemler için önkoşullandırma yöntemi (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : (Blok) SSOR (yalnızca 3-DOF problemlerinde çok renkli sıralama ile)
3 : (Block) köşegen ölçekleme
5 : Çok ızgaralı önkoşullandırma paketi ML kullanan AMG
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block ILU(2)
22 : HEC-MW'nin yerleşik SA-AMG'sini (Smoothed Aggregation AMG) kullanan AMG
10, 11 ve 12 yalnızca 3-DOF problemlerinde kullanılabilir
22 yalnızca LAPACK etkinleştirilmiş derlemelerde kullanılabilir
OpenMP iş parçacığı paralel çalıştırması için SSOR, köşegen ölçekleme, ML veya SA-AMG önerilir
ITERLOG = Yinelemeli çözücünün yakınsama geçmişinin çıktılanıp çıktılanmayacağı (YES/NO)(Varsayılan: NO)
TIMELOG = Çözücü hesaplama süresinin çıktılanıp çıktılanmayacağı (YES/NO/VERBOSE)(Varsayılan: NO)
LOGLEVEL = Önkoşullandırıcı tanılama çıktı düzeyi (tamsayı)(Varsayılan: çıktı yok)
ITERLOG ve TIMELOG'dan bağımsız olarak belirtilir
1 veya üzeri değerlerde AMG önkoşullandırıcılarının (PRECOND=5,22) hiyerarşi yapısı ve diğer bilgileri çıktılanır
2 veya üzeri değerlerde daha ayrıntılı bilgiler (örneğin bellek kullanımı) çıktılanır
USEJAD = Vektör işlemcileri için sıralama kullanılıp kullanılmayacağı (YES/NO)(Varsayılan: NO)
Yalnızca 3-DOF probleminde yinelemeli yöntem kullanıldığında geçerlidir
SCALING = Köşegen girdileri 1 olacak şekilde matrisin ölçeklenip ölçeklenmeyeceği (YES/NO)(Varsayılan: NO)
Yalnızca 3-DOF probleminde yinelemeli yöntem kullanıldığında geçerlidir
DUMPTYPE = Matris döküm biçimi (NONE, MM, CSR, BSR) (esas olarak hata ayıklama için)
NONE : Döküm alma (Varsayılan)
MM : Matrix Market biçimi
CSR : Compressed Sparse Row (CSR) biçimi
BSR : Bloklu CSR biçimi
DUMPEXIT = Matris dökümünden hemen sonra programı sonlandır (YES/NO)(Varsayılan: NO)
MPCMETHOD = Çok noktalı kısıtların işlenme yöntemi (1, 3)
1: ceza yöntemi (doğrudan yöntem kullanıldığında varsayılan)
3: Açık DOF eliminasyonu (yinelemeli yöntem kullanıldığında varsayılan)
MPC-CG yöntemi (2) kaldırılmıştır. 2 belirtilirse bir uyarı verilir ve varsayılan yöntem kullanılır.
ESTCOND = Koşul sayısı tahmin sıklığı (deneysel)
Belirtilen her iterasyon aralığında ve iterasyonların sonunda koşul sayısını tahmin eder
0 belirtildiğinde tahmin yapılmaz
RECOMPUTE_RESIDUAL = Artık vektörünü yeniden hesaplama sıklığı
Yalnızca METHOD için CG, BiCGSTAB, GPBiCG veya PipeCG belirtildiğinde geçerlidir
Yinelemeli yöntemler artık vektörünü bir yineleme bağıntısıyla güncellediğinden yuvarlama hataları birikir
Belirtilen her iterasyon aralığında artık vektörü {b}-[A]{x} ifadesinden yeniden hesaplanır
0 belirtildiğinde her yöntemin varsayılan değeri kullanılır (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Negatif bir değer belirtildiğinde periyodik yeniden hesaplama yapılmaz
Yakınsama kriteri sağlandığında doğrulama amacıyla yeniden hesaplama bu ayardan bağımsız olarak her zaman yapılır
Çok kısa bir periyot yalnızca matris-vektör çarpımlarını artırmakla kalmaz, aynı zamanda
yakınsamayı da kötüleştirebilir veya çözümün artık yakınsamamasına yol açabilir
Bu ayarı varsayılan değerinden değiştirdikten sonra yakınsama geçmişini ve son bağıl artığı kontrol edin
METHOD2 = İkincil çözüm yöntemi (BiCGSTAB, GMRES, GPBiCG) (deneysel)
Yalnızca METHOD için CG belirtildiğinde geçerlidir
CG ıraksarsa otomatik olarak ikincil yönteme geçilir ve çözüm sürdürülür
Diğer parametreler ve veri satırları için aynı değerler kullanılır
CONTACT_ELIM = Temas analizinde DOF eliminasyonu yapılıp yapılmayacağını belirtir (0,1)
0: Yalnızca yinelemeli yöntem kullanıldığında DOF eliminasyonu yap (Varsayılan)
1: Her zaman DOF eliminasyonu yap (doğrudan yöntem kullanıldığında da)
** 2. satır ve sonrası **
| Değişken adı | Öznitelik | Açıklama |
|---|---|---|
| NITER | I | İterasyon sayısı (Varsayılan: 100) |
| iterPREmax | I | Additive Schwarz önkoşullandırma iterasyonu sayısı (Varsayılan: 1) (Önerilen değer: 1; bazı paralel hesaplamalarda 2 etkili olabilir) |
| NREST | I | Krylov alt uzay boyutu (Varsayılan: 10) (Yalnızca çözüm yöntemi olarak GMRES seçildiğinde geçerlidir) |
| NCOLOR_IN | I | Çok renkli sıralama için hedef renk sayısı (Varsayılan: 10) (Yalnızca OpenMP iş parçacığı sayısı 2 veya daha fazla olduğunda geçerlidir) |
| RECYCLEPRE | I | Önkoşullandırıcı kurulum bilgisinin yeniden kullanım sayısı (Varsayılan: 3) (Yalnızca doğrusal olmayan analizde geçerlidir) |
| Değişken adı | Öznitelik | Açıklama |
|---|---|---|
| RESID | R | Kesme hatası (Varsayılan: 1.0e-8) |
| SIGMA_DIAG | R | Önkoşullandırma matrisi hesaplanırken köşegen girdilerine uygulanan ölçek katsayısı (Varsayılan: 1.0) (ILU önkoşullandırmasında sıfıra bölme veya ıraksama oluşursa 1.0'dan büyük bir değer belirtilmesiyle problem yakınsayabilir) |
| SIGMA | R | Kullanılmıyor (Varsayılan: 0.0) |
PRECOND=5 olduğunda (isteğe bağlı)¶
PRECOND için 5 veya 22 dışında bir değer belirtilirse 4. satır göz ardı edilir.
| Değişken adı | Öznitelik | Açıklama |
|---|---|---|
| ML_CoarseSolver | I | ML için kaba ızgara çözücüsü (1: yumuşatıcı kullan, 2: KLU (seri doğrudan yöntem), 3: MUMPS (paralel doğrudan yöntem)) (Varsayılan: 1) (Önerilen: zor problemler için 3 veya 2, olağan problemler için 1) |
| ML_Smoother | I | ML yumuşatıcısı (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (Varsayılan: 1) (Önerilen: 1) |
| ML_MGCycle | I | ML çok ızgaralı çevrimi (1: V-cycle, 2: W-cycle, 3: Full-V-cycle) (Varsayılan: 1) (Önerilen: zor problemler için 2, olağan problemler için 1) |
| ML_MaxLevels | I | En fazla ML seviye sayısı (Varsayılan: 10) (Özellikle zor problemler için doğrudan kaba çözücü ve 2 seviye (bellek yetersizse 3) kullanın; olağan problemler için 10 önerilir) |
| ML_CoarseningScheme | I | ML kabalaştırma şeması (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (Varsayılan: 1) (Önerilen: 1 veya 5) |
| ML_NumSweep | I | ML yumuşatıcısının süpürme sayısı (Chebyshev için polinom derecesi) (Varsayılan: 2) (Önerilen: Chebyshev için 2, SymBlockGaussSeidel için 1) |
PRECOND=22 olduğunda (isteğe bağlı)¶
PRECOND için 22 dışında bir değer belirtilirse 5. satır göz ardı edilir. 4. ve 5. satırların her biri bütünüyle atlanabilir; ayrıca her iki satırın sonundaki öğeler de atlanabilir. 0 olarak belirtilen her öğe için varsayılan değer kullanılır.
Dördüncü satırdaki 1 ile 7 arasındaki öğeler PRECOND=5 (ML) seçenek satırıyla aynı sıradadır; bu nedenle ML seçenek satırı değiştirilmeden yeniden kullanılabilir. 8 ile 10 arasındaki öğeler SA-AMG’ye özgüdür.
(4. satır) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (kullanılmıyor), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (kullanılmıyor)
| Değişken adı | Öznitelik | Açıklama |
|---|---|---|
| SA_CoarseSolver | I | Kaba ızgara çözücüsü (0: otomatik, 1: yumuşatıcı kullan, 2: yoğun matrisli doğrudan yöntem, 3: MUMPS (paralel doğrudan yöntem)) (Varsayılan: 0) (Otomatik modda, MUMPS etkinleştirilmiş derlemelerde MUMPS; diğerlerinde yoğun matrisli doğrudan yöntem kullanılır) |
| SA_Smoother | I | Yumuşatıcı (0 veya 1: Chebyshev) (Varsayılan: 0) (Yalnızca Chebyshev desteklenir. Başka bir değer belirtilirse uyarı verilir ve Chebyshev kullanılır) |
| SA_MGCycle | I | Çok ızgaralı çevrim (0: varsayılan (W-cycle), 1: V-cycle, 2: W-cycle) (Varsayılan: 0) (Full-V-cycle desteklenmez) |
| SA_MaxLevels | I | En fazla seviye sayısı (Varsayılan: 20) |
| (kullanılmıyor) | I | ML kabalaştırma şemasına karşılık gelen konum. SA-AMG her zaman bağlantısız agregasyon kullandığından, sıfırdan farklı bir değer uyarı üretir ve göz ardı edilir |
| SA_ChebyDegree | I | Chebyshev yumuşatıcısının polinom derecesi (Varsayılan: 2) |
| SA_CoarseSize | I | Kaba ızgara kesme boyutu (Varsayılan: kaba ızgara çözücüsü olarak MUMPS kullanıldığında 50000, diğer durumlarda 100) |
| SA_MaxAggSize | I | En büyük agrega boyutu (Varsayılan: 96) |
| SA_GalerkinLowMem | I | Kaba ızgara matrisi hesaplama yöntemi (0: normal (hız öncelikli), pozitif değer: bellek tasarruflu) (Varsayılan: 0) (Kurulum sırasında bellek yetersizse pozitif bir değer belirtin) |
| (kullanılmıyor) | I | Gelecekteki genişletmeler için ayrılmıştır |
Beşinci satır SA-AMG’ye özgüdür ve ML tarafından okunmaz.
(5. satır) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Değişken adı | Öznitelik | Açıklama |
|---|---|---|
| SA_Theta | R | Güçlü bağlantıları belirleme eşiği (Varsayılan: 0.0) (0.0 değerinde matrisin sıfır olmayan yapısı doğrudan graf olarak kullanılır) |
| SA_ChebyAlpha | R | Chebyshev yumuşatıcısının hedeflediği özdeğer aralığının alt sınırını belirleyen oran (Varsayılan: 20.0) |
| SA_Safety | R | Tahmini en büyük özdeğere uygulanan güvenlik katsayısı (Varsayılan: 1.1) |
| SA_TaperK | R | Kabalaştırma taper katsayısı K (Varsayılan: 100) (2. seviyeden itibaren, en az yaklaşık K agrega kalacak şekilde kabalaştırma daha kademeli yapılır. Negatif değer taper işlemini devre dışı bırakır) |
| SA_AggOrder | R | Agregasyon tarama sırası (0: varsayılan (BFS sırası), 1: BFS sırası, 2: düğüm numaralarının hash sırası (deneysel), 3: dereceye göre artan sıra (deneysel), 4: dereceye göre azalan sıra (deneysel), negatif değer: düğüm numarası sırası) (Varsayılan: 0) |
| SA_MinAggSize | R | En küçük agrega boyutu (Varsayılan: 3) |
| SA_Verify | R | Kurulum sırasında öz denetim yapılıp yapılmayacağı (0: hayır, pozitif değer: evet) (Varsayılan: 0) (esas olarak hata ayıklama için) |
| SA_DumpVTK | R | En üst seviyedeki agregasyonun VTK biçiminde çıktılanıp çıktılanmayacağı (0: çıktı yok, pozitif değer: çıktı) (Varsayılan: 0) (esas olarak hata ayıklama için) |
Örnek¶
SSOR önkoşullandırması ile CG kullanın ve en fazla iterasyon sayısını 10000, kesme hatasını 1.0e-8 olarak ayarlayın
SSOR önkoşullandırması ile GMRES kullanın ve Krylov alt uzay boyutunu 40, çok renkli sıralama için hedef renk sayısını 100 olarak ayarlayın
ILU(0) önkoşullandırması ile CG kullanın ve önkoşullandırma matrisi hesaplanırken köşegen girdilerine uygulanan ölçek katsayısını 1.1 olarak ayarlayın
CG için önkoşullandırıcı olarak ML tarafından sağlanan AMG kullanın
CG için önkoşullandırıcı olarak ML tarafından sağlanan AMG kullanın ve kaba ızgara çözücüsü olarak MUMPS kullanın (zor problemler için)
CG için önkoşullandırıcı olarak ML tarafından sağlanan AMG kullanın ve çok ızgaralı çevrim olarak W-cycle kullanın (zor problemler için)
CG için önkoşullandırıcı olarak ML tarafından sağlanan AMG kullanın, kaba ızgara çözücüsü olarak MUMPS kullanın ve en fazla seviye sayısını 2 olarak ayarlayın (çok zor problemler için)
CG için önkoşullandırıcı olarak HEC-MW'nin yerleşik SA-AMG'sini kullanın
CG için önkoşullandırıcı olarak SA-AMG ve kaba ızgara çözücüsü olarak MUMPS kullanın
Sürtünmeli temas analizinde SA-AMG önkoşullandırmalı BiCGSTAB kullanın ve AMG önkoşullandırıcı hiyerarşisini çıktılattırın