Lahendaja ja eelkonditsioneerimine¶
FrontISTR-i lineaarlahendaja seadistamisel valitakse kas otse- või iteratiivne meetod; iteratiivne meetod kombineeritakse lineaarvõrrandite lahendamiseks eelkonditsioneerijaga. MPC käsitlusmeetod ja kontaktvabadusastmete elimineerimine on lisavalikud, mis määravad, kuidas mitmepunkt- või kontaktpiiranguid sisaldavat lineaarsüsteemi käsitletakse.
Funktsionaalne ülevaade¶
Lahendaja ja eelkonditsioneerimise seaded koosnevad järgmistest valikutest. Esmalt valige lineaarlahendajaks kas iteratiivne või otsemeetod. Eelkonditsioneerijat kasutatakse ainult koos iteratiivse meetodiga.
| Kategooria | Peamised valikud | Ülesanne |
|---|---|---|
| Iteratiivsed meetodid | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN | Lahendavad suuri hõredaid maatrikseid suhteliselt väikese mälukuluga. |
| Iteratiivsete meetodite eelkonditsioneerijad | SSOR, diagonaalskaalimine, BILU, AMG, SAINV, RIF | Parandavad iteratiivsete meetodite koonduvust. Otsemeetoditega ei kasutata. |
| Otsemeetodid | MUMPS, MKL | Lahendavad lineaarvõrrandid robustselt maatriksi faktoriseerimise abil. |
| MPC käsitlusmeetodid | trahvimeetod, MPC-CG meetod, vabadusastmete otsene elimineerimine | Kaasavad mitmepunktpiirangud lineaarsüsteemi. |
| Kontaktvabadusastmete elimineerimine | automaatne, alati lubatud | Juhib SLAGRANGE-kontaktiga lisatud kontaktvabadusastmete käsitlust. |
| Abifunktsioonid | tingearvu hindamine, maatriksi väljastus, logimine | Toetavad silumist, koonduvuse hindamist ja jõudluse analüüsi. |
Paralleeltäitmisel saab domeenideks jaotamisel põhinevat MPI-paralleelsust kombineerida OpenMP lõimeparalleelsusega. Suurte paralleelanalüüside tavavalik on iteratiivne meetod, otsemeetodeid kasutatakse siis, kui vajalikud teegid on lingitud ja soovitakse robustsemat lahendust.
Lahendaja ja eelkonditsioneerija valimine¶
Kõigepealt otsustage, kas kasutada iteratiivset või otsemeetodit. Iteratiivse meetodi korral valige seejärel eelkonditsioneerija.
| Otsustustegur | Soovitatav lähenemine |
|---|---|
| Probleemi suurus | Väikeste ja keskmiste probleemide korral on otsemeetodid stabiilsed ja lihtsad kasutada. Suurte probleemide korral on iteratiivsed meetodid mälusäästlikumad. |
| Maatriksi sümmeetria | Sümmeetriliste positiivselt määratud probleemide korral kaaluge CG-d. Mittesümmeetriliste probleemide korral kaaluge BiCGSTAB, GMRES, GPBiCG või sarnaseid meetodeid. |
| Paralleelkeskkond | MPI-paralleelsuse korral kombineerige iteratiivne meetod domeenideks jaotamisega. OpenMP-paralleelsuse eelkonditsioneerimiseks kaaluge mitmevärvilist SSOR-i. |
| Eelkonditsioneerija (iteratiivse meetodi korral) | Proovige esmalt vaikimisi SSOR-i, seejärel kaaluge AMG-d. SSOR-i arvutuskulu on hea koonduvuse korral väike; AMG sobib keerukatele suurtele probleemidele. |
| Kontakt ja MPC | Kontakti või mitmepunktpiiranguid sisaldavates analüüsides mõjutavad MPC käsitlusmeetod ja kontaktvabadusastmete elimineerimine koonduvust ning robustsust. |
| Välised teegid | MUMPS, MKL ja AMG on saadaval vastavate teekidega lingitud järkudes. |
Standardanalüüside puhul on vaikimisi koonduvustolerants, maksimaalne iteratsioonide arv ja eelkonditsioneerija diagonaalparanduse kordaja üldiselt piisavad. Alles aeglase koonduvuse või lahendi divergeerumise korral tuleks järjekorras uuesti hinnata iteratiivset meetodit, eelkonditsioneerijat, MPC käsitlusmeetodit ja kontaktvabadusastmete elimineerimist. Parameetrite väärtusi ja süntaksit vt võtmesõna !SOLVER viitest.
Iteratiivsed meetodid¶
Iteratiivsed meetodid lahendavad suuri hõredaid võrrandisüsteeme, uuendades lahendit korduvalt maatriks-vektor-korrutiste ja eelkonditsioneerimise abil. FrontISTR pakub järgmisi iteratiivseid meetodeid.
| Iteratiivne meetod | Tüüpiline kasutus | Märkused |
|---|---|---|
CG | Sümmeetrilised positiivselt määratud probleemid | Standardne kandidaat konstruktsiooni- ja soojusjuhtivusanalüüsideks. |
BiCGSTAB | Mittesümmeetrilised probleemid | Kandidaat, kui kontakt või sidestatud nähtused tekitavad tugeva mittesümmeetria. |
GMRES | Mittesümmeetrilised probleemid | Kasutatakse määratud Krõlovi alamruumi mõõtmega. |
GPBiCG | Mittesümmeetrilised probleemid | Kasutatakse BiCGSTAB perekonna täiustatud meetodina. |
GMRESR | Mittesümmeetrilised probleemid, erirakendused | Variant, mis kasutab GMRES-i pesastatud kujul. |
GMRESREN | Mittesümmeetrilised probleemid, erirakendused | Rekursiivne variant GMRESR perekonnas. |
CG eeldab, et maatriks on sümmeetriline positiivselt määratud. Kui hõõrdekontakt, mittesümmeetriline piirangute käsitlus, sidestus või muud tegurid põhjustavad tugeva mittesümmeetria, kaaluge BiCGSTAB, GMRES, GPBiCG või muud mittesümmeetrilist lahendajat. GMRES-i puhul võib Krõlovi alamruumi mõõtme suurendamine parandada koonduvust, kuid suurendab ka mälukasutust.
Kui on määratud METHOD2, saab FrontISTR CG divergeerumise või nurjumise korral lülituda alternatiivsele iteratiivsele meetodile. See funktsioon on varuvariant juhtudeks, kus põhilahendaja on CG; alternatiivne meetod kasutab samu ülejäänud seadeid ja andmeridu kui põhilahendaja.
Eelkonditsioneerimine¶
Eelkonditsioneerimine teisendab kordajate maatriksit iteratiivse meetodi koonduvuse parandamiseks ja seda rakendatakse ainult iteratiivse meetodi korral. Otsemeetodid eelkonditsioneerimist ei kasuta. Isegi sama iteratiivse meetodi puhul võib eelkonditsioneerija valik oluliselt muuta koonduvuseks vajalike iteratsioonide arvu ja arvutusaega.
| Eelkonditsioneerija | Omadused | Tüüpiline kasutus |
|---|---|---|
| SSOR | Standardne eelkonditsioneerija; toetab mitmevärvilist järjestust. | Esimene proovimist vääriv kandidaat; konstruktsioonianalüüsis laialt kasutatav. |
| Diagonaalskaalimine | Diagonaalelementidel põhinev kerge eelkonditsioneerija. | Kui eelistatakse väikest arvutuskulu. |
| BILU | Plokk-mittetäielik LU-faktoriseerimine. | Kandidaat probleemidele, mille koondumine SSOR-iga on raskendatud. |
| AMG | Trilinos-ML-il põhinev algebraline multivõrk. | Kandidaat suurtele probleemidele või probleemidele, kus domineerivad hierarhilised veakomponendid. |
| SAINV | Hõre ligikaudne pöördmaatriks. | Spetsiaalne eelkonditsioneerimisvariant kontaktprobleemide või hajusmäluga keskkondade jaoks. |
| RIF | Robustne mittetäielik faktoriseerimine. | Teine mittetäieliku faktoriseerimise variant. |
SSOR on standardvalik ning OpenMP-paralleelsuse korral kasutatakse mitmevärvilise järjestusega versiooni. Diagonaalskaalimine on kerge, kuid selle mõju koonduvusele sõltub probleemist. BILU on teostatud plokk-mittetäieliku LU-faktoriseerimisena ja toetab ka üldise vabadusastmete arvuga maatrikseid. BILU perekonna puhul on olemas rada, mis iteratiivse meetodi divergeerumisel suurendab automaatselt diagonaalparanduse kordajat SIGMA_DIAG ja proovib uuesti; väärtuse määramist vt võtmesõna viitest.
AMG kasutab Trilinos-ML-i, mistõttu peab ML olema järgu koostamisel lubatud. Silujaid, multivõrgutsükleid, jämedamaks muutmise meetodeid ja muid seadeid saab määrata; üksikasjalikud väärtused vt võtmesõna viitest. Kui SAINV-i kasutatakse kontakti või MPC-piiranguid sisaldavas paralleelanalüüsis, võib domeenideks jaotamisel kasutatav ülekatte sügavus mõjutada koonduvust.
Otsemeetodid¶
Otsemeetodid lahendavad lineaarvõrrandid kordajate maatriksi faktoriseerimise teel. Kuna nende töö ei sõltu iteratsioonide arvust, on need robustsed ja võivad olla stabiilne valik kontakti- või piirangutingimustega analüüside jaoks. Mälutarve kasvab siiski koos probleemi suurusega.
| Otsemeetod | Paralleelkeskkond | Kasutus |
|---|---|---|
MUMPS | MPI-paralleelsus | Lahendab hõredaid maatrikseid hajusmäluga keskkondades otsemeetodiga. |
MKL | Intel MKL / OpenMP | Intel MKL-il põhinev otselahendaja. Sisemiselt kasutatakse Intel PARDISO-t. Mitme MPI-protsessi korral kasutatakse Cluster MKL rada. DIRECTmkl on MKL alias. |
Otsemeetodeid saab kasutada nii sümmeetriliste kui mittesümmeetriliste maatriksite korral. MUMPS ja MKL nõuavad vastavate teekide linkimist järgu koostamisel. Neid ei saa kasutada keskkondades, kus need teegid puuduvad; vajalikud sõltuvused ja CMake'i suvandid vt koostamisjuhendist.
FrontISTR sisaldab ka sisseehitatud otselahendaja rada, mis ei kasuta välist teeki, kuid tavapärastes otsemeetodit nõudvates analüüsides tuleks üldjuhul esmalt kaaluda MUMPS-i või MKL-i.
Otsemeetoditele eelkonditsioneerimist ei rakendata. Isegi kui !SOLVER-is on eelkonditsioneerija määratud, otselahendaja rada seda ei kasuta.
MPC käsitlusmeetodid¶
MPC käsitlusmeetod määrab, kuidas mitmepunktpiirangutega seotud vabadusastmed lineaarvõrranditesse kaasatakse. Isegi samade sisendandmete piiranguvõrrandite korral muudab käsitlusmeetod kordajate maatriksi omadusi ja koonduvuskäitumist.
| MPC käsitlusmeetod | Iseloomustus | Vaikimisi kasutus |
|---|---|---|
| Trahvimeetod | Rahuldab piiranguid ligikaudselt, lisades piiranguvõrranditele suured jäikustegurid. | Otsemeetodite vaikevalik. |
| MPC-CG meetod | Pärandmeetod, mis käsitleb piiranguid sisaldavaid maatriks-vektor-korrutisi iteratiivse lahendaja sees. | Mittesoovitatav. |
| Vabadusastmete otsene elimineerimine | Elimineerib piiratud vabadusastmed ja lahendab vähendatud lineaarsüsteemi. | Iteratiivsete meetodite vaikevalik. |
Trahvimeetod on otsemeetodite ja vabadusastmete otsene elimineerimine iteratiivsete meetodite vaikevalik. MPC-CG on pärandühilduvuse variant ning uute analüüside jaoks seda ei soovitata; tavaliselt kasutage vabadusastmete otsest elimineerimist või valitud otsemeetodi vaikekäsitlust.
MPC käsitlusmeetodi saab võtmesõnas !SOLVER parameetriga MPCMETHOD selgesõnaliselt määrata. Iga väärtuse tähendust ja süntaksit vt võtmesõna viitest.
Kontaktvabadusastmete elimineerimine¶
Kontaktvabadusastmete elimineerimine vähendab SLAGRANGE-kontaktiga lisatud kontaktvabadusastmeid enne süsteemi edastamist lineaarlahendajale. Nende vabadusastmete elimineerimine võib parandada iteratiivse meetodi käsitletava lineaarsüsteemi omadusi.
Vaikimisi automaatrežiimis on kontaktvabadusastmete elimineerimine iteratiivsete meetodite korral lubatud ja otsemeetodite korral keelatud. Otsemeetodite jaoks on olemas rada, mis lahendab kontaktvabadusastmeid sisaldava laiendatud süsteemi otse.
Kui CONTACT_ELIM on selgesõnaliselt määratud, saab kontaktvabadusastmeid elimineerida ka otsemeetodi kasutamisel. Sisendi kontaktitüübi, kontaktpaari ja kontaktalgoritmi valikuid vt kontakti ja sisestamise lehelt.
Abifunktsioonid¶
Tingearvu hindamist, maatriksi väljastust ja logimist saab kasutada lahendaja koonduvuse ning jõudluse uurimiseks. Tavaanalüüside jaoks pole neid funktsioone vaja; neid lubatakse peamiselt silumiseks või jõudluse hindamiseks.
| Funktsioon | Otstarve | Märkused |
|---|---|---|
| Tingearvu hindamine | Väljastab CG ja GMRES jaoks tingearvu indikaatori. | Saadaval järkudes, kus LAPACK on lubatud. |
| Maatriksi väljastus | Salvestab lahendajale edastatava maatriksi ja parema poole. | Toetab Matrix Market, CSR ja BSR vorminguid. |
DUMPEXIT | Lõpetab analüüsi pärast maatriksi väljastamist. | Kasutatakse, kui väliseks kontrolliks on vaja ainult maatriksit. |
ITERLOG | Väljastab iteratiivse meetodi koonduvusajaloo. | Kasutatakse jäägi muutumise jälgimiseks. |
TIMELOG | Väljastab lahendaja arvutusaja. | VERBOSE väljastab üksikasjalikuma jaotuse. |
STEPLOG | Väljastab sammuinfo. | Kasutatakse analüüsiprotseduuri jälgimiseks. |
Maatriksi väljastus võimaldab analüüsi koostatud kordajate maatriksit väliste tööriistadega kontrollida. Kui DUMPEXIT on lubatud, lõpetatakse analüüs pärast maatriksi ja parema poole salvestamist. Tingearvu hindamine on CG ja GMRES korral saadaval olev katseline funktsioon, mida saab kasutada koonduvuskäitumise diagnoosimiseks.
Seotud teemad¶
- Lineaarlahendaja (teooria) — Iteratiivsete meetodite ja eelkonditsioneerimise matemaatilised alused.
- Mittelineaarne iteratsioon ja ajaintegreerimine — Newtoni iteratsioonide, kontaktiteratsioonide ja lineaarlahendajat kasutava ajaintegreerimise raamistik.
- Domeenideks jaotamine — MPI-paralleelanalüüs ja ülekatte sügavuse seaded.
- Kontakt ja sisestamine — Kontaktitüüpide ja kontaktalgoritmide valik.
- !SOLVER — Lahendaja ja eelkonditsioneerija parameetrite väärtused ning süntaks.
- Nõutavad ja valikulised sõltuvusteegid — Sõltuvused nagu
MUMPS,MKL(Intel PARDISO), Trilinos-ML ja LAPACK.