Rješavač i predkondicioniranje¶
Linearni rješavači FrontISTR-a konfiguriraju se odabirom izravne ili iterativne metode; kod iterativnih metoda linearne jednadžbe rješavaju se u kombinaciji s predkondicionerom. Metoda obrade MPC-a i eliminacija kontaktnih stupnjeva slobode pomoćni su izbori koji određuju način obrade linearnog sustava s višetočkastim ili kontaktnim ograničenjima.
Pregled funkcija¶
Postavke rješavača i predkondicioniranja sastoje se od sljedećih izbora. Najprije odaberite iterativnu ili izravnu metodu kao linearni rješavač. Predkondicioner se kombinira samo s iterativnom metodom.
| Kategorija | Glavne mogućnosti | Uloga |
|---|---|---|
| Iterativne metode | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN | Rješavaju velike rijetke matrice uz relativno učinkovitu uporabu memorije. |
| Predkondicioneri za iterativne metode | SSOR, dijagonalno skaliranje, BILU, AMG, SAINV, RIF | Poboljšavaju konvergenciju iterativnih metoda. Ne koriste se s izravnim metodama. |
| Izravne metode | MUMPS, MKL | Robusno rješavaju linearne jednadžbe faktorizacijom matrice. |
| Metode obrade MPC-a | Kaznena metoda, eksplicitna eliminacija stupnjeva slobode | Uključuju višetočkasta ograničenja u linearni sustav. |
| Eliminacija kontaktnih stupnjeva slobode | Automatska, uvijek omogućena | Upravlja obradom kontaktnih stupnjeva slobode dodanih kontaktom SLAGRANGE. |
| Pomoćne funkcije | Procjena broja uvjetovanosti, ispis matrice, zapisivanje dnevnika | Pomažu pri otklanjanju pogrešaka, provjeri konvergencije i procjeni performansi. |
Za paralelno izvođenje MPI paralelizam zasnovan na podjeli domene može se kombinirati s OpenMP paralelizmom s nitima. Iterativne metode standardni su izbor za velike paralelne analize, dok se izravne metode koriste kada su potrebne biblioteke povezane i kada je potrebno robusnije rješenje.
Odabir rješavača i predkondicionera¶
Najprije odlučite hoćete li koristiti iterativnu ili izravnu metodu. Ako odaberete iterativnu metodu, zatim odaberite predkondicioner.
| Kriterij odluke | Preporučeni pristup |
|---|---|
| Veličina problema | Za male i srednje probleme izravne metode su stabilne i jednostavne za uporabu. Za velike probleme iterativne metode učinkovitije koriste memoriju. |
| Simetrija matrice | Za simetrične pozitivno definitne probleme razmotrite CG. Za nesimetrične probleme razmotrite BiCGSTAB, GMRES, GPBiCG ili slične metode. |
| Paralelno okruženje | Pri MPI paralelizmu kombinirajte iterativnu metodu s podjelom domene. Za predkondicioniranje pri OpenMP paralelizmu razmotrite višebojnu implementaciju SSOR-a. |
| Predkondicioner (pri uporabi iterativne metode) | Najprije isprobajte zadani SSOR, a zatim razmotrite AMG. SSOR ima nizak računski trošak kada je konvergencija dobra; AMG je prikladan za složene probleme velikih razmjera. AMG je dostupan kao implementacija Trilinos-ML i kao SA-AMG ugrađen u HEC-MW; odaberite prema konfiguraciji izvedbe. |
| Kontakt i MPC | U analizama koje uključuju kontakt ili višetočkasta ograničenja izbor metode obrade MPC-a i eliminacije kontaktnih stupnjeva slobode utječe na konvergenciju i robusnost. |
| Vanjske biblioteke | MUMPS, MKL i AMG (Trilinos-ML) dostupni su u izvedbama povezanima s odgovarajućim bibliotekama. AMG (SA-AMG) dostupan je u izvedbama s omogućenim LAPACK-om. |
Za standardne analize u pravilu su dovoljne zadane vrijednosti tolerancije konvergencije, maksimalnog broja iteracija i koeficijenta dijagonalne korekcije predkondicionera. Samo kada je konvergencija spora ili rješenje divergira, redom preispitajte iterativnu metodu, predkondicioner, metodu obrade MPC-a i eliminaciju kontaktnih stupnjeva slobode. Vrijednosti parametara i sintaksu pogledajte u referenci ključne riječi !SOLVER.
Iterativne metode¶
Iterativne metode rješavaju velike rijetke sustave ponavljanim ažuriranjem rješenja pomoću umnožaka matrice i vektora te predkondicioniranja. FrontISTR pruža sljedeće iterativne metode.
| Iterativna metoda | Tipična primjena | Napomene |
|---|---|---|
CG | Simetrični pozitivno definitni problemi | Standardni kandidat za strukturne analize i analize provođenja topline. |
BiCGSTAB | Nesimetrični problemi | Kandidat kada kontakt ili spregnuti učinci stvaraju izraženu nesimetriju. |
GMRES | Nesimetrični problemi | Koristi se sa zadanom veličinom Krylovljeva potprostora. |
GPBiCG | Nesimetrični problemi | Koristi se kao poboljšana metoda iz porodice BiCGSTAB. |
GMRESR | Nesimetrični problemi, napredne primjene | Mogućnost koja koristi GMRES u ugniježđenom obliku. |
GMRESREN | Nesimetrični problemi, napredne primjene | Rekurzivna inačica iz porodice GMRESR. |
CG pretpostavlja da je matrica simetrična i pozitivno definitna. Ako trenje u kontaktu, nesimetrična obrada ograničenja, spregnuti učinci ili slični čimbenici uvedu jaku nesimetričnost, razmotrite BiCGSTAB, GMRES, GPBiCG ili drugi nesimetrični rješavač. Kod GMRES povećanje veličine Krylovljeva potprostora može poboljšati konvergenciju, ali i povećava potrošnju memorije.
Kada je naveden METHOD2, FrontISTR može prijeći na alternativnu iterativnu metodu ako CG divergira ili zakaže. Ova je funkcija pričuvna mogućnost za slučajeve u kojima je CG primarni rješavač; alternativna metoda koristi iste preostale postavke i podatkovne retke kao primarni rješavač.
Metode CG, BiCGSTAB, GPBiCG i PipeCG ažuriraju vektor reziduala rekurentnom relacijom, pa se s porastom broja iteracija mogu nakupljati pogreške zaokruživanja i nastati odstupanje od stvarnog reziduala. Kako bi se to spriječilo, vektor reziduala periodički se ponovno izračunava iz desne strane i umnoška matrice i vektora. Razdoblje se zadaje s RECOMPUTE_RESIDUAL. Produljenje razdoblja smanjuje broj umnožaka matrice i vektora, ali povećava rizik da se rekurentno ažurirani rezidual udalji od stvarnog reziduala i da se rješenje koje nije konvergiralo pogrešno ocijeni kao konvergirano. Suprotno tome, ako je razdoblje prekratko, ne povećava se samo broj umnožaka matrice i vektora, nego se može narušiti i odnos između reziduala koji održava rekurentna relacija i pomoćnih vektora, pa se sama konvergencija može pogoršati. Zadana vrijednost za svaku metodu uravnotežuje te učinke; ako je promijenite, provjerite povijest konvergencije i konačni relativni rezidual.
Predkondicioniranje¶
Predkondicioniranje transformira matricu koeficijenata radi poboljšanja konvergencije iterativne metode i primjenjuje se samo kada je odabrana iterativna metoda. Izravne metode ne koriste predkondicioniranje. Čak i za istu iterativnu metodu izbor predkondicionera može znatno promijeniti broj iteracija i vrijeme računanja potrebno za konvergenciju.
| Predkondicioner | Značajke | Tipična primjena |
|---|---|---|
| SSOR | Standardni predkondicioner; podržava višebojno uređivanje. | Prvi kandidat za isprobavanje; široko se koristi u strukturnoj analizi. |
| Dijagonalno skaliranje | Lagani predkondicioner koji koristi dijagonalne članove. | Kada je poželjan nizak računski trošak. |
| BILU | Blokovska nepotpuna LU faktorizacija. | Kandidat za probleme kod kojih se sa SSOR-om teško postiže konvergencija. |
| AMG (Trilinos-ML) | Algebarska višemrežna metoda putem vanjske biblioteke Trilinos-ML. | Kandidat za probleme velikih razmjera ili probleme u kojima prevladavaju hijerarhijske komponente pogreške. |
| AMG (SA-AMG) | Algebarska višemrežna metoda tipa Smoothed Aggregation, ugrađena u HEC-MW. | Isto područje primjene kao gore; kandidat kada se AMG koristi bez dodavanja vanjske biblioteke. |
| SAINV | Rijetka aproksimativna inverzna matrica. | Posebna mogućnost predkondicioniranja za kontaktne probleme ili okruženja s distribuiranom memorijom. |
| RIF | Robusna nepotpuna faktorizacija. | Druga mogućnost nepotpune faktorizacije. |
SSOR je standardni izbor, a pri OpenMP paralelizmu koristi se inačica s višebojnim redoslijedom. Dijagonalno skaliranje je lagano, iako poboljšanje konvergencije ovisi o problemu. BILU je implementiran kao blokovska nepotpuna LU faktorizacija i podržava matrice s općim brojem stupnjeva slobode. Za obitelj BILU postoji postupak koji pri divergenciji iterativne metode automatski povećava koeficijent dijagonalne korekcije SIGMA_DIAG i ponovno pokušava; način zadavanja vrijednosti potražite u referenci ključnih riječi.
AMG (algebarska višemrežna metoda) ima dvije implementacije: jednu koja koristi vanjsku biblioteku Trilinos-ML i SA-AMG ugrađen u HEC-MW. To su neovisne implementacije s različitim zahtjevima za konfiguraciju izvedbe i različitim dostupnim postavkama.
AMG s Trilinos-ML-om zahtijeva da ML bude omogućen pri izgradnji. Mogu se zadati zaglađivač, višemrežni ciklus, metoda ogrubljivanja i druge postavke; detaljne vrijednosti potražite u referenci ključnih riječi.
SA-AMG je predkondicioner algebarske višemrežne metode tipa Smoothed Aggregation i ne zahtijeva Trilinos-ML. Međutim, interno koristi LAPACK, pa je potrebna izvedba s omogućenim LAPACK-om; ako se odabere u izvedbi bez LAPACK-a, program završava bez pokretanja analize. Za rješavanje na gruboj mreži može se koristiti MUMPS u izvedbama s omogućenim MUMPS-om; inače se koristi ugrađena izravna metoda za guste matrice.
SA-AMG je prvenstveno namijenjen simetrično pozitivno definitnim sustavima (CG), ali podržava i nesimetrične reducirane sustave nastale zbog kontakta s trenjem (BiCGSTAB, GMRES i drugi). Podržava 1 (provođenje topline), 2 (ravninski problem), 3 (čvrsti element) i 6 (ljuska) stupnjeva slobode po čvoru, ali ne i matrice u kojima se broj stupnjeva slobode razlikuje među čvorovima. Mogu se zadati rješavač grube mreže, višemrežni ciklus, stupanj zaglađivača i druge postavke, ali zadane vrijednosti mogu se koristiti za uobičajene analize. Vrijednosti i sintaksu potražite u referenci ključnih riječi. U izvedbama s omogućenim GPU-om (OpenACC) faza primjene predkondicionera izvodi se na GPU-u.
Kada se SAINV koristi u paralelnoj analizi s kontaktom ili MPC ograničenjima, dubina preklapanja pri podjeli domene može utjecati na konvergenciju.
Izravne metode¶
Izravne metode rješavaju linearne jednadžbe faktorizacijom matrice koeficijenata. Budući da ne ovise o broju iteracija, robusne su i mogu biti stabilan izbor za analize koje sadrže kontaktne uvjete ili ograničenja. Međutim, njihova potrošnja memorije raste s veličinom problema.
| Izravna metoda | Paralelno okruženje | Primjena |
|---|---|---|
MUMPS | MPI paralelno | Rješava rijetke matrice izravnom metodom u okruženjima s distribuiranom memorijom. |
MKL | Intel MKL / OpenMP | Izravni rješavač temeljen na Intel MKL-u. Interno se koristi Intel PARDISO. Pri više MPI procesa koristi se put Cluster MKL. DIRECTmkl je alias za MKL. |
Izravne metode mogu se koristiti za simetrične i nesimetrične matrice. MUMPS i MKL zahtijevaju povezivanje odgovarajućih biblioteka tijekom izgradnje. Ne mogu se koristiti u okruženjima bez tih biblioteka, stoga potrebne ovisnosti i CMake opcije potražite u vodiču za izgradnju.
FrontISTR također sadrži ugrađeni put izravnog rješavača koji ne koristi vanjsku biblioteku, ali za uobičajene analize koje zahtijevaju izravnu metodu najprije treba razmotriti MUMPS ili MKL.
Predkondicioniranje se ne primjenjuje na izravne metode. Čak i ako je predkondicioner naveden u !SOLVER, ne koristi se na putu izravnog rješavača.
Metode obrade MPC-a¶
Metoda obrade MPC-a određuje kako se stupnjevi slobode povezani višetočkastim ograničenjima uključuju u linearne jednadžbe. Čak i s istim jednadžbama ograničenja u ulaznim podacima, metoda obrade mijenja svojstva matrice koeficijenata i ponašanje konvergencije.
| Metoda obrade MPC-a | Položaj | Zadana uporaba |
|---|---|---|
| Kaznena metoda | Ograničenja se približno zadovoljavaju dodavanjem velikih članova krutosti u jednadžbe ograničenja. | Zadano za izravne metode. |
| Eksplicitna eliminacija stupnjeva slobode | Eliminira ograničene stupnjeve slobode i rješava reducirani linearni sustav. | Zadano za iterativne metode. |
Kaznena metoda zadana je za izravne metode, dok je eksplicitna eliminacija stupnjeva slobode zadana za iterativne metode. Ranije dostupna MPC-CG metoda uklonjena je; za ulazne podatke s MPCMETHOD=2 ispisuje se upozorenje i obrada se provodi prema tim zadanim postavkama.
Pri eksplicitnoj eliminaciji stupnjeva slobode, koncentrirane mase koje se koriste u modalnoj analizi i eksplicitnoj dinamičkoj analizi također se reduciraju istom transformacijom kao matrica krutosti. Budući da reducirana matrica mase općenito nije dijagonalna, zbrojevi njezinih redaka koriste se kao koncentrirane mase. Kod ograničenja povezivanja ili interpolacije u kojima je zbroj koeficijenata jednadžbe ograničenja 1, masa ovisnog stupnja slobode raspodjeljuje se na glavne stupnjeve slobode razmjerno koeficijentima.
Metoda obrade MPC-a može se izričito zadati u !SOLVER parametrom MPCMETHOD. Značenje i sintaksu vrijednosti potražite u referenci ključnih riječi.
Eliminacija kontaktnih stupnjeva slobode¶
Eliminacija kontaktnih stupnjeva slobode smanjuje dodatne kontaktne stupnjeve slobode koje uvodi SLAGRANGE kontakt prije predavanja sustava linearnom rješavaču. Eliminiranje tih kontaktnih stupnjeva slobode može poboljšati svojstva linearnog sustava koji obrađuje iterativna metoda.
U zadanom automatskom načinu eliminacija kontaktnih stupnjeva slobode omogućena je za iterativne metode, a onemogućena za izravne metode. Za izravne metode postoji put koji izravno rješava prošireni sustav koji sadrži kontaktne stupnjeve slobode.
Kada je CONTACT_ELIM izričito naveden, eliminacija kontaktnih stupnjeva slobode može se provesti i pri uporabi izravne metode. Za odabir vrste kontakta, kontaktnog para i kontaktnog algoritma na ulaznoj strani pogledajte stranicu Kontakt i ugrađivanje.
Pomoćne funkcije¶
Procjena broja uvjetovanosti, ispisi matrice i zapisivanje dnevnika mogu se koristiti za istraživanje konvergencije i performansi rješavača. Te funkcije nisu potrebne za uobičajene analize i uglavnom se omogućuju radi ispravljanja pogrešaka ili procjene performansi.
| funkcija | Namjena | Napomene |
|---|---|---|
| Procjena broja uvjetovanosti | Ispisuje pokazatelj broja uvjetovanosti za CG i GMRES. | Dostupno u izvedbama s omogućenim LAPACK-om. |
| Ispis matrice | Sprema matricu i desnu stranu koje se predaju rješavaču u datoteku. | Podržava formate Matrix Market, CSR i BSR. |
DUMPEXIT | Završava analizu nakon ispisa matrice. | Koristi se kada je za vanjsku provjeru potrebno izdvojiti samo matricu. |
ITERLOG | Ispisuje povijest konvergencije iterativne metode. | Koristi se za provjeru razvoja reziduala. |
TIMELOG | Ispisuje vrijeme izračuna rješavača. | VERBOSE ispisuje detaljniju raščlambu. |
STEPLOG | Ispisuje informacije o koraku. | Koristi se za provjeru postupka analize. |
LOGLEVEL | Ispisuje dijagnostičke podatke, primjerice izgradnju hijerarhije AMG predkondicioniranja. | Zadaje se neovisno o ITERLOG i TIMELOG. Veća vrijednost povećava količinu ispisa. |
Ispis matrice omogućuje pregled matrice koeficijenata sastavljene tijekom analize vanjskim alatima. Kada je DUMPEXIT omogućen, analiza se završava nakon spremanja matrice i desne strane. Procjena broja uvjetovanosti eksperimentalna je funkcija dostupna uz CG i GMRES i može se koristiti za dijagnostiku ponašanja konvergencije.
Povezane teme¶
- Linearni rješavač (teorija) — Matematička načela iterativnih metoda i predkondicioniranja.
- Nelinearne iteracije i vremenska integracija — Okvir za Newtonove iteracije, kontaktne iteracije i vremensku integraciju koji poziva linearni rješavač.
- Podjela domene — MPI paralelna analiza i postavke dubine preklapanja.
- Kontakt i ugrađivanje — Odabir vrsta kontakta i kontaktnih algoritama.
- !SOLVER — Vrijednosti i sintaksa parametara rješavača i predkondicionera.
- Obvezne i neobavezne biblioteke ovisnosti — Ovisnosti kao što su
MUMPS,MKL(Intel PARDISO), Trilinos-ML i LAPACK.