!SOLVER¶
Riadenie riešiča
Povinné riadiace údaje.
Parametre¶
METHOD = Metóda riešenia (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Priama metóda okrem kontaktnej analýzy (iba sériové spracovanie) (momentálne nedostupné)
DIRECTmkl : Priama metóda používajúca Intel MKL
MUMPS : Priama metóda používajúca MUMPS
Keď je vybraná priama metóda, dátové riadky sa ignorujú.
Iteračné metódy pre problémy s 3 stupňami voľnosti podporujú vláknové paralelné vykonávanie pomocou OpenMP
PRECOND = Metóda predpodmieňovania pre iteračné metódy (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : (Blokové) SSOR (s viacfarebným usporiadaním iba pre problémy s 3 stupňami voľnosti)
3 : (Blokové) diagonálne škálovanie
5 : AMG používajúce balík ML na viacúrovňové predpodmieňovanie
10 : Blokové ILU(0)
11 : Blokové ILU(1)
12 : Blokové ILU(2)
22 : AMG so zabudovaným SA-AMG (Smoothed Aggregation AMG) systému HEC-MW
10, 11 a 12 sú dostupné iba pre problémy s 3 stupňami voľnosti
22 je dostupné iba v zostaveniach s povolenou knižnicou LAPACK
Pri vláknovom paralelnom vykonávaní pomocou OpenMP sa odporúča SSOR, diagonálne škálovanie, ML alebo SA-AMG
ITERLOG = Či sa má vypisovať história konvergencie iteračného riešiča (YES/NO)(Predvolené: NO)
TIMELOG = Či sa má vypisovať výpočtový čas riešiča (YES/NO/VERBOSE)(Predvolené: NO)
LOGLEVEL = Úroveň výstupu diagnostických informácií o predpodmieňovaní (celé číslo)(predvolené: bez výstupu)
Zadáva sa nezávisle od ITERLOG a TIMELOG
Pri hodnote 1 alebo vyššej sa okrem iného vypíše hierarchická štruktúra AMG predpodmieňovania (PRECOND=5, 22)
Pri hodnote 2 alebo vyššej sa vypíšu ďalšie podrobné informácie (napríklad využitie pamäte)
USEJAD = Či sa má použiť usporiadanie pre vektorové procesory (YES/NO)(Predvolené: NO)
Platí iba pri použití iteračnej metódy pre problém s 3 stupňami voľnosti
SCALING = Či sa má matica škálovať tak, aby diagonálne prvky boli rovné 1 (YES/NO)(Predvolené: NO)
Platí iba pri použití iteračnej metódy pre problém s 3 stupňami voľnosti
DUMPTYPE = Formát výpisu matice (NONE, MM, CSR, BSR) (najmä na ladenie)
NONE : Nevypisovať (Predvolené)
MM : Formát Matrix Market
CSR : Formát Compressed Sparse Row (CSR)
BSR : Blokový formát CSR
DUMPEXIT = Ukončiť program okamžite po výpise matice (YES/NO)(Predvolené: NO)
MPCMETHOD = Metóda spracovania viacbodových väzieb (1, 3)
1: Penalizačná metóda (predvolené pri použití priamej metódy)
3: Explicitná eliminácia stupňov voľnosti (predvolené pri použití iteračnej metódy)
Predtým dostupná metóda MPC-CG bola odstránená; pri zadaní 2 sa vypíše upozornenie a použije sa príslušná predvolená metóda.
ESTCOND = Frekvencia odhadu čísla podmienenosti (experimentálne)
Odhadnúť číslo podmienenosti v každom zadanom intervale iterácií a na konci iterácií
Pri zadaní 0 sa odhad nevykonáva
RECOMPUTE_RESIDUAL = Frekvencia prepočítania vektora rezídua
Platí len vtedy, keď je pre METHOD zadané CG, BiCGSTAB, GPBiCG alebo PipeCG
Iteračné metódy aktualizujú vektor rezídua rekurentným vzťahom, takže sa hromadia chyby zaokrúhľovania
V každom zadanom intervale iterácií sa vektor rezídua prepočíta z {b}-[A]{x}
Ak je zadaná hodnota 0, použije sa predvolená hodnota príslušnej metódy (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Ak je zadaná záporná hodnota, periodické prepočítanie sa nevykonáva
Prepočítanie na potvrdenie po splnení kritéria konvergencie sa vykoná vždy bez ohľadu na toto nastavenie
Ak je perióda príliš krátka, nezvýši sa len počet maticovo-vektorových súčinov
ale môže sa zhoršiť samotná konvergencia alebo sa konvergencia môže úplne stratiť
Ak zmeníte predvolenú hodnotu, skontrolujte históriu konvergencie a konečné relatívne rezíduum
METHOD2 = Metóda riešenia 2 (BiCGSTAB, GMRES, GPBiCG) (experimentálne)
Platí iba vtedy, keď je pre METHOD zadané CG
Ak CG diverguje, automaticky prepnúť na sekundárnu metódu a pokračovať v riešení
Pre ostatné parametre a dátové riadky sa použijú rovnaké hodnoty
CONTACT_ELIM = Určuje, či sa v kontaktnej analýze vykonáva eliminácia stupňov voľnosti (0,1)
0: Eliminovať stupne voľnosti iba pri použití iteračnej metódy (Predvolené)
1: Vždy vykonať elimináciu stupňov voľnosti (aj pri použití priamej metódy)
** 2. a ďalšie riadky **
| Názov premennej | Atribút | Opis |
|---|---|---|
| NITER | I | Počet iterácií (Predvolené: 100) |
| iterPREmax | I | Počet iterácií predpodmieňovania Additive Schwarz (Predvolené: 1) (Odporúčaná hodnota: 1; pri niektorých paralelných výpočtoch môže byť účinná hodnota 2) |
| NREST | I | Počet Krylovových podpriestorov (Predvolené: 10) (Platí iba pri výbere GMRES ako metódy riešenia) |
| NCOLOR_IN | I | Cieľový počet farieb pre viacfarebné usporiadanie (Predvolené: 10) (Platí iba pri počte vlákien OpenMP 2 alebo viac) |
| RECYCLEPRE | I | Počet opakovaných použití informácií o zostavení predpodmieňovača (Predvolené: 3) (Platí iba v nelineárnej analýze) |
| Názov premennej | Atribút | Opis |
|---|---|---|
| RESID | R | Tolerancia konvergencie (Predvolené: 1.0e-8) |
| SIGMA_DIAG | R | Faktor mierky aplikovaný na diagonálne prvky pri výpočte predpodmieňovacej matice (Predvolené: 1.0) (Ak pri predpodmieňovaní ILU dôjde k deleniu nulou alebo divergencii, problém môže konvergovať pri zadaní hodnoty väčšej ako 1.0) |
| SIGMA | R | Nepoužíva sa (Predvolené: 0.0) |
Keď PRECOND=5 (voliteľné)¶
Ak je PRECOND nastavené na inú hodnotu než 5 alebo 22, štvrtý riadok sa ignoruje.
(4. riadok) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
| Názov premennej | Atribút | Opis |
|---|---|---|
| ML_CoarseSolver | I | Riešič hrubej siete pre ML (1: použiť vyhladzovač, 2: KLU (sériová priama metóda), 3: MUMPS (paralelná priama metóda)) (Predvolené: 1) (Odporúčané: 3 alebo 2 pre náročné problémy, 1 pre bežné problémy) |
| ML_Smoother | I | Vyhladzovač ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (Predvolené: 1) (Odporúčané: 1) |
| ML_MGCycle | I | Viacúrovňový cyklus ML (1: V-cycle, 2: W-cycle, 3: Full-V-cycle) (Predvolené: 1) (Odporúčané: 2 pre náročné problémy, 1 pre bežné problémy) |
| ML_MaxLevels | I | Maximálny počet úrovní ML (Predvolené: 10) (Pri mimoriadne náročných problémoch použite priamy riešič na hrubej úrovni a 2 úrovne (alebo 3, ak je nedostatok pamäte); pre bežné problémy sa odporúča 10) |
| ML_CoarseningScheme | I | Schéma zhrubovania ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (Predvolené: 1) (Odporúčané: 1 alebo 5) |
| ML_NumSweep | I | Počet prechodov vyhladzovača ML (stupeň polynómu pre Chebyshev) (Predvolené: 2) (Odporúčané: 2 pre Chebyshev, 1 pre SymBlockGaussSeidel) |
Keď PRECOND=22 (voliteľné)¶
Ak je PRECOND nastavené na inú hodnotu než 22, piaty riadok sa ignoruje. Štvrtý aj piaty riadok možno úplne vynechať a možno vynechať aj koncové položky každého riadka. Pre každú položku zadanú ako 0 sa použije predvolená hodnota.
Položky 1 až 7 na štvrtom riadku sú usporiadané rovnako ako na riadku volieb pre PRECOND=5 (ML), takže riadok volieb ML možno znova použiť bez zmeny. Položky 8 až 10 sú špecifické pre SA-AMG.
(4. riadok) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (nepoužíva sa), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (nepoužíva sa)
| Názov premennej | Atribút | Opis |
|---|---|---|
| SA_CoarseSolver | I | Riešič hrubej mriežky (0: automaticky, 1: použiť vyhladzovač, 2: priama metóda pre hustú maticu, 3: MUMPS (paralelná priama metóda)) (predvolené: 0) (V automatickom režime sa v zostaveniach s povoleným MUMPS použije MUMPS; inak sa použije priama metóda pre hustú maticu) |
| SA_Smoother | I | Vyhladzovač (0 alebo 1: Chebyshev) (predvolené: 0) (Podporovaný je iba Chebyshev. Ak sa zadá iná hodnota, vypíše sa upozornenie a použije sa Chebyshev) |
| SA_MGCycle | I | Viacúrovňový cyklus (0: predvolený (W-cyklus), 1: V-cyklus, 2: W-cyklus) (predvolené: 0) (Úplný V-cyklus nie je podporovaný) |
| SA_MaxLevels | I | Maximálny počet úrovní (predvolené: 20) |
| (nepoužíva sa) | I | Pozícia zodpovedajúca schéme zhrubňovania ML. Keďže SA-AMG vždy používa nespojenú agregáciu, nenulová hodnota vyvolá upozornenie a ignoruje sa |
| SA_ChebyDegree | I | Stupeň polynómu Chebyshevovho vyhladzovača (predvolené: 2) |
| SA_CoarseSize | I | Hraničná veľkosť hrubej mriežky (predvolené: 50000, keď sa MUMPS používa ako riešič hrubej mriežky; inak 100) |
| SA_MaxAggSize | I | Maximálna veľkosť agregátu (predvolené: 96) |
| SA_GalerkinLowMem | I | Spôsob výpočtu matice hrubej mriežky (0: normálny (uprednostňuje rýchlosť), kladná hodnota: úspora pamäte) (predvolené: 0) (Zadajte kladnú hodnotu, ak počas nastavenia nie je dostatok pamäte) |
| (nepoužíva sa) | I | Vyhradené pre budúce rozšírenia |
Piaty riadok je určený iba pre SA-AMG a ML ho nenačítava.
(5. riadok) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Názov premennej | Atribút | Opis |
|---|---|---|
| SA_Theta | R | Prahová hodnota na určenie silných spojení (predvolené: 0.0) (Pri 0.0 sa nenulová štruktúra matice použije priamo ako graf) |
| SA_ChebyAlpha | R | Pomer určujúci dolnú hranicu intervalu vlastných čísel, na ktorý je zameraný Chebyshevov vyhladzovač (predvolené: 20.0) |
| SA_Safety | R | Bezpečnostný faktor aplikovaný na odhadované maximálne vlastné číslo (predvolené: 1.1) |
| SA_TaperK | R | Koeficient K postupného zhrubňovania (predvolené: 100) (Od úrovne 2 sa zhrubňovanie vykonáva pozvoľnejšie tak, aby zostalo aspoň približne K agregátov. Záporná hodnota postupné zhrubňovanie vypne) |
| SA_AggOrder | R | Poradie prechádzania agregácie (0: predvolené (poradie BFS), 1: poradie BFS, 2: hašovacie poradie čísel uzlov (experimentálne), 3: vzostupné poradie stupňa (experimentálne), 4: zostupné poradie stupňa (experimentálne), záporná hodnota: poradie čísel uzlov) (predvolené: 0) |
| SA_MinAggSize | R | Minimálna veľkosť agregátu (predvolené: 3) |
| SA_Verify | R | Či sa má počas nastavenia vykonať samokontrola (0: nie, kladná hodnota: áno) (predvolené: 0) (najmä na ladenie) |
| SA_DumpVTK | R | Či sa má agregácia najvyššej úrovne vypísať vo formáte VTK (0: bez výstupu, kladná hodnota: výstup) (predvolené: 0) (najmä na ladenie) |
Príklad¶
Použiť CG s predpodmieňovaním SSOR a nastaviť maximálny počet iterácií na 10000 a toleranciu konvergencie na 1.0e-8
Použiť GMRES s predpodmieňovaním SSOR a nastaviť počet Krylovových podpriestorov na 40 a cieľový počet farieb pre viacfarebné usporiadanie na 100
Použiť CG s predpodmieňovaním ILU(0) a nastaviť faktor mierky aplikovaný na diagonálne prvky pri výpočte predpodmieňovacej matice na 1.1
Použiť AMG pomocou ML ako predpodmieňovač pre CG
Použiť AMG pomocou ML ako predpodmieňovač pre CG a MUMPS ako riešič hrubej siete (pre náročné problémy)
Použiť AMG pomocou ML ako predpodmieňovač pre CG a W-cycle ako viacúrovňový cyklus (pre náročné problémy)
Použiť AMG pomocou ML ako predpodmieňovač pre CG, MUMPS ako riešič hrubej siete a nastaviť maximálny počet úrovní na 2 (pre veľmi náročné problémy)
Použite SA-AMG zabudované v HEC-MW ako predpodmieňovanie pre CG
Použite SA-AMG ako predpodmieňovanie pre CG a MUMPS ako riešič hrubej mriežky
Pri analýze trecieho kontaktu použite BiCGSTAB so SA-AMG predpodmieňovaním a vypíšte hierarchickú štruktúru AMG predpodmieňovania