!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 **
| 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ä) |
| 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.
| 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
Käytetään GMRES-menetelmää SSOR-esikonditionoinnilla ja asetetaan Krylov-aliavaruuden kooksi 40 sekä monivärijärjestelyn tavoitevärien määräksi 100
Käytetään CG-menetelmää ILU(0)-esikonditionoinnilla ja asetetaan esikonditionointimatriisin laskennassa diagonaalielementteihin käytettäväksi kertoimeksi 1.1
CG-menetelmän esikonditionointina käytetään ML:n AMG-menetelmää
CG-menetelmän esikonditionointina käytetään ML:n AMG-menetelmää ja karkean hilan ratkaisijana MUMPS:ia (vaikeille ongelmille)
CG-menetelmän esikonditionointina käytetään ML:n AMG-menetelmää ja monihilasyklinä W-sykliä (vaikeille ongelmille)
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)
CG-menetelmän esikonditionointina käytetään HEC-MW:n sisäänrakennettua SA-AMG:tä
CG-menetelmän esikonditionointina käytetään SA-AMG:tä ja karkean hilan ratkaisijana MUMPS:ia
Kitkakontaktianalyysissä käytetään BiCGSTAB-menetelmää SA-AMG-esikonditionoinnilla ja tulostetaan AMG-esikonditionoinnin hierarkia