!SOLVER¶
Oplosserbeheer
Vereiste beheerdata.
Parameters¶
METHOD = Oplossingsmetode (CG、BiCGSTAB、GMRES、GPBiCG、CR、DIRECT、DIRECTmkl、MUMPS)
DIRECT : Direkte metode behalwe vir kontakanalise (slegs seriële verwerking) (tans nie beskikbaar nie)
DIRECTmkl : Direkte metode met Intel MKL
MUMPS : Direkte metode met MUMPS
Wanneer ’n direkte metode gekies word, word die datareëls geïgnoreer.
Iteratiewe metodes vir 3-vryheidsgraadprobleme ondersteun draadparallelisme met OpenMP
PRECOND = Voorkondisioneringsmetode vir iteratiewe metodes (1、2、3、5、10、11、12、22)
1, 2 : (Blok-) SSOR (met multikleurordening slegs vir probleme met 3 vryheidsgrade)
3 : (Blok-) diagonale skalering
5 : AMG met die ML-multirooster-voorkondisioneringspakket
10 : Blok-ILU(0)
11 : Blok-ILU(1)
12 : Blok-ILU(2)
22 : AMG met HEC-MW se ingeboude SA-AMG (AMG met gladgemaakte aggregasie)
10、11、12 is slegs vir probleme met 3 vryheidsgrade beskikbaar
22 is slegs beskikbaar in bouweergawes waarin LAPACK geaktiveer is
Vir OpenMP-draadparallelisme word SSOR, diagonale skalering, ML of SA-AMG aanbeveel
ITERLOG = Of die konvergensiegeskiedenis van die iteratiewe oplosser uitgevoer word (YES/NO)(verstek: NO)
TIMELOG = Of die oplosser se berekeningstyd uitgevoer word (YES/NO/VERBOSE)(verstek: NO)
LOGLEVEL = Diagnostiese uitsetvlak vir die voorkondisioneerder (heelgetal)(verstek: geen uitset)
Word onafhanklik van ITERLOG en TIMELOG gespesifiseer
By 1 of hoër word die hiërargie-opbou en ander inligting vir AMG-voorkondisioneerders (PRECOND=5、22) uitgevoer
By 2 of hoër word meer besonderhede uitgevoer (soos geheuegebruik)
USEJAD = Of ordening vir vektorverwerkers gebruik word (YES/NO)(verstek: NO)
Slegs geldig wanneer ’n iteratiewe metode vir ’n 3-vryheidsgraadprobleem gebruik word
SCALING = Of die matriks geskaal word sodat diagonale inskrywings 1 is (YES/NO)(verstek: NO)
Slegs geldig wanneer ’n iteratiewe metode vir ’n 3-vryheidsgraadprobleem gebruik word
DUMPTYPE = Matriksdumpformaat (NONE、MM、CSR、BSR) (hoofsaaklik vir ontfouting)
NONE : Moenie dump nie (verstek)
MM : Matrix Market-formaat
CSR : Compressed Sparse Row(CSR)-formaat
BSR : Blocked CSR-formaat
DUMPEXIT = Beëindig die program onmiddellik ná die matriksdump (YES/NO)(verstek: NO)
MPCMETHOD = Metode vir die hantering van meerpuntbeperkings (1、3)
1: Strafmetode (verstek wanneer ’n direkte metode gebruik word)
3: Eksplisiete vryheidsgraad-eliminasie (verstek wanneer ’n iteratiewe metode gebruik word)
Die voorheen beskikbare MPC-CG-metode is verwyder; wanneer 2 gespesifiseer word, word ’n waarskuwing uitgereik en die toepaslike verstekmetode gebruik.
ESTCOND = Frekwensie van kondisiegetalberaming (eksperimenteel)
Beraam die kondisiegetal by elke gespesifiseerde iterasie-interval en aan die einde van die iterasies
Indien 0 gespesifiseer word, word geen beraming gedoen nie
RECOMPUTE_RESIDUAL = Frekwensie waarmee die residuvektor herbereken word
Slegs van toepassing wanneer METHOD op CG, BiCGSTAB, GPBiCG of PipeCG gestel is
Iteratiewe metodes werk die residuvektor met ’n rekurrensievergelyking by, sodat afrondingsfoute ophoop
By elke gespesifiseerde iterasie-interval word die residuvektor uit {b}-[A]{x} herbereken
As die waarde 0 is, word die verstekwaarde vir elke metode gebruik (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
As ’n negatiewe waarde gespesifiseer word, word geen periodieke herberekening uitgevoer nie
Herberekening vir bevestiging wanneer die konvergensiekriterium bereik word, word altyd uitgevoer ongeag hierdie instelling
As die periode te kort is, neem nie net die aantal matriks-vektorprodukte toe nie
maar konvergensie self kan ook verswak of heeltemal uitbly
As die verstekwaarde verander word, kontroleer die konvergensiegeskiedenis en die finale relatiewe residu
METHOD2 = Tweede oplossingsmetode (BiCGSTAB、GMRES、GPBiCG) (eksperimenteel)
Slegs geldig wanneer CG vir METHOD gespesifiseer is
As die CG-metode divergeer, word outomaties oorgeskakel en die oplossing voortgesit
Dieselfde waardes word vir die ander parameters en datareëls gebruik
CONTACT_ELIM = Spesifiseer of vryheidsgraad-eliminasie in kontakanalise uitgevoer word (0,1)
0: Voer vryheidsgraad-eliminasie slegs uit wanneer ’n iteratiewe metode gebruik word (verstek)
1: Voer altyd vryheidsgraad-eliminasie uit (ook wanneer ’n direkte metode gebruik word)
** 2de reël en daarna **
| Veranderlike | Eienskap | Beskrywing |
|---|---|---|
| NITER | I | Aantal iterasies (verstek: 100) |
| iterPREmax | I | Aantal Additive Schwarz-voorkondisioneringsiterasies (verstek: 1) (aanbevole waarde is 1; 2 kan in sommige parallelle berekeninge doeltreffend wees) |
| NREST | I | Aantal Krylov-subruimtes (verstek: 10) (slegs geldig wanneer GMRES as oplossingsmetode gekies is) |
| NCOLOR_IN | I | Teikengetal kleure vir multikleurordening (verstek: 10) (slegs geldig wanneer die aantal OpenMP-drade 2 of meer is) |
| RECYCLEPRE | I | Aantal kere wat voorkondisioneerder-opstellingsinligting hergebruik word (verstek: 3) (slegs geldig in nie-lineêre analise) |
| Veranderlike | Eienskap | Beskrywing |
|---|---|---|
| RESID | R | Afbreekfout (verstek: 1.0e-8) |
| SIGMA_DIAG | R | Faktor wat op diagonale inskrywings toegepas word wanneer die voorkondisioneringsmatriks bereken word (verstek: 1.0) (as deling deur nul of divergensie met ILU-voorkondisionering voorkom, kan ’n waarde groter as 1.0 die probleem soms oplos) |
| SIGMA | R | Nie gebruik nie (verstek: 0.0) |
Wanneer PRECOND=5 (opsioneel)¶
As PRECOND op ’n ander waarde as 5 of 22 gestel is, word die vierde reël geïgnoreer.
| Veranderlike | Eienskap | Beskrywing |
|---|---|---|
| ML_CoarseSolver | I | Grofroosteroplosser vir ML (1: gebruik gladmaker, 2: KLU (seriële direkte metode), 3: MUMPS (parallelle direkte metode)) (verstek: 1) (aanbeveel: 3 of 2 vir moeilike probleme, 1 vir gewone probleme) |
| ML_Smoother | I | ML-gladmaker (1: Chebyshev、2: SymBlockGaussSeidel、3: Jacobi) (verstek: 1) (aanbeveel: 1) |
| ML_MGCycle | I | ML-multiroostersiklus (1: V-cycle、2: W-cycle、3: Full-V-cycle) (verstek: 1) (aanbeveel: 2 vir moeilike probleme, 1 vir gewone probleme) |
| ML_MaxLevels | I | Maksimum aantal ML-vlakke (verstek: 10) (vir besonder moeilike probleme, gebruik ’n direkte grofroosteroplosser en 2 vlakke (3 indien geheue onvoldoende is); vir gewone probleme, 10) |
| ML_CoarseningScheme | I | ML-vergrofskema (1: UncoupledMIS、2: METIS、4: Zoltan、5: DD) (verstek: 1) (aanbeveel: 1 of 5) |
| ML_NumSweep | I | Aantal ML-gladmaker-swepe (polinoomgraad vir Chebyshev) (verstek: 2) (aanbeveel: 2 vir Chebyshev, 1 vir SymBlockGaussSeidel) |
Wanneer PRECOND=22 (opsioneel)¶
As PRECOND op ’n ander waarde as 22 gestel is, word die vyfde reël geïgnoreer. Die vierde en vyfde reël kan elk in geheel weggelaat word, en die laaste items op enige reël kan ook weggelaat word. Die verstekwaarde word gebruik vir enige item wat as 0 gespesifiseer is.
Items 1 tot 7 op die vierde reël is in dieselfde volgorde as die opsiereël vir PRECOND=5 (ML), dus kan die ML-opsiereël onveranderd hergebruik word. Items 8 tot 10 is eie aan SA-AMG.
(4de reël) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (ongebruik), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (ongebruik)
| Veranderlike | Attribuut | Beskrywing |
|---|---|---|
| SA_CoarseSolver | I | Grofroosteroplosser (0: outomaties, 1: gebruik die gladmaker, 2: digtematriks-direkte metode, 3: MUMPS (parallelle direkte metode)) (verstek: 0) (In outomatiese modus word MUMPS gebruik in bouweergawes waarin MUMPS geaktiveer is; anders word die digtematriks-direkte metode gebruik) |
| SA_Smoother | I | Gladmaker (0, 1: Chebyshev) (verstek: 0) (Slegs Chebyshev word ondersteun. As ’n ander waarde gespesifiseer word, word ’n waarskuwing uitgereik en Chebyshev gebruik) |
| SA_MGCycle | I | Multiroostersiklus (0: verstek (W-cycle), 1: V-cycle, 2: W-cycle) (verstek: 0) (Full-V-cycle word nie ondersteun nie) |
| SA_MaxLevels | I | Maksimum aantal vlakke (verstek: 20) |
| (ongebruik) | I | Posisie wat met die ML-vergrofingskema ooreenstem. Omdat SA-AMG altyd ontkoppelde aggregasie gebruik, lewer ’n waarde anders as 0 ’n waarskuwing en word dit geïgnoreer |
| SA_ChebyDegree | I | Polinoomgraad van die Chebyshev-gladmaker (verstek: 2) |
| SA_CoarseSize | I | Grofrooster-afsnitgrootte (verstek: 50000 wanneer MUMPS as grofroosteroplosser gebruik word; anders 100) |
| SA_MaxAggSize | I | Maksimum aggregaatgrootte (verstek: 96) |
| SA_GalerkinLowMem | I | Berekeningsmetode vir die grofroostermatriks (0: normaal (prioritiseer spoed), positiewe waarde: geheuebesparend) (verstek: 0) (Spesifiseer ’n positiewe waarde as daar tydens opstelling onvoldoende geheue is) |
| (ongebruik) | I | Gereserveer vir toekomstige uitbreidings |
Die vyfde reël is eie aan SA-AMG en word nie deur ML gelees nie.
(5de reël) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Veranderlike | Attribuut | Beskrywing |
|---|---|---|
| SA_Theta | R | Drempel vir die bepaling van sterk verbindings (verstek: 0.0) (By 0.0 word die niesero-struktuur van die matriks direk as die grafiek gebruik) |
| SA_ChebyAlpha | R | Verhouding wat die ondergrens van die eiewaarde-interval bepaal waarop die Chebyshev-gladmaker gerig is (verstek: 20.0) |
| SA_Safety | R | Veiligheidsfaktor wat op die beraamde maksimum eiewaarde toegepas word (verstek: 1.1) |
| SA_TaperK | R | Koëffisiënt K vir geleidelike vergrowing (verstek: 100) (Vanaf vlak 2 word vergrowing geleideliker gemaak sodat minstens ongeveer K aggregate oorbly. ’n Negatiewe waarde deaktiveer die geleidelike vergrowing) |
| SA_AggOrder | R | Deurloopvolgorde van aggregasie (0: verstek (BFS-volgorde), 1: BFS-volgorde, 2: hutsvolgorde van nodusnommers (eksperimenteel), 3: stygende graadvolgorde (eksperimenteel), 4: dalende graadvolgorde (eksperimenteel), negatiewe waarde: nodusnommervolgorde) (verstek: 0) |
| SA_MinAggSize | R | Minimum aggregaatgrootte (verstek: 3) |
| SA_Verify | R | Of ’n selfkontrole tydens opstelling uitgevoer moet word (0: nee, positiewe waarde: ja) (verstek: 0) (hoofsaaklik vir ontfouting) |
| SA_DumpVTK | R | Of die aggregasie op die hoogste vlak in VTK-formaat uitgevoer moet word (0: geen uitset, positiewe waarde: uitset) (verstek: 0) (hoofsaaklik vir ontfouting) |
Gebruiksvoorbeeld¶
Gebruik CG met SSOR-voorkondisionering en stel die maksimum aantal iterasies op 10000 en die afbreekfout op 1.0e-8
Gebruik GMRES met SSOR-voorkondisionering en stel die aantal Krylov-subruimtes op 40 en die teikengetal kleure vir multikleurordening op 100
Gebruik CG met ILU(0)-voorkondisionering en stel die faktor op diagonale inskrywings tydens die berekening van die voorkondisioneringsmatriks op 1.1
Gebruik AMG deur ML as die voorkondisioneerder vir CG
Gebruik AMG deur ML as die voorkondisioneerder vir CG en MUMPS as die grofroosteroplosser (vir moeilike probleme)
Gebruik AMG deur ML as die voorkondisioneerder vir CG en W-cycle as die multiroostersiklus (vir moeilike probleme)
Gebruik AMG deur ML as die voorkondisioneerder vir CG, MUMPS as die grofroosteroplosser en stel die maksimum aantal vlakke op 2 (vir baie moeilike probleme)
Gebruik HEC-MW se ingeboude SA-AMG as die voorkondisioneerder vir CG
Gebruik SA-AMG as die voorkondisioneerder vir CG en MUMPS as die grofroosteroplosser
Gebruik in ’n wrywingskontakanalise BiCGSTAB met SA-AMG-voorkondisionering en voer die hiërargie van die AMG-voorkondisioneerder uit