!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)
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)
10, 11 in 12 so na voljo samo za probleme s 3 prostostnimi stopnjami
Pri večnitnem izvajanju OpenMP se priporoča SSOR, diagonalno skaliranje ali ML
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)
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, 2, 3)
1: Kazenska metoda (privzeto pri direktni metodi)
2: Metoda MPC-CG (odsvetovana)
3: Eksplicitna eliminacija prostostnih stopenj (privzeto pri iterativni metodi)
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
METHOD2 = Sekundarna metoda reševanja (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 za PRECOND določena katera koli druga vrednost, se 4. 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) |
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)