Hyppää sisältöön

!SOLVER

Ratkaisijan ohjaus

Pakolliset ohjaustiedot.

Parametrit

METHOD =    ratkaisumenetelmä (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
            DIRECT     : suora menetelmä muille kuin kontaktianalyyseille (vain sarjalaskenta) (ei tällä hetkellä käytettävissä)
            DIRECTmkl  : Intel MKL:ään perustuva suora menetelmä
            MUMPS      : MUMPS:iin perustuva suora menetelmä
            Kun valitaan suora menetelmä, tietorivit ohitetaan.
            Kolmen vapausasteen iteratiivisissa menetelmissä voidaan käyttää OpenMP-säierinnakkaisuutta

PRECOND =   iteratiivisen menetelmän esikonditionointimenetelmä (1、2、3、5、10、11、12, 22)
            1, 2       : (Block) SSOR (monivärijärjestely vain kolmen vapausasteen tapauksessa)
            3          : (Block) diagonaaliskaalaus
            5          : AMG käyttäen ML-monihilaesikonditionointipakettia
            10         : Block ILU(0)
            11         : Block ILU(1)
            12         : Block ILU(2)
            22         : AMG käyttäen HEC-MW:n sisäänrakennettua SA-AMG:tä (tasoitetun aggregoinnin AMG)
            10、11、12 ovat käytettävissä vain kolmen vapausasteen ongelmissa
            22 on käytettävissä vain käännöksissä, joissa LAPACK on käytössä
            OpenMP-säierinnakkaisuudessa suositellaan SSOR-, diagonaaliskaalaus-, ML- tai SA-AMG-esikonditionointia

ITERLOG =   tulostetaanko iteratiivisen ratkaisijan konvergenssihistoria (YES/NO)(oletus: NO)

TIMELOG =   tulostetaanko ratkaisijan laskenta-aika              (YES/NO/VERBOSE)(oletus: NO)

LOGLEVEL =  esikonditionoinnin diagnostiikkatulostuksen taso          (kokonaisluku)(oletus: ei tulostusta)
            Määritetään ITERLOG- ja TIMELOG-asetuksista riippumatta
            Arvolla 1 tai suuremmalla tulostetaan AMG-esikonditionointien (PRECOND=5,22) hierarkian rakenne ja muita tietoja
            Arvolla 2 tai suuremmalla tulostetaan yksityiskohtaisempia tietoja (kuten muistin käyttö)

USEJAD =    käytetäänkö vektorikoneille tarkoitettua järjestelyä (YES/NO)(oletus: NO)
            Voimassa vain käytettäessä iteratiivista menetelmää kolmen vapausasteen ongelmissa

SCALING =   skaalataanko matriisin diagonaalielementit arvoon 1  (YES/NO)(oletus: NO)
            Voimassa vain käytettäessä iteratiivista menetelmää kolmen vapausasteen ongelmissa

DUMPTYPE =  matriisivedoksen muoto (NONE, MM, CSR, BSR) (pääasiassa virheenkorjaukseen)
            NONE : ei vedosta (oletus)
            MM   : Matrix Market -muoto
            CSR  : Compressed Sparse Row (CSR) -muoto
            BSR  : Blocked CSR -muoto

DUMPEXIT =  lopetetaanko ohjelma heti matriisivedoksen jälkeen   (YES/NO)(oletus: NO)

MPCMETHOD = monipisterajoitteiden käsittelymenetelmä (1、3)
            1: sakkomenetelmä (oletus käytettäessä suoraa menetelmää)
            3: eksplisiittinen vapausasteiden eliminointi (oletus käytettäessä iteratiivista menetelmää)
            MPC-CG-menetelmä (2) on poistettu. Jos arvoksi annetaan 2, annetaan varoitus ja käytetään oletusmenetelmää.

ESTCOND =   kuntoluvun estimoinnin taajuus (kokeellinen)
            Kuntoluku estimoidaan määrätyin iteraatiovälein sekä iteraation päättyessä
            Arvolla 0 estimointia ei tehdä

RECOMPUTE_RESIDUAL = residuaalivektorin uudelleenlaskennan taajuus
            Voimassa vain, kun METHOD-asetuksena on CG, BiCGSTAB, GPBiCG tai PipeCG
            Iteratiiviset menetelmät päivittävät residuaalivektoria rekursiokaavalla, joten pyöristysvirheitä kertyy
            Määrätyin iteraatiovälein residuaalivektori lasketaan uudelleen lausekkeesta {b}-[A]{x}
            Arvolla 0 käytetään kunkin menetelmän oletusarvoa (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
            Negatiivisella arvolla jaksottaista uudelleenlaskentaa ei tehdä
            Konvergenssin varmistamiseksi tehtävä uudelleenlaskenta suoritetaan aina tästä asetuksesta riippumatta
            Liian lyhyt jakso ei ainoastaan lisää matriisi-vektorituloja, vaan voi myös
            heikentää itse konvergenssia tai estää konvergenssin kokonaan
            Jos oletusarvoa muutetaan, tarkista konvergenssihistoria ja lopullinen suhteellinen residuaali

METHOD2 =   toinen ratkaisumenetelmä (BiCGSTAB, GMRES, GPBiCG) (kokeellinen)
            Voimassa vain, kun METHOD-asetuksena on CG
            Jos CG-menetelmä hajaantuu, ratkaisija vaihtaa tähän automaattisesti ja jatkaa ratkaisua
            Muiden parametrien ja tietorivien tietoja käytetään samoina

CONTACT_ELIM = määrittää, eliminoidaanko vapausasteita kontaktianalyysissä (0,1)
               0: vapausasteiden eliminointi vain iteratiivista menetelmää käytettäessä (oletus)
               1: vapausasteiden eliminointi aina (myös suoraa menetelmää käytettäessä)

** 2. ja sitä seuraavat rivit **

(2. rivi) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
Muuttujan nimi Attribuutti Kuvaus
NITER I iteraatioiden määrä (oletus: 100)
iterPREmax I Additive Schwarz -esikonditionoinnin iteraatioiden määrä (oletus: 1)
(suositusarvo on 1 (rinnakkaislaskennassa 2 voi olla tehokas))
NREST I Krylov-aliavaruuden koko (oletus: 10)
(voimassa vain, kun ratkaisumenetelmäksi on valittu GMRES)
NCOLOR_IN I monivärijärjestelyn tavoitevärien määrä (oletus: 10)
(voimassa vain, kun OpenMP-säikeitä on vähintään 2)
RECYCLEPRE I esikonditionoinnin asetustietojen uudelleenkäyttökertojen määrä (oletus: 3)
(voimassa vain epälineaarisessa analyysissä)
(3. rivi) RESID, SIGMA_DIAG, SIGMA
Muuttujan nimi Attribuutti Kuvaus
RESID R konvergenssitoleranssi (oletusarvo: 1.0e-8)
SIGMA_DIAG R kerroin, jolla diagonaalielementtejä kerrotaan esikonditionointimatriisia laskettaessa (oletusarvo: 1.0)
(jos ILU-esikonditionoinnissa tapahtuu jako nollalla tai hajaantumista, ongelma saattaa ratketa asettamalla arvoksi yli 1.0)
SIGMA R ei käytössä (oletusarvo: 0.0)

Kun PRECOND=5 (voidaan jättää pois)

Jos PRECOND-arvoksi määritetään muu kuin 5 tai 22, 4. rivi ohitetaan.

(4. rivi) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
Muuttujan nimi Attribuutti Kuvaus
ML_CoarseSolver I ML:n karkean hilan ratkaisija (1: korvataan tasoittajalla, 2: KLU (sarjallinen suora menetelmä), 3: MUMPS (rinnakkainen suora menetelmä)) (oletusarvo: 1)
(suositusarvo on vaikeille ongelmille 3 tai 2, tavallisille ongelmille 1)
ML_Smoother I ML:n tasoittaja (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (oletusarvo: 1)
(suositusarvo on 1)
ML_MGCycle I ML:n monihilasykli (1: V-sykli, 2: W-sykli, 3: täysi V-sykli) (oletusarvo: 1)
(suositusarvo on vaikeille ongelmille 2, tavallisille ongelmille 1)
ML_MaxLevels I ML:n tasojen enimmäismäärä (oletusarvo: 10)
(erityisen vaikeille ongelmille suositellaan karkean hilan ratkaisijaksi suoraa menetelmää ja arvoksi 2 (jos muisti ei riitä, 3); tavallisille ongelmille 10)
ML_CoarseningScheme I ML:n karkeistusmenetelmä (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (oletusarvo: 1)
(suositusarvo on 1 tai 5)
ML_NumSweep I ML-tasoittajan pyyhkäisyjen määrä (Chebyshev-tapauksessa polynomin aste) (oletusarvo: 2)
(suositusarvo on Chebyshev-tapauksessa 2 ja SymBlockGaussSeidel-tapauksessa 1)

Kun PRECOND=22 (voidaan jättää pois)

Jos PRECOND-arvoksi määritetään muu kuin 22, 5. rivi ohitetaan. Sekä 4. että 5. rivi voidaan jättää kokonaan pois, ja kummankin rivin loppupään kenttiä voidaan myös jättää pois. Arvolla 0 määritetyissä kentissä käytetään oletusarvoa.

Neljännen rivin kentät 1–7 ovat samassa järjestyksessä kuin PRECOND=5 (ML) -asetusrivillä, joten ML-asetusriviä voidaan käyttää sellaisenaan. Kentät 8–10 ovat SA-AMG-kohtaisia.

(4. rivi) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (ei käytössä), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (ei käytössä)
Muuttujan nimi Attribuutti Kuvaus
SA_CoarseSolver I Karkean hilan ratkaisija (0: automaattinen, 1: käytä tasoittajaa, 2: tiheän matriisin suora menetelmä, 3: MUMPS (rinnakkainen suora menetelmä)) (oletusarvo: 0)
(Automaattisessa tilassa MUMPS otetaan käyttöön käännöksissä, joissa MUMPS on käytössä; muissa tapauksissa käytetään tiheän matriisin suoraa menetelmää)
SA_Smoother I Tasoittaja (0 tai 1: Chebyshev) (oletusarvo: 0)
(Vain Chebyshev on tuettu. Jos määritetään muu arvo, tulostetaan varoitus ja käytetään Chebysheviä)
SA_MGCycle I Monihilasykli (0: oletus (W-sykli), 1: V-sykli, 2: W-sykli) (oletusarvo: 0)
(Täyttä V-sykliä ei tueta)
SA_MaxLevels I Tasojen enimmäismäärä (oletusarvo: 20)
(ei käytössä) I ML:n karkeistusmenetelmää vastaava paikka. Koska SA-AMG käyttää aina kytkemätöntä aggregointia, nollasta poikkeava arvo aiheuttaa varoituksen ja ohitetaan
SA_ChebyDegree I Chebyshev-tasoittajan polynomin aste (oletusarvo: 2)
SA_CoarseSize I Karkean hilan katkaisukoko (oletusarvo: 50000, kun karkean hilan ratkaisijana käytetään MUMPS:ia; muulloin 100)
SA_MaxAggSize I Aggregaatin enimmäiskoko (oletusarvo: 96)
SA_GalerkinLowMem I Karkean hilan matriisin laskentatapa (0: tavallinen (nopeus etusijalla), positiivinen arvo: muistia säästävä) (oletusarvo: 0)
(Määritä positiivinen arvo, jos muisti ei riitä asetusten muodostamisen aikana)
(ei käytössä) I Varattu tulevia laajennuksia varten

Viides rivi on tarkoitettu vain SA-AMG:lle, eikä ML lue sitä.

(5. rivi) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
Muuttujan nimi Attribuutti Kuvaus
SA_Theta R Vahvojen yhteyksien määrityskynnys (oletusarvo: 0.0)
(Arvolla 0.0 matriisin nollasta poikkeavaa rakennetta käytetään suoraan graafina)
SA_ChebyAlpha R Suhde, joka määrittää Chebyshev-tasoittajan kohteena olevan ominaisarvovälin alarajan (oletusarvo: 20.0)
SA_Safety R Arvioituun suurimpaan ominaisarvoon sovellettava varmuuskerroin (oletusarvo: 1.1)
SA_TaperK R Karkeistuksen loivennuskerroin K (oletusarvo: 100)
(Tasolta 2 alkaen karkeistusta loivennetaan niin, että jäljelle jää vähintään noin K aggregaattia. Negatiivinen arvo poistaa loivennuksen käytöstä)
SA_AggOrder R Aggregoinnin läpikäyntijärjestys (0: oletus (BFS-järjestys), 1: BFS-järjestys, 2: solmunumeroiden hajautusjärjestys (kokeellinen), 3: kasvava astejärjestys (kokeellinen), 4: laskeva astejärjestys (kokeellinen), negatiivinen arvo: solmunumerojärjestys) (oletusarvo: 0)
SA_MinAggSize R Aggregaatin vähimmäiskoko (oletusarvo: 3)
SA_Verify R Tehdäänkö asetusten muodostamisen aikana itsetarkistus (0: ei, positiivinen arvo: kyllä) (oletusarvo: 0) (pääasiassa virheenkorjaukseen)
SA_DumpVTK R Tulostetaanko ylimmän tason aggregointi VTK-muodossa (0: ei tulostusta, positiivinen arvo: tulostus) (oletusarvo: 0) (pääasiassa virheenkorjaukseen)

Esimerkki

Käytetään CG-menetelmää SSOR-esikonditionoinnilla ja asetetaan iteraatioiden enimmäismääräksi 10000 sekä konvergenssitoleranssiksi 1.0e-8

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

Käytetään GMRES-menetelmää SSOR-esikonditionoinnilla ja asetetaan Krylov-aliavaruuden kooksi 40 sekä monivärijärjestelyn tavoitevärien määräksi 100

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

Käytetään CG-menetelmää ILU(0)-esikonditionoinnilla ja asetetaan esikonditionointimatriisin laskennassa diagonaalielementteihin käytettäväksi kertoimeksi 1.1

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

CG-menetelmän esikonditionointina käytetään ML:n AMG-menetelmää

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

CG-menetelmän esikonditionointina käytetään ML:n AMG-menetelmää ja karkean hilan ratkaisijana MUMPS:ia (vaikeille ongelmille)

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

CG-menetelmän esikonditionointina käytetään ML:n AMG-menetelmää ja monihilasyklinä W-sykliä (vaikeille ongelmille)

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

CG-menetelmän esikonditionointina käytetään ML:n AMG-menetelmää, karkean hilan ratkaisijana MUMPS:ia ja tasojen enimmäismääränä 2 (erittäin vaikeille ongelmille)

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

CG-menetelmän esikonditionointina käytetään HEC-MW:n sisäänrakennettua SA-AMG:tä

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

CG-menetelmän esikonditionointina käytetään SA-AMG:tä ja karkean hilan ratkaisijana MUMPS:ia

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

Kitkakontaktianalyysissä käytetään BiCGSTAB-menetelmää SA-AMG-esikonditionoinnilla ja tulostetaan AMG-esikonditionoinnin hierarkia

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