Pereiti prie turinio

Sprendikliai ir išankstinis sąlygojimas

FrontISTR tiesiniai sprendikliai konfigūruojami pasirenkant tiesioginį arba iteracinį metodą; iteraciniai metodai tiesinėms lygtims spręsti derinami su išankstiniu sąlygojimu. MPC apdorojimo metodas ir kontaktinių laisvės laipsnių eliminavimas yra pagalbiniai pasirinkimai, nustatantys, kaip tvarkoma tiesinė sistema su daugiataškiais arba kontaktiniais apribojimais.

Funkcijų apžvalga

Sprendiklio ir išankstinio sąlygojimo nustatymus sudaro toliau išvardyti pasirinkimai. Pirmiausia kaip tiesinį sprendiklį pasirinkite iteracinį arba tiesioginį metodą. Išankstinis sąlygojimas derinamas tik su iteraciniu metodu.

Kategorija Pagrindinės parinktys Paskirtis
Iteraciniai metodai CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN Dideles retas matricas sprendžia palyginti taupiai naudodami atmintį.
Iteracinių metodų išankstinis sąlygojimas SSOR, įstrižinis mastelio keitimas, BILU, AMG, SAINV, RIF Gerina iteracinių metodų konvergenciją. Su tiesioginiais metodais nenaudojamas.
Tiesioginiai metodai MUMPS, MKL Patikimai sprendžia tiesines lygtis faktorizuodami matricą.
MPC apdorojimo metodai Baudos metodas, MPC-CG metodas, tiesioginis laisvės laipsnių eliminavimas Įtraukia daugiataškius apribojimus į tiesinę sistemą.
Kontaktinių laisvės laipsnių eliminavimas Automatinis, visada įjungtas Valdo papildomų kontaktinių laisvės laipsnių, kuriuos įveda SLAGRANGE kontaktas, apdorojimą.
Pagalbinės funkcijos Sąlygotumo skaičiaus įvertinimas, matricos išklotinė, žurnalas Padeda derinti, vertinti konvergenciją ir našumą.

Lygiagrečiam vykdymui srities skaidymu pagrįstą MPI lygiagretumą galima derinti su OpenMP gijų lygiagretumu. Iteraciniai metodai yra standartinis pasirinkimas didelio masto lygiagrečiosioms analizėms, o tiesioginiai metodai naudojami, kai susietos reikiamos bibliotekos ir reikia patikimesnio sprendimo.

Sprendiklio ir išankstinio sąlygojimo pasirinkimas

Pirmiausia nuspręskite, ar naudoti iteracinį, ar tiesioginį metodą. Jei pasirenkamas iteracinis metodas, tada pasirinkite išankstinio sąlygojimo metodą.

Sprendimo kriterijus Rekomenduojamas būdas
Uždavinio dydis Mažiems ir vidutiniams uždaviniams tiesioginiai metodai yra stabilūs ir paprasti naudoti. Dideliems uždaviniams iteraciniai metodai taupiau naudoja atmintį.
Matricos simetrija Simetriniams teigiamai apibrėžtiems uždaviniams svarstykite CG. Nesimetriniams uždaviniams svarstykite BiCGSTAB, GMRES, GPBiCG ar panašius metodus.
Lygiagrečioji aplinka MPI lygiagretumo atveju iteracinį metodą derinkite su srities skaidymu. OpenMP lygiagretumo išankstiniam sąlygojimui svarstykite daugiaspalvę SSOR realizaciją.
Išankstinis sąlygojimas (naudojant iteracinį metodą) Pirmiausia išbandykite numatytąjį SSOR, tada svarstykite AMG. SSOR skaičiavimo kaina maža, kai konvergencija gera; AMG tinka sudėtingiems didelio masto uždaviniams.
Kontaktas ir MPC Analizėse su kontaktu arba daugiataškiais apribojimais MPC apdorojimo metodas ir kontaktinių laisvės laipsnių eliminavimas veikia konvergenciją ir patikimumą.
Išorinės bibliotekos MUMPS, MKL ir AMG galimi kompiliacijose, susietose su atitinkamomis bibliotekomis.

