Skoči na vsebino

Reševalnik in predpogojevanje

Linearni reševalniki FrontISTR se nastavijo z izbiro neposredne ali iterativne metode; iterativne metode se za reševanje linearnih enačb kombinirajo s predpogojevalnikom. Metoda obravnave MPC in izločanje kontaktnih prostostnih stopenj sta dodatni izbiri, ki določata obravnavo linearnega sistema z večtočkovnimi ali kontaktnimi omejitvami.

Pregled funkcij

Nastavitve reševalnika in predpogojevanja obsegajo naslednje izbire. Najprej kot linearni reševalnik izberite iterativno ali neposredno metodo. Predpogojevalnik se kombinira samo z iterativno metodo.

Kategorija Glavne možnosti Vloga
Iterativne metode CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN Rešujejo velike redke matrike z razmeroma učinkovito porabo pomnilnika.
Predpogojevalniki za iterativne metode SSOR, diagonalno skaliranje, BILU, AMG, SAINV, RIF Izboljšajo konvergenco iterativnih metod. Pri neposrednih metodah se ne uporabljajo.
Neposredne metode MUMPS, MKL Robustno rešujejo linearne enačbe z matrično faktorizacijo.
Metode obravnave MPC Kazenska metoda, eksplicitno izločanje prostostnih stopenj Vključijo večtočkovne omejitve v linearni sistem.
Izločanje kontaktnih prostostnih stopenj Samodejno, vedno omogočeno Krmili obravnavo kontaktnih prostostnih stopenj, dodanih s stikom SLAGRANGE.
Pomožne funkcije Ocenjevanje pogojnega števila, izpis matrike, beleženje Podpirajo razhroščevanje, ocenjevanje konvergence in zmogljivosti.

Pri vzporednem izvajanju je mogoče vzporednost MPI na podlagi razcepa domene kombinirati z nitno vzporednostjo OpenMP. Iterativne metode so standardna izbira za obsežne vzporedne analize, neposredne metode pa se uporabljajo, kadar so povezane zahtevane knjižnice in je potrebna robustnejša rešitev.

Izbira reševalnika in predpogojevalnika

Najprej se odločite za iterativno ali neposredno metodo. Če izberete iterativno metodo, nato izberite predpogojevalnik.

Dejavnik odločitve Priporočeni pristop
Velikost problema Neposredne metode so stabilne in preproste za uporabo pri majhnih do srednje velikih problemih. Iterativne metode so pri velikih problemih pomnilniško učinkovitejše.
Simetričnost matrike Za simetrične pozitivno definitne probleme razmislite o CG. Za nesimetrične probleme razmislite o BiCGSTAB, GMRES, GPBiCG ali podobnih metodah.
Vzporedno okolje Pri vzporednosti MPI kombinirajte iterativno metodo z razcepom domene. Za predpogojevanje pri vzporednosti OpenMP razmislite o večbarvni implementaciji SSOR.
Predpogojevalnik (pri iterativni metodi) Najprej preizkusite privzeti SSOR, nato razmislite o AMG. SSOR je računsko lahek, kadar je konvergenca dobra; AMG je primeren za kompleksne velike probleme. AMG je na voljo kot izvedba Trilinos-ML in kot SA-AMG, vgrajen v HEC-MW; izberite glede na konfiguracijo gradnje.
Stik in MPC Pri analizah s stikom ali večtočkovnimi omejitvami izbira metode obravnave MPC in izločanja kontaktnih prostostnih stopenj vpliva na konvergenco in robustnost.
Zunanje knjižnice MUMPS, MKL in AMG (Trilinos-ML) so na voljo v gradnjah, povezanih z ustreznimi knjižnicami. AMG (SA-AMG) je na voljo v gradnjah z omogočenim LAPACK.

Pri standardnih analizah običajno zadoščajo privzeta toleranca konvergence, največje število iteracij in koeficient diagonalne korekcije predpogojevalnika. Šele kadar je konvergenca počasna ali rešitev divergira, po vrsti ponovno pretehtajte iterativno metodo, predpogojevalnik, metodo obravnave MPC in izločanje kontaktnih prostostnih stopenj. Za vrednosti parametrov in sintakso glejte referenco ključne besede !SOLVER.

Iterativne metode

Iterativne metode rešujejo velike redke sisteme z večkratnim posodabljanjem rešitve z matrično-vektorskimi produkti in predpogojevanjem. FrontISTR ponuja naslednje iterativne metode.

