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.

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

AI-assisted translation May contain errors Official docs Status