Standartinėms analizėms paprastai pakanka numatytosios konvergencijos tolerancijos, didžiausio iteracijų skaičiaus ir išankstinio sąlygojimo įstrižinės pataisos koeficiento. Tik kai konvergencija lėta arba sprendinys diverguoja, iš eilės persvarstykite iteracinį metodą, išankstinio sąlygojimo metodą, MPC apdorojimo metodą ir kontaktinių laisvės laipsnių eliminavimą. Parametrų reikšmes ir sintaksę žr. !SOLVER raktažodžio žinyne.

Iteraciniai metodai

Iteraciniai metodai dideles retas sistemas sprendžia pakartotinai atnaujindami sprendinį matricos ir vektoriaus sandaugomis bei išankstiniu sąlygojimu. FrontISTR pateikia šiuos iteracinius metodus.

Iteracinis metodas Tipinis taikymas Pastabos
CG Simetriniai teigiamai apibrėžti uždaviniai Standartinis kandidatas konstrukcijų ir šilumos laidumo analizei.
BiCGSTAB Nesimetriniai uždaviniai Kandidatas, kai kontaktas ar susiejimo efektai sukelia ryškią nesimetriją.
GMRES Nesimetriniai uždaviniai Naudojamas su nurodytu Krylovo poerdvio dydžiu.
GPBiCG Nesimetriniai uždaviniai Naudojamas kaip patobulintas BiCGSTAB šeimos metodas.
GMRESR Nesimetriniai uždaviniai, išplėstiniai taikymai Parinktis, naudojanti GMRES įdėtiniu pavidalu.
GMRESREN Nesimetriniai uždaviniai, išplėstiniai taikymai Rekursinis GMRESR šeimos variantas.

CG daro prielaidą, kad matrica yra simetrinė ir teigiamai apibrėžta. Jei trinties kontaktas, nesimetrinis apribojimų apdorojimas, susiejimo efektai ar panašūs veiksniai sukelia ryškią nesimetriją, svarstykite BiCGSTAB, GMRES, GPBiCG ar kitą nesimetrinį sprendiklį. Naudojant GMRES, didesnis Krylovo poerdvis gali pagerinti konvergenciją, tačiau didina atminties sąnaudas.

Kai nurodytas METHOD2, FrontISTR gali persijungti į alternatyvų iteracinį metodą, jei CG diverguoja arba sugenda. Ši funkcija yra atsarginis kelias atvejams, kai pagrindinis sprendiklis yra CG; alternatyvus metodas naudoja tuos pačius likusius nustatymus ir duomenų eilutes kaip pagrindinis sprendiklis.

Išankstinis sąlygojimas

Išankstinis sąlygojimas transformuoja koeficientų matricą, kad pagerintų iteracinio metodo konvergenciją, ir taikomas tik pasirinkus iteracinį metodą. Tiesioginiai metodai išankstinio sąlygojimo nenaudoja. Net tam pačiam iteraciniam metodui išankstinio sąlygojimo pasirinkimas gali smarkiai pakeisti konvergencijai reikalingų iteracijų skaičių ir skaičiavimo laiką.

Išankstinio sąlygojimo metodas Ypatybės Tipinis taikymas
SSOR Standartinis metodas; palaiko daugiaspalvį išdėstymą. Pirmasis kandidatas; plačiai naudojamas konstrukcijų analizėje.
Įstrižinis mastelio keitimas Lengvas metodas, naudojantis įstrižines reikšmes. Kai svarbi maža skaičiavimo kaina.
BILU Blokinė nepilnoji LU faktorizacija. Kandidatas uždaviniams, kuriems su SSOR sunku pasiekti konvergenciją.
AMG Algebraic Multigrid, naudojantis Trilinos-ML. Kandidatas didelio masto uždaviniams arba uždaviniams, kuriuose vyrauja hierarchinės paklaidos komponentės.
SAINV Sparse Approximate Inverse. Specializuota parinktis kontaktiniams uždaviniams arba paskirstytosios atminties aplinkoms.
RIF Robust Incomplete Factorization. Kita nepilnosios faktorizacijos parinktis.