Iterativna metoda Tipična uporaba Opombe
CG Simetrični pozitivno definitni problemi Standardna izbira za strukturne analize in analize prevajanja toplote.
BiCGSTAB Nesimetrični problemi Možnost, kadar stik ali sklopljeni učinki povzročijo močno nesimetrijo.
GMRES Nesimetrični problemi Uporablja se z določeno velikostjo Krylovega podprostora.
GPBiCG Nesimetrični problemi Uporablja se kot izboljšana metoda iz družine BiCGSTAB.
GMRESR Nesimetrični problemi, napredne uporabe Možnost, ki uporablja GMRES v ugnezdeni obliki.
GMRESREN Nesimetrični problemi, napredne uporabe Rekurzivna različica iz družine GMRESR.

CG predpostavlja simetrično pozitivno definitno matriko. Če trenjski stik, nesimetrična obravnava omejitev, sklopljeni učinki ali podobni dejavniki povzročijo močno nesimetrijo, razmislite o BiCGSTAB, GMRES, GPBiCG ali drugem nesimetričnem reševalniku. Pri GMRES lahko povečanje velikosti Krylovega podprostora izboljša konvergenco, vendar poveča tudi porabo pomnilnika.

Če je določen METHOD2, lahko FrontISTR ob divergenci ali odpovedi CG preklopi na alternativno iterativno metodo. Ta funkcija je rezervna možnost, kadar je CG primarni reševalnik; alternativna metoda uporablja iste preostale nastavitve in podatkovne vrstice kot primarni reševalnik.

Metode CG, BiCGSTAB, GPBiCG in PipeCG posodabljajo vektor reziduala z rekurentno zvezo, zato se lahko z naraščanjem števila iteracij kopičijo napake zaokroževanja in nastane odmik od pravega reziduala. Da se to prepreči, se vektor reziduala po določenem številu iteracij znova izračuna iz desne strani in matrično-vektorskega produkta. To periodo je mogoče določiti z RECOMPUTE_RESIDUAL. Daljša perioda zmanjša število matrično-vektorskih produktov, vendar poveča tveganje, da se rekurentno posodobljeni rezidual oddalji od pravega reziduala in da se nekonvergirana rešitev napačno oceni kot konvergirana. Nasprotno pa prekratka perioda ne poveča le števila matrično-vektorskih produktov, temveč lahko poruši tudi razmerje med rezidualom, ki ga ohranja rekurentna zveza, in pomožnimi vektorji, zato se lahko poslabša sama konvergenca. Privzeta vrednost za vsako metodo uravnoteža te učinke; če jo spremenite, preverite zgodovino konvergence in končni relativni rezidual.

Predpogojevanje

Predpogojevanje preoblikuje matriko koeficientov, da izboljša konvergenco iterativne metode, in se uporablja samo, kadar je izbrana iterativna metoda. Neposredne metode predpogojevanja ne uporabljajo. Tudi pri isti iterativni metodi lahko izbira predpogojevalnika bistveno spremeni število iteracij in čas računanja, potreben za konvergenco.

Predpogojevalnik Značilnosti Tipična uporaba
SSOR Standardni predpogojevalnik; podpira večbarvno urejanje. Prva izbira za preizkus; široko uporabljen v strukturni analizi.
Diagonalno skaliranje Lahek predpogojevalnik z uporabo diagonalnih členov. Kadar je zaželen nizek računski strošek.
BILU Blokovna nepopolna faktorizacija LU. Možnost za probleme, ki s SSOR težko konvergirajo.
AMG (Trilinos-ML) Algebraična večmrežna metoda prek zunanje knjižnice Trilinos-ML. Možnost za velike probleme ali probleme, kjer prevladujejo hierarhične komponente napake.
AMG (SA-AMG) Algebraična večmrežna metoda vrste Smoothed Aggregation, vgrajena v HEC-MW. Enako področje uporabe kot zgoraj; možnost, kadar se AMG uporablja brez dodajanja zunanje knjižnice.
SAINV Redek približni inverz. Specializirana možnost predpogojevanja za kontaktne probleme ali okolja s porazdeljenim pomnilnikom.
RIF Robustna nepopolna faktorizacija. Druga možnost nepopolne faktorizacije.

