Keri sisuni

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.

Funktsioonide ü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, vabadusastmete eksplitsiitne 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 domeeni dekompositsioonil 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 domeeni dekompositsiooniga. OpenMP-paralleelsuse eelkonditsioneerimiseks kaaluge mitmevärvilist SSOR-i.
Eelkonditsioneerija (iteratiivse meetodi kasutamisel) Proovige esmalt vaikimisi SSOR-i ja seejärel kaaluge AMG-d. Hea koonduvuse korral on SSOR arvutuslikult kerge; AMG sobib keerukatele suuremahulistele ülesannetele. AMG on saadaval nii Trilinos-ML-i teostusena kui ka HEC-MW sisseehitatud SA-AMG-na; valige järgu konfiguratsiooni järgi.
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 (Trilinos-ML) on kasutatavad järkudes, mis on lingitud vastavate teekidega. AMG (SA-AMG) on kasutatav järkudes, milles LAPACK on lubatud.

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.

Meetodid CG, BiCGSTAB, GPBiCG ja PipeCG uuendavad jääkvektorit rekurrentse seose abil, mistõttu võivad iteratsioonide käigus kuhjuda ümardusvead ja jääk võib tegelikust jäägist eemalduda. Selle vältimiseks arvutatakse jääkvektor kindla arvu iteratsioonide järel uuesti parema poole ja maatriks-vektori korrutise põhjal. Seda perioodi saab määrata parameetriga RECOMPUTE_RESIDUAL. Pikem periood vähendab maatriks-vektori korrutiste arvu, kuid suurendab ohtu, et rekurrentselt uuendatud jääk eemaldub tegelikust jäägist ja mittekoonduv lahend hinnatakse koondunuks. Vastupidi, liiga lühike periood mitte ainult ei suurenda maatriks-vektori korrutiste arvu, vaid võib rikkuda ka rekurrentse jäägi ja abivektorite vahelist seost, mis võib koonduvust ennast halvendada. Iga meetodi vaikeväärtus tasakaalustab neid mõjusid; selle muutmisel kontrollige koonduvusajalugu ja lõplikku suhtelist jääki.

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) Algebraline mitmevõre välise Trilinos-ML-i teegi kaudu. Valik suuremahulistele ülesannetele või ülesannetele, milles domineerivad hierarhilised veakomponendid.
AMG (SA-AMG) HEC-MW-sse sisseehitatud Smoothed Aggregation-tüüpi algebraline mitmevõre. Sama kasutusala nagu eespool; valik, kui AMG-d tuleb kasutada välist teeki lisamata.
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-l (algebralisel mitmevõrel) on kaks teostust: välist Trilinos-ML-i teeki kasutav teostus ja HEC-MW sisseehitatud SA-AMG. Need on sõltumatud teostused, millel on erinevad järgu konfiguratsiooni nõuded ja erinevad saadaolevad sätted.

AMG kasutamine Trilinos-ML-iga eeldab, et ML on järgu loomisel lubatud. Määrata saab siluja, mitmevõre tsükli, jämendusmeetodi ja muid sätteid; üksikasjalikud väärtused leiate võtmesõnade viitest.

SA-AMG on Smoothed Aggregation-tüüpi algebralise mitmevõre eelkonditsioneerija ega vaja Trilinos-ML-i. See kasutab aga sisemiselt LAPACK-i, mistõttu on vaja järku, milles LAPACK on lubatud; kui see valitakse LAPACK-ita järgus, lõpetab programm töö analüüsi alustamata. Jämevõre lahendamiseks saab MUMPS-i kasutada järkudes, milles MUMPS on lubatud; muul juhul kasutatakse sisseehitatud tiheda maatriksi otsemeetodit.

SA-AMG on mõeldud eelkõige sümmeetriliste positiivselt määratud süsteemide (CG) jaoks, kuid toetab ka hõõrdekontaktist tulenevaid mittesümmeetrilisi taandatud süsteeme (BiCGSTAB, GMRES ja teised). See toetab 1 (soojusjuhtivus), 2 (tasapinnaline ülesanne), 3 (ruumiline tahkis) ja 6 (koorik) vabadusastet sõlme kohta, kuid mitte maatrikseid, milles vabadusastmete arv on sõlmeti erinev. Määrata saab jämevõre lahendaja, mitmevõre tsükli, siluja astme ja muid sätteid, kuid tavapärastes analüüsides võib kasutada vaikeväärtusi. Väärtused ja süntaksi leiate võtmesõnade viitest. Järkudes, milles GPU (OpenACC) on lubatud, täidetakse eelkonditsioneerija rakendamise etapp GPU-l.

Kui SAINV-i kasutatakse paralleelanalüüsis koos kontakti või MPC-piirangutega, võib domeeni dekompositsiooni kattuvussü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.
Vabadusastmete eksplitsiitne elimineerimine Elimineerib piiratud vabadusastmed ja lahendab vähendatud lineaarsüsteemi. Iteratiivsete meetodite vaikevalik.

Trahvimeetod on otsemeetodite ja vabadusastmete eksplitsiitne elimineerimine iteratiivsete meetodite vaikevalik. Varem valitav MPC-CG meetod on eemaldatud; sisendi korral, milles on määratud MPCMETHOD=2, väljastatakse hoiatus ja töötlemisel kasutatakse neid vaikevalikuid.

Vabadusastmete eksplitsiitsel elimineerimisel taandatakse ka modaalanalüüsis ja eksplitsiitses dünaamilises analüüsis kasutatavad koondatud massid sama teisendusega nagu jäikusmaatriks. Kuna taandatud massimaatriks ei ole üldjuhul diagonaalne, kasutatakse koondatud massidena selle reasummasid. Sidumis- või interpoleerimistingimuste korral, mille kitsendusvõrrandi kordajate summa on 1, jaotatakse sõltuva vabadusastme mass peamistele vabadusastmetele võrdeliselt kordajatega.

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.
LOGLEVEL Väljastab diagnostikateabe, näiteks AMG-eelkonditsioneerimise hierarhia ehituse. Määratakse ITERLOG-ist ja TIMELOG-ist sõltumatult. Suurem väärtus suurendab väljundi mahtu.

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