!SOLVER¶
Řízení řešiče
Povinná řídicí data.
Parametry¶
METHOD = Metoda řešení (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Přímá metoda kromě kontaktní analýzy (pouze sériové zpracování) (v současnosti nedostupné)
DIRECTmkl : Přímá metoda využívající Intel MKL
MUMPS : Přímá metoda využívající MUMPS
Při volbě přímé metody jsou datové řádky ignorovány.
Iterativní metody pro úlohy se 3 stupni volnosti podporují vláknově paralelní běh pomocí OpenMP
PRECOND = Metoda předpodmínění pro iterativní řešiče (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : (Blokové) SSOR (s vícebarevným uspořádáním pouze pro úlohy se 3 stupni volnosti)
3 : (Block) Diagonal Scaling
5 : AMG využívající balíček ML pro víceúrovňové předpodmínění
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block ILU(2)
22 : AMG s vestavěným SA-AMG knihovny HEC-MW (AMG s vyhlazenou agregací)
10, 11 a 12 jsou dostupné pouze pro úlohy se 3 stupni volnosti
22 je k dispozici pouze v sestaveních s povoleným LAPACK
Pro vláknový paralelismus OpenMP se doporučuje SSOR, Diagonal Scaling, ML nebo SA-AMG
ITERLOG = Zda vypisovat historii konvergence iterativního řešiče (YES/NO)(výchozí: NO)
TIMELOG = Zda vypisovat dobu výpočtu řešiče (YES/NO/VERBOSE)(výchozí: NO)
LOGLEVEL = Úroveň výstupu diagnostických informací předpodmínění (celé číslo)(výchozí: bez výstupu)
Zadává se nezávisle na ITERLOG a TIMELOG
Při hodnotě 1 nebo vyšší se vypisuje struktura hierarchie a další informace pro předpodmínění AMG (PRECOND=5,22)
Při hodnotě 2 nebo vyšší se vypisují podrobnější informace (například využití paměti)
USEJAD = Zda použít uspořádání pro vektorové procesory (YES/NO)(výchozí: NO)
Platí pouze při použití iterativní metody pro úlohu se 3 stupni volnosti
SCALING = Zda škálovat matici tak, aby diagonální prvky byly rovny 1 (YES/NO)(výchozí: NO)
Platí pouze při použití iterativní metody pro úlohu se 3 stupni volnosti
DUMPTYPE = Formát výpisu matice (NONE, MM, CSR, BSR) (především pro ladění)
NONE : Nevypisovat (výchozí)
MM : Formát Matrix Market
CSR : Formát Compressed Sparse Row (CSR)
BSR : Formát Blocked CSR
DUMPEXIT = Ukončit program ihned po výpisu matice (YES/NO)(výchozí: NO)
MPCMETHOD = Metoda zpracování vícebodových vazeb (1, 3)
1: Penalizační metoda (výchozí při použití přímé metody)
3: Explicitní eliminace stupňů volnosti (výchozí při použití iterativní metody)
Metoda MPC-CG (2) byla odstraněna. Při zadání 2 se vypíše varování a použije se výchozí metoda.
ESTCOND = Frekvence odhadu čísla podmíněnosti (experimentální)
Odhadnout číslo podmíněnosti v každém zadaném intervalu iterací a na konci iterací
Při zadání 0 se odhad neprovádí
RECOMPUTE_RESIDUAL = Frekvence přepočtu vektoru rezidua
Platí pouze tehdy, když je pro METHOD zadáno CG, BiCGSTAB, GPBiCG nebo PipeCG
Iterativní metody aktualizují vektor rezidua rekurentním vztahem, takže se hromadí chyby zaokrouhlení
Při každém zadaném počtu iterací se vektor rezidua znovu vypočítá jako {b}-[A]{x}
Při zadání 0 se použije výchozí hodnota dané metody (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Při zadání záporné hodnoty se periodický přepočet neprovádí
Přepočet pro ověření konvergence se při splnění kritéria konvergence provede vždy, bez ohledu na toto nastavení
Příliš krátký interval nejen zvyšuje počet násobení matice vektorem, ale může také
zhoršit samotnou konvergenci nebo způsobit, že řešení nebude konvergovat
Po změně tohoto nastavení z výchozí hodnoty zkontrolujte historii konvergence a konečné relativní reziduum
METHOD2 = Sekundární metoda řešení (BiCGSTAB, GMRES, GPBiCG) (experimentální)
Platí pouze tehdy, je-li pro METHOD zadáno CG
Pokud CG diverguje, automaticky přepnout na sekundární metodu a pokračovat v řešení
Pro ostatní parametry a datové řádky se používají stejné hodnoty
CONTACT_ELIM = Určuje, zda se v kontaktní analýze provádí eliminace stupňů volnosti (0,1)
0: Provést eliminaci stupňů volnosti pouze při použití iterativní metody (výchozí)
1: Vždy provést eliminaci stupňů volnosti (včetně použití přímé metody)
** 2. a následující řádky **
| Proměnná | Typ | Popis |
|---|---|---|
| NITER | I | Počet iterací (výchozí: 100) |
| iterPREmax | I | Počet iterací předpodmínění Additive Schwarz (výchozí: 1) (Doporučená hodnota: 1; v některých paralelních výpočtech může být účinná hodnota 2) |
| NREST | I | Velikost Krylovova podprostoru (výchozí: 10) (Platí pouze při volbě GMRES jako metody řešení) |
| NCOLOR_IN | I | Cílový počet barev pro vícebarevné uspořádání (výchozí: 10) (Platí pouze při počtu vláken OpenMP 2 nebo více) |
| RECYCLEPRE | I | Počet opakovaných použití informací o nastavení předpodmínění (výchozí: 3) (Platí pouze v nelineární analýze) |
| Proměnná | Typ | Popis |
|---|---|---|
| RESID | R | Tolerance ukončení (výchozí: 1.0e-8) |
| SIGMA_DIAG | R | Měřítkový faktor použitý na diagonální prvky při výpočtu matice předpodmínění (výchozí: 1.0) (Pokud při předpodmínění ILU dojde k dělení nulou nebo divergenci, může úloha konvergovat při zadání hodnoty větší než 1.0) |
| SIGMA | R | Nepoužito (výchozí: 0.0) |
Při PRECOND=5 (volitelné)¶
Pokud je pro PRECOND zadána jiná hodnota než 5 nebo 22, 4. řádek se ignoruje.
| Proměnná | Typ | Popis |
|---|---|---|
| ML_CoarseSolver | I | Řešič na hrubé síti pro ML (1: použít vyhlazovač, 2: KLU (sériová přímá metoda), 3: MUMPS (paralelní přímá metoda)) (výchozí: 1) (Doporučeno: 3 nebo 2 pro obtížné úlohy, 1 pro běžné úlohy) |
| ML_Smoother | I | Vyhlazovač ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (výchozí: 1) (Doporučeno: 1) |
| ML_MGCycle | I | Víceúrovňový cyklus ML (1: V-cyklus, 2: W-cyklus, 3: Full-V-cyklus) (výchozí: 1) (Doporučeno: 2 pro obtížné úlohy, 1 pro běžné úlohy) |
| ML_MaxLevels | I | Maximální počet úrovní ML (výchozí: 10) (Pro zvlášť obtížné úlohy použijte přímý řešič na hrubé síti a 2 úrovně (nebo 3 při nedostatku paměti); pro běžné úlohy se doporučuje 10) |
| ML_CoarseningScheme | I | Schéma zhrubování ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (výchozí: 1) (Doporučeno: 1 nebo 5) |
| ML_NumSweep | I | Počet průchodů vyhlazovače ML (stupeň polynomu pro Chebyshev) (výchozí: 2) (Doporučeno: 2 pro Chebyshev, 1 pro SymBlockGaussSeidel) |
Při PRECOND=22 (volitelné)¶
Pokud je pro PRECOND zadána jiná hodnota než 22, 5. řádek se ignoruje. Čtvrtý i pátý řádek lze zcela vynechat a lze také vynechat koncové položky každého z nich. Pro každou položku zadanou jako 0 se použije výchozí hodnota.
Položky 1 až 7 na 4. řádku jsou uspořádány stejně jako na řádku voleb PRECOND=5 (ML), takže řádek voleb ML lze beze změny znovu použít. Položky 8 až 10 jsou specifické pro SA-AMG.
(4. řádek) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (nepoužito), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (nepoužito)
| Proměnná | Typ | Popis |
|---|---|---|
| SA_CoarseSolver | I | Řešič na hrubé síti (0: automaticky, 1: použít vyhlazovač, 2: přímá metoda pro hustou matici, 3: MUMPS (paralelní přímá metoda)) (výchozí: 0) (V automatickém režimu se v sestaveních s povoleným MUMPS použije MUMPS; jinak se použije přímá metoda pro hustou matici) |
| SA_Smoother | I | Vyhlazovač (0 nebo 1: Chebyshev) (výchozí: 0) (Podporován je pouze Chebyshev. Při zadání jiné hodnoty se vypíše varování a použije se Chebyshev) |
| SA_MGCycle | I | Víceúrovňový cyklus (0: výchozí (W-cyklus), 1: V-cyklus, 2: W-cyklus) (výchozí: 0) (Full-V-cyklus není podporován) |
| SA_MaxLevels | I | Maximální počet úrovní (výchozí: 20) |
| (nepoužito) | I | Pozice odpovídající schématu zhrubování ML. Protože SA-AMG vždy používá nespojenou agregaci, nenulová hodnota vyvolá varování a ignoruje se |
| SA_ChebyDegree | I | Stupeň polynomu Chebyshevova vyhlazovače (výchozí: 2) |
| SA_CoarseSize | I | Mezní velikost hrubé sítě (výchozí: 50000 při použití MUMPS jako řešiče na hrubé síti; jinak 100) |
| SA_MaxAggSize | I | Maximální velikost agregátu (výchozí: 96) |
| SA_GalerkinLowMem | I | Způsob výpočtu matice na hrubé síti (0: normální (upřednostňuje rychlost), kladná hodnota: úsporný na paměť) (výchozí: 0) (Pokud při sestavení není dostatek paměti, zadejte kladnou hodnotu) |
| (nepoužito) | I | Rezervováno pro budoucí rozšíření |
Pátý řádek je určen pouze pro SA-AMG a ML jej nečte.
(5. řádek) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Proměnná | Typ | Popis |
|---|---|---|
| SA_Theta | R | Prahová hodnota pro určení silných spojení (výchozí: 0.0) (Při 0.0 se nenulová struktura matice použije přímo jako graf) |
| SA_ChebyAlpha | R | Poměr určující dolní mez intervalu vlastních čísel, na který cílí Chebyshevův vyhlazovač (výchozí: 20.0) |
| SA_Safety | R | Bezpečnostní faktor aplikovaný na odhad největšího vlastního čísla (výchozí: 1.1) |
| SA_TaperK | R | Koeficient K pro postupné zhrubování (výchozí: 100) (Od úrovně 2 je zhrubování pozvolnější, aby zůstalo alespoň přibližně K agregátů. Záporná hodnota postupné zhrubování vypne) |
| SA_AggOrder | R | Pořadí průchodu agregace (0: výchozí (pořadí BFS), 1: pořadí BFS, 2: pořadí podle haše čísel uzlů (experimentální), 3: vzestupně podle stupně (experimentální), 4: sestupně podle stupně (experimentální), záporná hodnota: pořadí čísel uzlů) (výchozí: 0) |
| SA_MinAggSize | R | Minimální velikost agregátu (výchozí: 3) |
| SA_Verify | R | Zda při sestavení provést vlastní kontrolu (0: ne, kladná hodnota: ano) (výchozí: 0) (zejména pro ladění) |
| SA_DumpVTK | R | Zda vypsat agregaci na nejvyšší úrovni ve formátu VTK (0: bez výstupu, kladná hodnota: výstup) (výchozí: 0) (zejména pro ladění) |
Příklad¶
Použijte CG s předpodmíněním SSOR a nastavte maximální počet iterací na 10000 a toleranci ukončení na 1.0e-8
Použijte GMRES s předpodmíněním SSOR a nastavte velikost Krylovova podprostoru na 40 a cílový počet barev pro vícebarevné uspořádání na 100
Použijte CG s předpodmíněním ILU(0) a nastavte měřítkový faktor použitý na diagonální prvky při výpočtu matice předpodmínění na 1.1
Použijte AMG pomocí ML jako předpodmínění pro CG
Použijte AMG pomocí ML jako předpodmínění pro CG a MUMPS jako řešič na hrubé síti (pro obtížné úlohy)
Použijte AMG pomocí ML jako předpodmínění pro CG a jako víceúrovňový cyklus použijte W-cyklus (pro obtížné úlohy)
Použijte AMG pomocí ML jako předpodmínění pro CG, MUMPS jako řešič na hrubé síti a nastavte maximální počet úrovní na 2 (pro velmi obtížné úlohy)
Použijte vestavěné SA-AMG knihovny HEC-MW jako předpodmínění pro CG
Použijte SA-AMG jako předpodmínění pro CG a MUMPS jako řešič na hrubé síti
Pro analýzu třecího kontaktu použijte BiCGSTAB s předpodmíněním SA-AMG a vypište hierarchii předpodmínění AMG