SSOR je standardna izbira, pri vzporednosti OpenMP pa se uporablja različica z večbarvnim urejanjem. Diagonalno skaliranje je računsko nezahtevno, vendar je izboljšanje konvergence odvisno od problema. BILU je implementiran kot blokovna nepopolna faktorizacija LU in podpira tudi matrike s poljubnim številom prostostnih stopenj. Pri družini BILU obstaja pot, ki ob divergenci iterativne metode samodejno poveča koeficient diagonalne korekcije SIGMA_DIAG in poskusi znova; način določanja vrednosti je opisan v referenci ključnih besed.

AMG (algebraična večmrežna metoda) ima dve izvedbi: eno, ki uporablja zunanjo knjižnico Trilinos-ML, in SA-AMG, vgrajen v HEC-MW. Izvedbi sta neodvisni ter imata različne zahteve glede konfiguracije gradnje in različne razpoložljive nastavitve.

AMG s Trilinos-ML zahteva, da je ML omogočen ob gradnji. Določiti je mogoče glajevalnik, večmrežni cikel, metodo grobljenja in druge nastavitve; podrobne vrednosti so navedene v referenci ključnih besed.

SA-AMG je predpogojevalnik algebraične večmrežne metode vrste Smoothed Aggregation in ne zahteva Trilinos-ML. Interno pa uporablja LAPACK, zato je potrebna gradnja z omogočenim LAPACK; če je izbran v gradnji brez LAPACK, se program konča, ne da bi začel analizo. Za reševanje na grobi mreži je mogoče v gradnjah z omogočenim MUMPS uporabiti MUMPS; sicer se uporabi vgrajena neposredna metoda za goste matrike.

SA-AMG je namenjen predvsem simetrično pozitivno definitnim sistemom (CG), podpira pa tudi nesimetrične reducirane sisteme, ki nastanejo pri tornem stiku (BiCGSTAB, GMRES in drugi). Podpira 1 (prevajanje toplote), 2 (ravninski problem), 3 (prostorninski element) in 6 (lupina) prostostnih stopenj na vozlišče, ne podpira pa matrik, pri katerih se število prostostnih stopenj med vozlišči razlikuje. Določiti je mogoče reševalnik grobe mreže, večmrežni cikel, stopnjo glajevalnika in druge nastavitve, vendar je pri običajnih analizah mogoče uporabiti privzete vrednosti. Za vrednosti in skladnjo glejte referenco ključnih besed. V gradnjah z omogočenim GPU (OpenACC) se faza uporabe predpogojevalnika izvaja na GPU-ju.

Kadar se SAINV uporablja v vzporedni analizi s stikom ali omejitvami MPC, lahko globina prekrivanja pri dekompoziciji domene vpliva na konvergenco.

Neposredne metode

Neposredne metode rešujejo linearne enačbe s faktorizacijo matrike koeficientov. Ker niso odvisne od števila iteracij, so robustne in so lahko stabilna izbira za analize s kontaktnimi ali omejitvenimi pogoji. Njihova poraba pomnilnika pa narašča z velikostjo problema.

Neposredna metoda Vzporedno okolje Uporaba
MUMPS Vzporedno MPI Rešuje redke matrike z neposredno metodo v okoljih s porazdeljenim pomnilnikom.
MKL Intel MKL / OpenMP Neposredni reševalnik na osnovi Intel MKL. Interno se uporablja Intel PARDISO. Pri več procesih MPI se uporablja pot Cluster MKL. DIRECTmkl je vzdevek za MKL.

Neposredne metode je mogoče uporabljati za simetrične in nesimetrične matrike. MUMPS in MKL zahtevata, da so ustrezne knjižnice povezane ob gradnji. V okoljih brez teh knjižnic ju ni mogoče uporabljati, zato za zahtevane odvisnosti in možnosti CMake glejte vodnik za gradnjo.

FrontISTR vsebuje tudi vgrajeno pot neposrednega reševalnika, ki ne uporablja zunanje knjižnice, vendar je pri običajnih analizah, ki zahtevajo neposredno metodo, praviloma treba najprej razmisliti o MUMPS ali MKL.

Predpogojevanje se pri neposrednih metodah ne uporablja. Tudi če je predpogojevalnik naveden v !SOLVER, se na poti neposrednega reševalnika ne upošteva.

Metode obravnave MPC

