Keri sisuni

!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 **

(2. rida) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
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)
(3. rida) RESID, SIGMA_DIAG, SIGMA
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.

(4. rida) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
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

!SOLVER, METHOD=CG, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Kasutage GMRES-i koos SSOR eelkonditsioneerimisega ning määrake Krylovi alamruumide arvuks 40 ja mitmevärvilise järjestamise värvide sihtarvuks 100

!SOLVER, METHOD=GMRES, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1, 40, 100
  1.0e-8, 1.0, 0.0

Kasutage CG-d koos ILU(0) eelkonditsioneerimisega ning määrake eelkonditsioneerimismaatriksi arvutamisel diagonaalielementidele rakendatavaks skaleerimisteguriks 1.1

!SOLVER, METHOD=CG, PRECOND=10, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.1, 0.0

Kasutage ML-i AMG-d CG eelkonditsioneerijana

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Kasutage ML-i AMG-d CG eelkonditsioneerijana ja MUMPS-i jämevõre lahendajana (keeruliste probleemide korral)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

Kasutage ML-i AMG-d CG eelkonditsioneerijana ja W-tsüklit mitmevõre tsüklina (keeruliste probleemide korral)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  1, 1, 2

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)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3, 1, 1, 2

Kasutage CG eelkonditsioneerimiseks HEC-MW sisseehitatud SA-AMG-d

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Kasutage CG eelkonditsioneerimiseks SA-AMG-d ja jämevõre lahendajana MUMPS-i

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

Kasutage hõõrdekontakti analüüsis BiCGSTAB-i koos SA-AMG-eelkonditsioneerimisega ning väljastage AMG-eelkonditsioneeri hierarhia ehitus

!SOLVER, METHOD=BiCGSTAB, PRECOND=22, ITERLOG=YES, TIMELOG=YES, LOGLEVEL=1
  10000, 1
  1.0e-8, 1.0, 0.0