!SOLVER¶
Krmiljenje reševalnika
Obvezni krmilni podatki.
Parametri¶
METHOD = Metoda reševanja (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Direktna metoda, razen pri kontaktni analizi (samo zaporedno izvajanje) (trenutno ni na voljo)
DIRECTmkl : Direktna metoda z Intel MKL
MUMPS : Direktna metoda z MUMPS
Če je izbrana direktna metoda, se podatkovne vrstice prezrejo.
Iterativne metode za probleme s 3 prostostnimi stopnjami podpirajo večnitno izvajanje z OpenMP
PRECOND = Metoda predpogojevanja iterativnega reševalnika (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : (blokovni) SSOR (z večbarvnim urejanjem samo za probleme s 3 prostostnimi stopnjami)
3 : (blokovno) diagonalno skaliranje
5 : AMG z večmrežnim paketom za predpogojevanje ML
10 : blokovni ILU(0)
11 : blokovni ILU(1)
12 : blokovni ILU(2)
22 : AMG z vgrajenim SA-AMG (Smoothed Aggregation AMG) sistema HEC-MW
10, 11 in 12 so na voljo samo za probleme s 3 prostostnimi stopnjami
22 je na voljo samo v gradnjah z omogočenim LAPACK
Za nitno vzporedno izvajanje z OpenMP se priporočajo SSOR, diagonalno skaliranje, ML ali SA-AMG
ITERLOG = Ali naj se izpiše zgodovina konvergence iterativnega reševalnika (YES/NO)(privzeto: NO)
TIMELOG = Ali naj se izpiše računski čas reševalnika (YES/NO/VERBOSE)(privzeto: NO)
LOGLEVEL = Raven izpisa diagnostičnih informacij o predpogojevanju (celo število)(privzeto: brez izpisa)
Določi se neodvisno od ITERLOG in TIMELOG
Pri vrednosti 1 ali več se med drugim izpiše hierarhična zgradba AMG-predpogojevanja (PRECOND=5, 22)
Pri vrednosti 2 ali več se izpišejo dodatne podrobne informacije (na primer poraba pomnilnika)
USEJAD = Ali naj se uporabi urejanje za vektorske procesorje (YES/NO)(privzeto: NO)
Velja samo, kadar se za problem s 3 prostostnimi stopnjami uporablja iterativna metoda
SCALING = Ali naj se matrika skalira tako, da so diagonalni elementi enaki 1 (YES/NO)(privzeto: NO)
Velja samo, kadar se za problem s 3 prostostnimi stopnjami uporablja iterativna metoda
DUMPTYPE = Oblika izpisa matrike (NONE, MM, CSR, BSR) (predvsem za razhroščevanje)
NONE : Brez izpisa (privzeto)
MM : Oblika Matrix Market
CSR : Oblika stisnjenih redkih vrstic (CSR)
BSR : Oblika blokiranega CSR
DUMPEXIT = Končaj program takoj po izpisu matrike (YES/NO)(privzeto: NO)
MPCMETHOD = Metoda obdelave večtočkovnih omejitev (1, 3)
1: Kazenska metoda (privzeto pri direktni metodi)
3: Eksplicitna eliminacija prostostnih stopenj (privzeto pri iterativni metodi)
Prej razpoložljiva metoda MPC-CG je bila odstranjena; ob navedbi 2 se izpiše opozorilo in uporabi ustrezna privzeta metoda.
ESTCOND = Pogostost ocenjevanja pogojnega števila (poskusno)
Pogojno število se oceni ob vsakem določenem intervalu iteracij in ob koncu iteracij
Pri vrednosti 0 se ocena ne izvede
RECOMPUTE_RESIDUAL = Pogostost ponovnega izračuna vektorja reziduala
Velja samo, kadar je za METHOD določen CG, BiCGSTAB, GPBiCG ali PipeCG
Iterativne metode posodabljajo vektor reziduala z rekurzivno zvezo, zato se kopičijo napake zaokroževanja
V vsakem določenem intervalu iteracij se vektor reziduala ponovno izračuna iz {b}-[A]{x}
Če je določena vrednost 0, se uporabi privzeta vrednost posamezne metode (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Če je določena negativna vrednost, se periodični ponovni izračun ne izvaja
Ponovni izračun za potrditev ob izpolnjenem kriteriju konvergence se vedno izvede ne glede na to nastavitev
Če je perioda prekratka, se ne poveča le število produktov matrike in vektorja
temveč se lahko poslabša sama konvergenca ali pa se konvergenca povsem izgubi
Če spremenite privzeto vrednost, preverite zgodovino konvergence in končni relativni rezidual
METHOD2 = Metoda reševanja 2 (BiCGSTAB, GMRES, GPBiCG) (poskusno)
Velja samo, kadar je za METHOD določen CG
Če CG divergira, se samodejno preklopi na sekundarno metodo in reševanje se nadaljuje
Za druge parametre in podatkovne vrstice se uporabijo iste vrednosti
CONTACT_ELIM = Določa, ali se pri kontaktni analizi izvede eliminacija prostostnih stopenj (0,1)
0: Eliminacijo prostostnih stopenj izvedi samo pri iterativni metodi (privzeto)
1: Eliminacijo prostostnih stopenj vedno izvedi (tudi pri direktni metodi)
** 2. in naslednje vrstice **
| Spremenljivka | Atribut | Opis |
|---|---|---|
| NITER | I | Število iteracij (privzeto: 100) |
| iterPREmax | I | Število iteracij predpogojevanja Additive Schwarz (privzeto: 1) (Priporočena vrednost: 1; pri nekaterih vzporednih izračunih je lahko učinkovita vrednost 2) |
| NREST | I | Število Krylovovih podprostorov (privzeto: 10) (Velja samo, kadar je kot metoda reševanja izbran GMRES) |
| NCOLOR_IN | I | Ciljno število barv pri večbarvnem urejanju (privzeto: 10) (Velja samo, kadar je število niti OpenMP 2 ali več) |
| RECYCLEPRE | I | Število ponovnih uporab podatkov nastavitve predpogojevalnika (privzeto: 3) (Velja samo pri nelinearni analizi) |
| Spremenljivka | Atribut | Opis |
|---|---|---|
| RESID | R | Napaka prekinitve (privzeto: 1.0e-8) |
| SIGMA_DIAG | R | Faktor, s katerim se pri izračunu matrike predpogojevalnika pomnožijo diagonalni elementi (privzeto: 1.0) (Če pri predpogojevanju ILU pride do deljenja z nič ali divergence, se lahko problem konvergira z vrednostjo, večjo od 1.0) |
| SIGMA | R | Neuporabljeno (privzeto: 0.0) |
Ko je PRECOND=5 (neobvezno)¶
Če je PRECOND nastavljen na vrednost, ki ni 5 ali 22, se četrta vrstica prezre.
(4. vrstica) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
| Spremenljivka | Atribut | Opis |
|---|---|---|
| ML_CoarseSolver | I | Reševalnik grobe mreže za ML (1: uporabi glajenje, 2: KLU (zaporedna direktna metoda), 3: MUMPS (vzporedna direktna metoda)) (privzeto: 1) (Priporočeno: 3 ali 2 za zahtevne probleme, 1 za običajne probleme) |
| ML_Smoother | I | Glajenje ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (privzeto: 1) (Priporočeno: 1) |
| ML_MGCycle | I | Večmrežni cikel ML (1: V-cycle, 2: W-cycle, 3: Full-V-cycle) (privzeto: 1) (Priporočeno: 2 za zahtevne probleme, 1 za običajne probleme) |
| ML_MaxLevels | I | Največje število ravni ML (privzeto: 10) (Pri posebej zahtevnih problemih uporabite direktni reševalnik grobe mreže in 2 ravni (ali 3, če pomnilnika ni dovolj); za običajne probleme se priporoča 10) |
| ML_CoarseningScheme | I | Shema grobljenja ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (privzeto: 1) (Priporočeno: 1 ali 5) |
| ML_NumSweep | I | Število prehodov glajenja ML (pri Chebyshev je to stopnja polinoma) (privzeto: 2) (Priporočeno: 2 za Chebyshev, 1 za SymBlockGaussSeidel) |
Ko je PRECOND=22 (izbirno)¶
Če je PRECOND nastavljen na vrednost, ki ni 22, se peta vrstica prezre. Četrto in peto vrstico je mogoče v celoti izpustiti, izpustiti pa je mogoče tudi končne postavke posamezne vrstice. Za vsako postavko, podano kot 0, se uporabi privzeta vrednost.
Postavke od 1 do 7 v četrti vrstici so razporejene enako kot v vrstici možnosti za PRECOND=5 (ML), zato je mogoče vrstico možnosti ML ponovno uporabiti brez sprememb. Postavke od 8 do 10 so specifične za SA-AMG.
(4. vrstica) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (ni uporabljeno), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (ni uporabljeno)
| Spremenljivka | Atribut | Opis |
|---|---|---|
| SA_CoarseSolver | I | Reševalnik grobe mreže (0: samodejno, 1: uporabi gladilnik, 2: direktna metoda z gosto matriko, 3: MUMPS (vzporedna direktna metoda)) (privzeto: 0) (V samodejnem načinu se v gradnjah z omogočenim MUMPS uporabi MUMPS; sicer se uporabi direktna metoda z gosto matriko) |
| SA_Smoother | I | Gladilnik (0 ali 1: Chebyshev) (privzeto: 0) (Podprt je samo Chebyshev. Če je podana druga vrednost, se izpiše opozorilo in uporabi Chebyshev) |
| SA_MGCycle | I | Večmrežni cikel (0: privzeto (W-cikel), 1: V-cikel, 2: W-cikel) (privzeto: 0) (Polni V-cikel ni podprt) |
| SA_MaxLevels | I | Največje število ravni (privzeto: 20) |
| (ni uporabljeno) | I | Položaj, ki ustreza shemi grobljenja ML. Ker SA-AMG vedno uporablja nevezano agregacijo, neničelna vrednost sproži opozorilo in se prezre |
| SA_ChebyDegree | I | Stopnja polinoma Chebyshevega gladilnika (privzeto: 2) |
| SA_CoarseSize | I | Mejna velikost grobe mreže (privzeto: 50000, kadar se MUMPS uporablja kot reševalnik grobe mreže; sicer 100) |
| SA_MaxAggSize | I | Največja velikost agregata (privzeto: 96) |
| SA_GalerkinLowMem | I | Način izračuna matrike grobe mreže (0: običajen (prednost ima hitrost), pozitivna vrednost: varčevanje s pomnilnikom) (privzeto: 0) (Podajte pozitivno vrednost, če med nastavitvijo ni dovolj pomnilnika) |
| (ni uporabljeno) | I | Rezervirano za prihodnje razširitve |
Peta vrstica je namenjena samo SA-AMG in je ML ne bere.
(5. vrstica) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Spremenljivka | Atribut | Opis |
|---|---|---|
| SA_Theta | R | Prag za določanje močnih povezav (privzeto: 0.0) (Pri 0.0 se neničelna struktura matrike neposredno uporabi kot graf) |
| SA_ChebyAlpha | R | Razmerje, ki določa spodnjo mejo intervala lastnih vrednosti, na katerega je usmerjen Chebyshev gladilnik (privzeto: 20.0) |
| SA_Safety | R | Varnostni faktor, uporabljen za ocenjeno največjo lastno vrednost (privzeto: 1.1) |
| SA_TaperK | R | Koeficient K postopnega grobljenja (privzeto: 100) (Od ravni 2 naprej je grobljenje bolj postopno, tako da ostane vsaj približno K agregatov. Negativna vrednost postopno grobljenje onemogoči) |
| SA_AggOrder | R | Vrstni red prehoda agregacije (0: privzeto (vrstni red BFS), 1: vrstni red BFS, 2: razpršeni vrstni red številk vozlišč (poskusno), 3: naraščajoči vrstni red stopnje (poskusno), 4: padajoči vrstni red stopnje (poskusno), negativna vrednost: vrstni red številk vozlišč) (privzeto: 0) |
| SA_MinAggSize | R | Najmanjša velikost agregata (privzeto: 3) |
| SA_Verify | R | Ali naj se med nastavitvijo izvede samopreverjanje (0: ne, pozitivna vrednost: da) (privzeto: 0) (predvsem za razhroščevanje) |
| SA_DumpVTK | R | Ali naj se agregacija najvišje ravni izpiše v obliki VTK (0: brez izpisa, pozitivna vrednost: izpis) (privzeto: 0) (predvsem za razhroščevanje) |
Primeri¶
Uporabi CG s predpogojevanjem SSOR ter nastavi največje število iteracij na 10000 in napako prekinitve na 1.0e-8
Uporabi GMRES s predpogojevanjem SSOR ter nastavi število Krylovovih podprostorov na 40 in ciljno število barv za večbarvno urejanje na 100
Uporabi CG s predpogojevanjem ILU(0) in nastavi faktor diagonalnih elementov pri izračunu matrike predpogojevalnika na 1.1
Za predpogojevalnik CG uporabi AMG iz ML
Za predpogojevalnik CG uporabi AMG iz ML in za reševalnik grobe mreže uporabi MUMPS (za zahtevne probleme)
Za predpogojevalnik CG uporabi AMG iz ML in za večmrežni cikel uporabi W-cycle (za zahtevne probleme)
Za predpogojevalnik CG uporabi AMG iz ML, za reševalnik grobe mreže uporabi MUMPS in nastavi največje število ravni na 2 (za zelo zahtevne probleme)
Uporabite SA-AMG, vgrajen v HEC-MW, kot predpogojevalnik za CG
Uporabite SA-AMG kot predpogojevalnik za CG in MUMPS kot reševalnik grobe mreže
Pri analizi trenjskega stika uporabite BiCGSTAB s predpogojevanjem SA-AMG in izpišite hierarhično zgradbo predpogojevalnika AMG