!SOLVER¶
Styrning av lösaren
Obligatoriska styrdata.
Parametrar¶
METHOD = Lösningsmetod (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Direktmetod utom för kontaktanalys (endast seriell bearbetning) (för närvarande inte tillgänglig)
DIRECTmkl : Direktmetod med Intel MKL
MUMPS : Direktmetod med MUMPS
När en direktmetod väljs ignoreras dataraderna.
Iterativa metoder för problem med 3 frihetsgrader stöder trådparallell exekvering med OpenMP
PRECOND = Prekonditioneringsmetod för iterativa lösare (1, 2, 3, 5, 10, 11, 12)
1, 2 : (Block) SSOR (med flerfärgsordning endast för problem med 3 frihetsgrader)
3 : (Block) Diagonal Scaling
5 : AMG med multigrid-prekonditioneringspaketet ML
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block ILU(2)
10, 11 och 12 är endast tillgängliga för problem med 3 frihetsgrader
För trådparallell exekvering med OpenMP rekommenderas SSOR, Diagonal Scaling eller ML
ITERLOG = Om konvergenshistorik för den iterativa lösaren ska matas ut (YES/NO)(standardvärde: NO)
TIMELOG = Om lösarens beräkningstid ska matas ut (YES/NO/VERBOSE)(standardvärde: NO)
USEJAD = Om ordning för vektorprocessorer ska användas (YES/NO)(standardvärde: NO)
Giltigt endast när en iterativ metod används för ett problem med 3 frihetsgrader
SCALING = Om matrisen ska skalas så att diagonalposterna är 1 (YES/NO)(standardvärde: NO)
Giltigt endast när en iterativ metod används för ett problem med 3 frihetsgrader
DUMPTYPE = Format för matrisdump (NONE, MM, CSR, BSR) (främst för felsökning)
NONE : Ingen dump (standardvärde)
MM : Matrix Market-format
CSR : Compressed Sparse Row-format (CSR)
BSR : Blockerat CSR-format
DUMPEXIT = Avsluta programmet omedelbart efter matrisdumpning (YES/NO)(standardvärde: NO)
MPCMETHOD = Metod för hantering av multipunktbegränsningar (1, 2, 3)
1: Straffmetod (standardvärde när en direktmetod används)
2: MPC-CG-metod (föråldrad)
3: Explicit eliminering av frihetsgrader (standardvärde när en iterativ metod används)
ESTCOND = Frekvens för uppskattning av konditionstal (experimentell)
Uppskatta konditionstalet vid varje angivet iterationsintervall och i slutet av iterationerna
Ingen uppskattning utförs när 0 anges
METHOD2 = Sekundär lösningsmetod (BiCGSTAB, GMRES, GPBiCG) (experimentell)
Giltigt endast när CG anges för METHOD
Om CG divergerar växlas automatiskt till den sekundära metoden och lösningen fortsätter
Samma värden används för övriga parametrar och datarader
CONTACT_ELIM = Anger om eliminering av frihetsgrader utförs i kontaktanalys (0,1)
0: Utför eliminering av frihetsgrader endast när en iterativ metod används (standardvärde)
1: Utför alltid eliminering av frihetsgrader (även när en direktmetod används)
** Rad 2 och senare **
| Variabel | Attribut | Beskrivning |
|---|---|---|
| NITER | I | Antal iterationer (standardvärde: 100) |
| iterPREmax | I | Antal iterationer för Additive Schwarz-prekonditionering (standardvärde: 1) (Rekommenderat värde: 1; 2 kan vara effektivt i vissa parallellberäkningar) |
| NREST | I | Antal Krylov-delrum (standardvärde: 10) (Giltigt endast när GMRES väljs som lösningsmetod) |
| NCOLOR_IN | I | Målvärde för antal färger vid flerfärgsordning (standardvärde: 10) (Giltigt endast när antalet OpenMP-trådar är 2 eller fler) |
| RECYCLEPRE | I | Antal gånger som information från uppsättningen av prekonditioneraren återanvänds (standardvärde: 3) (Giltigt endast i icke-linjär analys) |
| Variabel | Attribut | Beskrivning |
|---|---|---|
| RESID | R | Trunkeringsfel (standardvärde: 1.0e-8) |
| SIGMA_DIAG | R | Skalfaktor som tillämpas på diagonalposterna vid beräkning av prekonditioneringsmatrisen (standardvärde: 1.0) (Om division med noll eller divergens uppstår med ILU-prekonditionering kan problemet konvergera när ett värde större än 1.0 anges) |
| SIGMA | R | Används inte (standardvärde: 0.0) |
När PRECOND=5 (valfritt)¶
Om något annat värde anges för PRECOND ignoreras rad 4.
| Variabel | Attribut | Beskrivning |
|---|---|---|
| ML_CoarseSolver | I | Grovnätslösare för ML (1: använd utjämnare, 2: KLU (seriell direktmetod), 3: MUMPS (parallell direktmetod)) (standardvärde: 1) (Rekommenderas: 3 eller 2 för svåra problem, 1 för vanliga problem) |
| ML_Smoother | I | ML-utjämnare (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (standardvärde: 1) (Rekommenderas: 1) |
| ML_MGCycle | I | ML-multigridcykel (1: V-cykel, 2: W-cykel, 3: Full-V-cykel) (standardvärde: 1) (Rekommenderas: 2 för svåra problem, 1 för vanliga problem) |
| ML_MaxLevels | I | Maximalt antal ML-nivåer (standardvärde: 10) (För särskilt svåra problem, använd en direkt grovnätslösare och 2 nivåer (eller 3 om minnet inte räcker); för vanliga problem rekommenderas 10) |
| ML_CoarseningScheme | I | ML-metod för förgrovning (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (standardvärde: 1) (Rekommenderas: 1 eller 5) |
| ML_NumSweep | I | Antal ML-utjämnarsvep (polynomgrad för Chebyshev) (standardvärde: 2) (Rekommenderas: 2 för Chebyshev, 1 för SymBlockGaussSeidel) |
Exempel¶
Använd CG med SSOR-prekonditionering och ställ in maximalt antal iterationer till 10000 och trunkeringsfelet till 1.0e-8
Använd GMRES med SSOR-prekonditionering och ställ in antalet Krylov-delrum till 40 och målantalet färger för flerfärgsordning till 100
Använd CG med ILU(0)-prekonditionering och ställ in skalfaktorn som tillämpas på diagonalposterna vid beräkning av prekonditioneringsmatrisen till 1.1
Använd AMG via ML som prekonditionerare för CG
Använd AMG via ML som prekonditionerare för CG och MUMPS som grovnätslösare (för svåra problem)
Använd AMG via ML som prekonditionerare för CG och W-cykel som multigridcykel (för svåra problem)
Använd AMG via ML som prekonditionerare för CG, använd MUMPS som grovnätslösare och ställ in maximalt antal nivåer till 2 (för mycket svåra problem)