SSOR yra standartinis pasirinkimas, o OpenMP lygiagretumo atveju naudojama versija su daugiaspalviu išdėstymu. Įstrižinis mastelio keitimas yra lengvas, nors jo poveikis konvergencijai priklauso nuo uždavinio. BILU realizuotas kaip blokinė nepilnoji LU faktorizacija ir palaiko matricas su bendru laisvės laipsnių skaičiumi. BILU šeimai yra kelias, kuris iteraciniam metodui diverguojant automatiškai padidina įstrižinės pataisos koeficientą SIGMA_DIAG ir bando iš naujo; reikšmės nurodymą žr. raktažodžio žinyne.

AMG naudoja Trilinos-ML, todėl kompiliavimo metu turi būti įjungtas ML. Galima nurodyti glodintuvus, daugiatinklio ciklus, stambinimo metodus ir kitus nustatymus, tačiau išsamias reikšmes žr. raktažodžio žinyne. Kai SAINV naudojamas lygiagrečiojoje analizėje su kontaktu arba MPC apribojimais, srities skaidymo persidengimo gylis gali turėti įtakos konvergencijai.

Tiesioginiai metodai

Tiesioginiai metodai tiesines lygtis sprendžia faktorizuodami koeficientų matricą. Kadangi jie nepriklauso nuo iteracijų skaičiaus, yra patikimi ir gali būti stabilus pasirinkimas analizėms su kontaktinėmis arba apribojimo sąlygomis. Tačiau jų atminties sąnaudos didėja didėjant uždaviniui.

Tiesioginis metodas Lygiagrečioji aplinka Taikymas
MUMPS MPI lygiagretumas Tiesioginiu metodu sprendžia retas matricas paskirstytosios atminties aplinkose.
MKL Intel MKL / OpenMP Intel MKL pagrįstas tiesioginis sprendiklis. Viduje naudojamas Intel PARDISO. Naudojant kelis MPI procesus naudojamas Cluster MKL kelias. DIRECTmkl yra MKL sinonimas.

Tiesioginiai metodai gali būti naudojami tiek simetrinėms, tiek nesimetrinėms matricoms. MUMPS ir MKL reikalauja, kad kompiliavimo metu būtų susietos atitinkamos bibliotekos. Aplinkose be šių bibliotekų jų naudoti negalima, todėl reikiamas priklausomybes ir CMake parinktis žr. kompiliavimo vadove.

FrontISTR taip pat turi įtaisytą tiesioginio sprendiklio kelią be išorinės bibliotekos, tačiau įprastoms analizėms, kurioms reikia tiesioginio metodo, paprastai pirmiausia reikėtų svarstyti MUMPS arba MKL.

Tiesioginiams metodams išankstinis sąlygojimas netaikomas. Net jei !SOLVER nurodytas išankstinio sąlygojimo metodas, tiesioginio sprendiklio kelyje jis nenaudojamas.

MPC apdorojimo metodai

MPC apdorojimo metodas nustato, kaip daugiataškiais apribojimais susieti laisvės laipsniai įtraukiami į tiesines lygtis. Net naudojant tas pačias apribojimo lygtis įvesties duomenyse, apdorojimo metodas keičia koeficientų matricos savybes ir konvergencijos elgseną.

