!SOLVER¶
Lahendaja juhtimine
Kohustuslikud juhtandmed.
Parameetrid¶
METHOD = Lahendusmeetod (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Otsemeetod, välja arvatud kontaktanalüüs (ainult jadaline töötlus) (praegu pole saadaval)
DIRECTmkl : Intel MKL-i kasutav otsemeetod
MUMPS : MUMPS-i kasutav otsemeetod
Otsemeetodi valimisel andmeridu eiratakse.
3 vabadusastmega probleemide iteratiivmeetodid toetavad OpenMP lõimeparalleelsust
PRECOND = Iteratiivsete lahendajate eelkonditsioneerimismeetod (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : (Plokk-)SSOR (mitmevärvilise järjestusega ainult 3 vabadusastmega probleemide korral)
3 : (Plokk-)diagonaalskaleerimine
5 : mitmevõre eelkonditsioneerimispaketi ML abil AMG
10 : Plokk-ILU(0)
11 : Plokk-ILU(1)
12 : Plokk-ILU(2)
22 : AMG HEC-MW sisseehitatud SA-AMG-ga (Smoothed Aggregation AMG)
10, 11 ja 12 on saadaval ainult 3 vabadusastmega probleemide korral
22 on saadaval ainult järkudes, milles LAPACK on lubatud
OpenMP lõimeparalleelsuse jaoks on soovitatav SSOR, diagonaalskaleerimine, ML või SA-AMG
ITERLOG = Kas väljastada iteratiivse lahendaja koonduvusajalugu (YES/NO)(Vaikimisi: NO)
TIMELOG = Kas väljastada lahendaja arvutusaeg (YES/NO/VERBOSE)(Vaikimisi: NO)
LOGLEVEL = Eelkonditsioneerimise diagnostikateabe väljundtase (täisarv)(vaikimisi: väljund puudub)
Määratakse ITERLOG-ist ja TIMELOG-ist sõltumatult
Väärtuse 1 või suurema korral väljastatakse muu hulgas AMG-eelkonditsioneerimise hierarhia ehitus (PRECOND=5, 22)
Väärtuse 2 või suurema korral väljastatakse veel üksikasjalikumat teavet (näiteks mälukasutus)
USEJAD = Kas kasutada vektorprotsessorite jaoks järjestamist (YES/NO)(Vaikimisi: NO)
Kehtib ainult siis, kui 3 vabadusastmega probleemil kasutatakse iteratiivmeetodit
SCALING = Kas skaleerida maatriksit nii, et diagonaalielemendid oleksid 1 (YES/NO)(Vaikimisi: NO)
Kehtib ainult siis, kui 3 vabadusastmega probleemil kasutatakse iteratiivmeetodit
DUMPTYPE = Maatriksi tõmmise vorming (NONE, MM, CSR, BSR) (peamiselt silumiseks)
NONE : Tõmmist ei tehta (vaikimisi)
MM : Matrix Marketi vorming
CSR : Compressed Sparse Row (CSR) vorming
BSR : plokk-CSR vorming
DUMPEXIT = Kas lõpetada programm kohe pärast maatriksi tõmmise tegemist (YES/NO)(Vaikimisi: NO)
MPCMETHOD = Mitmepunktipiirangute käsitlemise meetod (1, 3)
1: Trahvimeetod (vaikimisi otsemeetodi korral)
3: Vabadusastmete otsene elimineerimine (vaikimisi iteratiivmeetodi korral)
MPC-CG meetod (2) on eemaldatud. Väärtuse 2 määramisel väljastatakse hoiatus ja kasutatakse vaikemeetodit.
ESTCOND = Tingimusarvu hindamise sagedus (eksperimentaalne)
Tingimusarvu hinnatakse igal määratud iteratsioonivahemikul ja iteratsioonide lõpus
Väärtuse 0 korral hindamist ei tehta
RECOMPUTE_RESIDUAL = Jääkvektori uuesti arvutamise sagedus
Kehtib ainult siis, kui METHOD jaoks on määratud CG, BiCGSTAB, GPBiCG või PipeCG
Iteratiivsed meetodid uuendavad jääkvektorit rekurrentse seosega, mistõttu ümardusvead kuhjuvad
Iga määratud iteratsioonivahemiku järel arvutatakse jääkvektor uuesti avaldisest {b}-[A]{x}
Kui määratakse 0, kasutatakse iga meetodi vaikeväärtust (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Negatiivse väärtuse korral perioodilist uuesti arvutamist ei tehta
Koondumiskriteeriumi täitumise kontrollimiseks tehtav uuesti arvutamine toimub sellest seadest sõltumata alati
Kui periood on liiga lühike, ei suurene mitte ainult maatriks-vektor korrutiste arv
vaid koonduvus ise võib halveneda või koondumine võib täielikult kaduda
Kui muudate vaikeväärtust, kontrollige koondumisajalugu ja lõplikku suhtelist jääki
METHOD2 = Lahendusmeetod 2 (BiCGSTAB, GMRES, GPBiCG) (eksperimentaalne)
Kehtib ainult siis, kui METHOD jaoks on määratud CG
Kui CG hajub, lülitutakse automaatselt teisesele meetodile ja lahendamist jätkatakse
Muude parameetrite ja andmeridade jaoks kasutatakse samu väärtusi
CONTACT_ELIM = Määrab, kas kontaktanalüüsis tehakse vabadusastmete elimineerimine (0,1)
0: Vabadusastmete elimineerimine ainult iteratiivmeetodi korral (vaikimisi)
1: Vabadusastmete elimineerimine alati (ka otsemeetodi korral)
** 2. ja järgnevad read **
| Muutuja | Atribuut | Kirjeldus |
|---|---|---|
| NITER | I | Iteratsioonide arv (vaikimisi: 100) |
| iterPREmax | I | Additive Schwarzi eelkonditsioneerimise iteratsioonide arv (vaikimisi: 1) (Soovitatav väärtus: 1; mõnes paralleelarvutuses võib 2 olla tõhus) |
| NREST | I | Krylovi alamruumide arv (vaikimisi: 10) (Kehtib ainult siis, kui lahendusmeetodiks on valitud GMRES) |
| NCOLOR_IN | I | Mitmevärvilise järjestamise värvide sihtarv (vaikimisi: 10) (Kehtib ainult siis, kui OpenMP lõimede arv on vähemalt 2) |
| RECYCLEPRE | I | Eelkonditsioneerija seadistusteabe taaskasutuskordade arv (vaikimisi: 3) (Kehtib ainult mittelineaarses analüüsis) |
| Muutuja | Atribuut | Kirjeldus |
|---|---|---|
| RESID | R | Koonduvustolerants (vaikimisi: 1.0e-8) |
| SIGMA_DIAG | R | Eelkonditsioneerimismaatriksi arvutamisel diagonaalielementidele rakendatav skaleerimistegur (vaikimisi: 1.0) (Kui ILU eelkonditsioneerimisel tekib nulliga jagamine või hajumine, võib probleem koonduda, kui määrata väärtus, mis on suurem kui 1.0) |
| SIGMA | R | Ei kasutata (vaikimisi: 0.0) |
Kui PRECOND=5 (valikuline)¶
Kui PRECOND väärtuseks määratakse muu kui 5 või 22, eiratakse 4. rida.
| Muutuja | Atribuut | Kirjeldus |
|---|---|---|
| ML_CoarseSolver | I | ML jämevõre lahendaja (1: kasutada silujat, 2: KLU (jadaline otsemeetod), 3: MUMPS (paralleelne otsemeetod)) (vaikimisi: 1) (Soovitatav: keeruliste probleemide korral 3 või 2, tavaliste probleemide korral 1) |
| ML_Smoother | I | ML siluja (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (vaikimisi: 1) (Soovitatav: 1) |
| ML_MGCycle | I | ML mitmevõre tsükkel (1: V-tsükkel, 2: W-tsükkel, 3: täis-V-tsükkel) (vaikimisi: 1) (Soovitatav: keeruliste probleemide korral 2, tavaliste probleemide korral 1) |
| ML_MaxLevels | I | ML tasemete maksimaalne arv (vaikimisi: 10) (Eriti keeruliste probleemide korral kasutage otsest jämevõre lahendajat ja 2 taset (või 3, kui mälu ei piisa); tavaliste probleemide korral on soovitatav 10) |
| ML_CoarseningScheme | I | ML jämendusskeem (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (vaikimisi: 1) (Soovitatav: 1 või 5) |
| ML_NumSweep | I | ML siluja läbimiste arv (Chebyshevi korral polünoomi aste) (vaikimisi: 2) (Soovitatav: Chebyshevi korral 2, SymBlockGaussSeideli korral 1) |
Kui PRECOND=22 (valikuline)¶
Kui PRECOND väärtuseks määratakse muu kui 22, eiratakse 5. rida. Nii 4. kui ka 5. rea võib täielikult ära jätta ning ära võib jätta ka kummagi rea lõpus olevad elemendid. Iga väärtusega 0 määratud elemendi korral kasutatakse vaikeväärtust.
Neljanda rea elemendid 1 kuni 7 on samas järjestuses nagu PRECOND=5 (ML) valikureal, seega saab ML-i valikurida muutmata kujul taaskasutada. Elemendid 8 kuni 10 on SA-AMG-spetsiifilised.
(4. rida) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (ei kasutata), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (ei kasutata)
| Muutuja | Atribuut | Kirjeldus |
|---|---|---|
| SA_CoarseSolver | I | Jämevõre lahendaja (0: automaatne, 1: kasuta silujat, 2: tiheda maatriksi otsene meetod, 3: MUMPS (paralleelne otsene meetod)) (vaikimisi: 0) (Automaatses režiimis kasutatakse MUMPS-i järgus, kus MUMPS on lubatud; muul juhul kasutatakse tiheda maatriksi otsest meetodit) |
| SA_Smoother | I | Siluja (0 või 1: Chebyshev) (vaikimisi: 0) (Toetatud on ainult Chebyshev. Muu väärtuse määramisel väljastatakse hoiatus ja kasutatakse Chebyshevi) |
| SA_MGCycle | I | Mitmevõre tsükkel (0: vaikeväärtus (W-tsükkel), 1: V-tsükkel, 2: W-tsükkel) (vaikimisi: 0) (Täis-V-tsüklit ei toetata) |
| SA_MaxLevels | I | Tasandite maksimaalne arv (vaikimisi: 20) |
| (ei kasutata) | I | ML-i jämendamisskeemile vastav asukoht. Kuna SA-AMG kasutab alati sidestamata agregeerimist, väljastatakse nullist erineva väärtuse korral hoiatus ja väärtust eiratakse |
| SA_ChebyDegree | I | Chebyshevi siluja polünoomi aste (vaikimisi: 2) |
| SA_CoarseSize | I | Jämevõre lõikesuurus (vaikimisi: 50000, kui jämevõre lahendajana kasutatakse MUMPS-i; muul juhul 100) |
| SA_MaxAggSize | I | Agregaadi maksimaalne suurus (vaikimisi: 96) |
| SA_GalerkinLowMem | I | Jämevõre maatriksi arvutusmeetod (0: tavaline (kiirus on prioriteet), positiivne väärtus: mälu säästev) (vaikimisi: 0) (Määrake positiivne väärtus, kui seadistamise ajal jääb mälu puudu) |
| (ei kasutata) | I | Reserveeritud tulevaste laienduste jaoks |
Viies rida on mõeldud ainult SA-AMG-le ja ML seda ei loe.
(5. rida) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Muutuja | Atribuut | Kirjeldus |
|---|---|---|
| SA_Theta | R | Tugevate ühenduste määramise lävi (vaikimisi: 0.0) (Väärtuse 0.0 korral kasutatakse maatriksi nullist erinevat struktuuri otse graafina) |
| SA_ChebyAlpha | R | Suhe, mis määrab Chebyshevi siluja sihitud omaväärtuste vahemiku alumise piiri (vaikimisi: 20.0) |
| SA_Safety | R | Hinnangulisele maksimaalsele omaväärtusele rakendatav ohutustegur (vaikimisi: 1.1) |
| SA_TaperK | R | Jämendamise ahenemistegur K (vaikimisi: 100) (Alates 2. tasandist muudetakse jämendamine järkjärgulisemaks, et alles jääks vähemalt ligikaudu K agregaati. Negatiivne väärtus keelab ahenemise) |
| SA_AggOrder | R | Agregeerimise läbimisjärjekord (0: vaikeväärtus (BFS-järjekord), 1: BFS-järjekord, 2: sõlmenumbrite räsijärjekord (katseline), 3: astme kasvav järjekord (katseline), 4: astme kahanev järjekord (katseline), negatiivne väärtus: sõlmenumbrite järjekord) (vaikimisi: 0) |
| SA_MinAggSize | R | Agregaadi minimaalne suurus (vaikimisi: 3) |
| SA_Verify | R | Kas seadistamise ajal käivitada enesekontroll (0: ei, positiivne väärtus: jah) (vaikimisi: 0) (peamiselt silumiseks) |
| SA_DumpVTK | R | Kas väljastada kõrgeima tasandi agregeerimine VTK-vormingus (0: väljund puudub, positiivne väärtus: väljund) (vaikimisi: 0) (peamiselt silumiseks) |
Näited¶
Kasutage CG-d koos SSOR eelkonditsioneerimisega ning määrake iteratsioonide maksimaalseks arvuks 10000 ja koonduvustolerantsiks 1.0e-8
Kasutage GMRES-i koos SSOR eelkonditsioneerimisega ning määrake Krylovi alamruumide arvuks 40 ja mitmevärvilise järjestamise värvide sihtarvuks 100
Kasutage CG-d koos ILU(0) eelkonditsioneerimisega ning määrake eelkonditsioneerimismaatriksi arvutamisel diagonaalielementidele rakendatavaks skaleerimisteguriks 1.1
Kasutage ML-i AMG-d CG eelkonditsioneerijana
Kasutage ML-i AMG-d CG eelkonditsioneerijana ja MUMPS-i jämevõre lahendajana (keeruliste probleemide korral)
Kasutage ML-i AMG-d CG eelkonditsioneerijana ja W-tsüklit mitmevõre tsüklina (keeruliste probleemide korral)
Kasutage ML-i AMG-d CG eelkonditsioneerijana, MUMPS-i jämevõre lahendajana ning määrake tasemete maksimaalseks arvuks 2 (väga keeruliste probleemide korral)
Kasutage CG eelkonditsioneerimiseks HEC-MW sisseehitatud SA-AMG-d
Kasutage CG eelkonditsioneerimiseks SA-AMG-d ja jämevõre lahendajana MUMPS-i
Kasutage hõõrdekontakti analüüsis BiCGSTAB-i koos SA-AMG-eelkonditsioneerimisega ning väljastage AMG-eelkonditsioneeri hierarhia ehitus