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, diagonal scaling, 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, metoda MPC-CG, 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.
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 so na voljo v gradnjah, povezanih z ustreznimi knjižnicami.

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 prevoda 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.

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 Algebraična večmrežna metoda z uporabo Trilinos-ML. Možnost za velike probleme ali probleme, kjer prevladujejo hierarhične komponente napake.
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 uporablja Trilinos-ML, zato mora biti ML omogočen ob gradnji. Določiti je mogoče glajevalnike, večmrežne cikle, metode grobljenja in druge nastavitve; za podrobne vrednosti glejte referenco ključne besede. Kadar se SAINV uporablja v vzporedni analizi s kontaktnimi ali MPC-omejitvami, lahko globina prekrivanja pri razcepu 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.
Metoda MPC-CG Stara metoda, ki znotraj iterativnega reševalnika obravnava matrično-vektorske produkte z omejitvami. Opuščeno.
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. Metoda MPC-CG je možnost za združljivost s starejšimi vhodi in za nove analize ni priporočena; običajno uporabite eksplicitno izločanje prostostnih stopenj ali privzeto obravnavo izbrane neposredne metode.

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.

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

AI-assisted translation May contain errors Official docs Status