MPC apdorojimo metodas Paskirtis Numatytasis naudojimas
Baudos metodas Apytiksliai tenkina apribojimus, prie apribojimo lygčių pridėdamas didelius standumo narius. Numatytasis tiesioginiams metodams.
MPC-CG metodas Senesnis metodas, iteracinio sprendiklio viduje apdorojantis matricos ir vektoriaus sandaugas su apribojimais. Neberekomenduojamas.
Tiesioginis laisvės laipsnių eliminavimas Eliminuoja apribotus laisvės laipsnius ir sprendžia redukuotą tiesinę sistemą. Numatytasis iteraciniams metodams.

Baudos metodas yra numatytasis tiesioginiams metodams, o tiesioginis laisvės laipsnių eliminavimas — iteraciniams metodams. MPC-CG yra senesnė suderinamumo parinktis ir naujoms analizėms nerekomenduojama; paprastai naudokite tiesioginį laisvės laipsnių eliminavimą arba pasirinkto tiesioginio metodo numatytąjį apdorojimą.

MPC apdorojimo metodą galima aiškiai nurodyti !SOLVER parametru MPCMETHOD. Kiekvienos reikšmės prasmę ir sintaksę žr. raktažodžio žinyne.

Kontaktinių laisvės laipsnių eliminavimas

Kontaktinių laisvės laipsnių eliminavimas sumažina SLAGRANGE kontakto įvestus papildomus kontaktinius laisvės laipsnius prieš perduodant sistemą tiesiniam sprendikliui. Šių kontaktinių laisvės laipsnių eliminavimas gali pagerinti iteracinio metodo sprendžiamos tiesinės sistemos savybes.

Numatytuoju automatiniu režimu kontaktinių laisvės laipsnių eliminavimas įjungtas iteraciniams metodams ir išjungtas tiesioginiams metodams. Tiesioginiams metodams numatytas kelias, tiesiogiai sprendžiantis išplėstą sistemą su kontaktiniais laisvės laipsniais.

Kai CONTACT_ELIM nurodomas aiškiai, kontaktinių laisvės laipsnių eliminavimą galima atlikti ir naudojant tiesioginį metodą. Kontakto tipo, kontaktinės poros ir kontakto algoritmo pasirinkimus įvestyje žr. Kontakto ir įterpimo puslapyje.

Pagalbinės funkcijos

Sąlygotumo skaičiaus įvertinimą, matricos išklotines ir žurnalų išvestį galima naudoti sprendiklio konvergencijai ir našumui tirti. Įprastoms analizėms šios funkcijos nereikalingos ir daugiausia įjungiamos derinimui arba našumui vertinti.

Funkcija Paskirtis Pastabos
Sąlygotumo skaičiaus įvertinimas Išveda CG ir GMRES sąlygotumo skaičiaus indikatorių. Galima kompiliacijose su įjungta LAPACK.
Matricos išklotinė Išsaugo sprendikliui perduodamą matricą ir dešiniąją pusę. Palaiko Matrix Market, CSR ir BSR formatus.
DUMPEXIT Nutraukia analizę išvedus matricą. Naudojama, kai išoriniam tikrinimui reikia tik matricos.
ITERLOG Išveda iteracinio metodo konvergencijos istoriją. Naudojama liekamųjų dydžių kitimui tikrinti.
TIMELOG Išveda sprendiklio skaičiavimo laiką. VERBOSE pateikia išsamesnį išskaidymą.
STEPLOG Išveda žingsnio informaciją. Naudojama analizės eigai tikrinti.

Matricos išklotinė leidžia analizėje surinktą koeficientų matricą tirti išorinėmis priemonėmis. Kai įjungtas DUMPEXIT, išsaugojus matricą ir dešiniąją pusę analizė nutraukiama. Sąlygotumo skaičiaus įvertinimas yra eksperimentinė funkcija, galima su CG ir GMRES, ir gali būti naudojama konvergencijos elgsenai diagnozuoti.

Susijusios temos

AI-assisted translation May contain errors Official docs Status