Metoda obravnave MPC določa, kako se prostostne stopnje, povezane z večtočkovnimi omejitvami, vključijo v linearne enačbe. Tudi pri istih omejitvenih enačbah v vhodnih podatkih metoda obravnave spremeni lastnosti in konvergenčno obnašanje matrike koeficientov.

Metoda obravnave MPC Značilnost Privzeta uporaba
Kazenska metoda Omejitve približno izpolni z dodajanjem velikih togostnih členov omejitvenim enačbam. Privzeto za neposredne metode.
Eksplicitno izločanje prostostnih stopenj Izloči omejene prostostne stopnje in reši zmanjšani linearni sistem. Privzeto za iterativne metode.

Kazenska metoda je privzeta za neposredne metode, eksplicitno izločanje prostostnih stopenj pa je privzeto za iterativne metode. Prej razpoložljiva metoda MPC-CG je bila odstranjena; ob navedbi MPCMETHOD=2 se izpiše opozorilo in uporabi ustrezna privzeta metoda.

Pri eksplicitnem izločanju prostostnih stopenj se koncentrirane mase, uporabljene v modalni analizi in eksplicitni dinamični analizi, reducirajo z enako transformacijo kot togostna matrika. Ker reducirana masna matrika na splošno ni diagonalna, se kot koncentrirane mase uporabijo vsote njenih vrstic. Pri povezovalnih ali interpolacijskih omejitvah, pri katerih je vsota koeficientov omejitvene enačbe 1, se masa podrejenih prostostnih stopenj porazdeli na nadrejene prostostne stopnje sorazmerno s koeficienti.

Metodo obravnave MPC je mogoče izrecno določiti z MPCMETHOD v !SOLVER. Za pomen in sintakso posamezne vrednosti glejte referenco ključne besede.

Izločanje kontaktnih prostostnih stopenj

Izločanje kontaktnih prostostnih stopenj zmanjša dodatne kontaktne prostostne stopnje, ki jih uvede stik SLAGRANGE, preden se sistem preda linearnemu reševalniku. Izločitev teh kontaktnih prostostnih stopenj lahko izboljša lastnosti linearnega sistema, ki ga obravnava iterativna metoda.

V privzetem samodejnem načinu je izločanje kontaktnih prostostnih stopenj omogočeno za iterativne metode in onemogočeno za neposredne. Pri neposrednih metodah je na voljo pot, ki neposredno reši razširjeni sistem s kontaktnimi prostostnimi stopnjami.

Če je CONTACT_ELIM izrecno določen, je mogoče izločanje kontaktnih prostostnih stopenj izvajati tudi pri uporabi neposredne metode. Za izbiro vrste stika, kontaktnega para in kontaktnega algoritma na strani vhoda glejte stran Stik in vgrajevanje.

Pomožne funkcije

Ocenjevanje pogojnega števila, izpisi matrike in beleženje se lahko uporabljajo za preučevanje konvergence in zmogljivosti reševalnika. Pri običajnih analizah te funkcije niso potrebne in se omogočijo predvsem za razhroščevanje ali ocenjevanje zmogljivosti.

Funkcija Namen Opombe
Ocenjevanje pogojnega števila Izpiše kazalnik pogojnega števila za CG in GMRES. Na voljo v gradnjah z omogočenim LAPACK.
Izpis matrike Shrani matriko in desno stran, posredovano reševalniku. Podpira oblike Matrix Market, CSR in BSR.
DUMPEXIT Konča analizo po izpisu matrike. Uporablja se, kadar je za zunanjo verifikacijo potrebna samo matrika.
ITERLOG Izpiše zgodovino konvergence iterativne metode. Uporablja se za pregled trendov ostanka.
TIMELOG Izpiše čas računanja reševalnika. VERBOSE izpiše podrobnejšo razčlenitev.
STEPLOG Izpiše informacije o koraku. Uporablja se za pregled postopka analize.
LOGLEVEL Izpiše diagnostične informacije, na primer gradnjo hierarhije predpogojevanja AMG. Določi se neodvisno od ITERLOG in TIMELOG. Višja vrednost poveča količino izpisa.

Izpis matrike omogoča pregled matrike koeficientov, sestavljene med analizo, z zunanjimi orodji. Ko je omogočen DUMPEXIT, se analiza konča po shranitvi matrike in desne strani. Ocenjevanje pogojnega števila je poskusna funkcija, ki je na voljo z CG in GMRES ter se lahko uporablja za diagnosticiranje konvergenčnega obnašanja.

Sorodne teme