!SOLVER¶
Upravljanje rješavačem
Obvezni upravljački podaci.
Parametri¶
METHOD = metoda rješavanja (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : izravna metoda osim za kontaktnu analizu (samo serijska obrada) (trenutačno nije dostupno)
DIRECTmkl : izravna metoda pomoću Intel MKL
MUMPS : izravna metoda pomoću MUMPS-a
Kada je odabrana izravna metoda, podatkovni retci se zanemaruju.
Iterativne metode za probleme s 3 stupnja slobode podržavaju paralelno izvođenje niti pomoću OpenMP-a
PRECOND = metoda predkondicioniranja za iterativne rješavače (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : (blokovski) SSOR (s višebojnim uređivanjem samo za probleme s 3 stupnja slobode)
3 : (blokovsko) dijagonalno skaliranje
5 : AMG pomoću paketa ML za višemrežno predkondicioniranje
10 : blokovski ILU(0)
11 : blokovski ILU(1)
12 : blokovski ILU(2)
22 : AMG s ugrađenim SA-AMG-om (Smoothed Aggregation AMG) sustava HEC-MW
10, 11 i 12 dostupni su samo za probleme s 3 stupnja slobode
22 je dostupan samo u izvedbama u kojima je omogućen LAPACK
Za paralelno izvođenje dretvama OpenMP preporučuju se SSOR, dijagonalno skaliranje, ML ili SA-AMG
ITERLOG = Ispisivati povijest konvergencije iterativnog rješavača ili ne (YES/NO)(Zadano: NO)
TIMELOG = Ispisivati vrijeme računanja rješavača ili ne (YES/NO/VERBOSE)(Zadano: NO)
LOGLEVEL = Razina ispisa dijagnostičkih podataka o predkondicioniranju (cijeli broj)(zadano: bez ispisa)
Zadaje se neovisno o ITERLOG i TIMELOG
Za vrijednost 1 ili veću ispisuje se, među ostalim, hijerarhijska struktura AMG predkondicioniranja (PRECOND=5, 22)
Za vrijednost 2 ili veću ispisuju se dodatne pojedinosti (primjerice potrošnja memorije)
USEJAD = Koristiti redoslijed za vektorske procesore ili ne (YES/NO)(Zadano: NO)
Vrijedi samo kada se za problem s 3 stupnja slobode koristi iterativna metoda
SCALING = Skalirati matricu tako da su dijagonalni elementi jednaki 1 ili ne (YES/NO)(Zadano: NO)
Vrijedi samo kada se za problem s 3 stupnja slobode koristi iterativna metoda
DUMPTYPE = format ispisa matrice (NONE, MM, CSR, BSR) (uglavnom za otklanjanje pogrešaka)
NONE : bez ispisa (zadano)
MM : format Matrix Market
CSR : format Compressed Sparse Row (CSR)
BSR : format Blocked CSR
DUMPEXIT = završetak programa odmah nakon ispisa matrice (YES/NO)(zadano: NO)
MPCMETHOD = metoda obrade višetočkastih ograničenja (1, 3)
1: kaznena metoda (zadano pri uporabi izravne metode)
3: eksplicitna eliminacija stupnjeva slobode (zadano pri uporabi iterativne metode)
MPC-CG metoda (2) uklonjena je. Ako se zada 2, ispisuje se upozorenje i koristi se zadana metoda.
ESTCOND = Učestalost procjene broja uvjetovanosti (eksperimentalno)
Procijenite broj uvjetovanosti u svakom zadanom intervalu iteracija i na kraju iteracija
Ako je zadano 0, procjena se ne provodi
RECOMPUTE_RESIDUAL = Učestalost ponovnog izračunavanja vektora reziduala
Vrijedi samo kada je za METHOD zadan CG, BiCGSTAB, GPBiCG ili PipeCG
Iterativne metode ažuriraju vektor reziduala rekurentnom relacijom pa se nakupljaju pogreške zaokruživanja
U svakom zadanom intervalu iteracija vektor reziduala ponovno se izračunava iz {b}-[A]{x}
Ako je zadano 0, upotrebljava se zadana vrijednost pojedine metode (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Ako je zadana negativna vrijednost, periodično ponovno izračunavanje se ne provodi
Ponovno izračunavanje radi potvrde nakon ispunjenja kriterija konvergencije uvijek se provodi, neovisno o ovoj postavci
Ako je period prekratak, ne povećava se samo broj umnožaka matrice i vektora
nego se može pogoršati sama konvergencija ili se konvergencija može potpuno izgubiti
Ako promijenite zadanu vrijednost, provjerite povijest konvergencije i konačni relativni rezidual
METHOD2 = metoda rješavanja 2 (BiCGSTAB, GMRES, GPBiCG) (eksperimentalno)
Vrijedi samo kada je za METHOD zadan CG
Ako CG divergira, automatski se prelazi na sekundarnu metodu i rješavanje se nastavlja
Za ostale parametre i retke podataka koriste se iste vrijednosti
CONTACT_ELIM = Određuje hoće li se u kontaktnoj analizi provoditi eliminacija stupnjeva slobode (0,1)
0: eliminacija stupnjeva slobode provodi se samo pri uporabi iterativne metode (zadano)
1: eliminacija stupnjeva slobode provodi se uvijek (uključujući uporabu izravne metode)
** Drugi i sljedeći retci **
| Naziv varijable | Vrsta | Opis |
|---|---|---|
| NITER | I | Broj iteracija (zadano: 100) |
| iterPREmax | I | Broj iteracija predkondicioniranja Additive Schwarz (zadano: 1) (preporučena vrijednost: 1; u nekim paralelnim izračunima 2 može biti učinkovito) |
| NREST | I | Veličina Krylovljeva potprostora (zadano: 10) (Vrijedi samo kada je GMRES odabran kao metoda rješavanja) |
| NCOLOR_IN | I | Ciljani broj boja za višebojno uređivanje (zadano: 10) (vrijedi samo kada je broj OpenMP niti 2 ili veći) |
| RECYCLEPRE | I | Broj ponovnih uporaba informacija o postavljanju predkondicionera (zadano: 3) (vrijedi samo u nelinearnoj analizi) |
| Naziv varijable | Vrsta | Opis |
|---|---|---|
| RESID | R | Pogreška prekida (zadano: 1.0e-8) |
| SIGMA_DIAG | R | Faktor skaliranja dijagonalnih članova pri izračunu matrice predkondicioniranja (zadano: 1.0) (ako pri ILU predkondicioniranju nastane dijeljenje nulom ili divergencija, problem se može riješiti zadavanjem vrijednosti veće od 1.0) |
| SIGMA | R | Ne koristi se (zadano: 0.0) |
Kada je PRECOND=5 (neobavezno)¶
Ako je PRECOND postavljen na vrijednost različitu od 5 ili 22, četvrti se redak zanemaruje.
| Naziv varijable | Vrsta | Opis |
|---|---|---|
| ML_CoarseSolver | I | Rješavač grube mreže za ML (1: koristi zaglađivač, 2: KLU (serijska izravna metoda), 3: MUMPS (paralelna izravna metoda)) (zadano: 1) (preporučeno: 3 ili 2 za teško rješive probleme, 1 za uobičajene probleme) |
| ML_Smoother | I | ML zaglađivač (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (zadano: 1) (preporučeno: 1) |
| ML_MGCycle | I | Višemrežni ciklus ML-a (1: V-ciklus, 2: W-ciklus, 3: puni V-ciklus) (zadano: 1) (preporučeno: 2 za teško rješive probleme, 1 za uobičajene probleme) |
| ML_MaxLevels | I | Najveći broj razina ML-a (zadano: 10) (za osobito teško rješive probleme koristite izravni rješavač grube mreže i 2 razine (ili 3 ako nema dovoljno memorije); za uobičajene probleme preporučuje se 10) |
| ML_CoarseningScheme | I | Shema ogrubljivanja ML-a (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (zadano: 1) (preporučeno: 1 ili 5) |
| ML_NumSweep | I | Broj prolaza ML zaglađivača (stupanj polinoma za Chebyshev) (zadano: 2) (preporučeno: 2 za Chebyshev, 1 za SymBlockGaussSeidel) |
Kada je PRECOND=22 (neobavezno)¶
Ako je PRECOND postavljen na vrijednost različitu od 22, peti se redak zanemaruje. Četvrti i peti redak mogu se izostaviti u cijelosti, a mogu se izostaviti i završne stavke u svakom retku. Za svaku stavku zadanu kao 0 primjenjuje se zadana vrijednost.
Stavke od 1 do 7 u četvrtom retku poredane su jednako kao u retku opcija za PRECOND=5 (ML), pa se redak opcija ML-a može ponovno upotrijebiti bez izmjena. Stavke od 8 do 10 svojstvene su SA-AMG-u.
(4. redak) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (ne koristi se), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (ne koristi se)
| Naziv varijable | Vrsta | Opis |
|---|---|---|
| SA_CoarseSolver | I | Rješavač grube mreže (0: automatski, 1: upotrijebi zaglađivač, 2: izravna metoda za gustu matricu, 3: MUMPS (paralelna izravna metoda)) (zadano: 0) (U automatskom načinu MUMPS se primjenjuje u izvedbama u kojima je MUMPS omogućen; inače se primjenjuje izravna metoda za gustu matricu) |
| SA_Smoother | I | Zaglađivač (0 ili 1: Chebyshev) (zadano: 0) (Podržan je samo Chebyshev. Ako se zada druga vrijednost, ispisuje se upozorenje i primjenjuje Chebyshev) |
| SA_MGCycle | I | Višemrežni ciklus (0: zadano (W-ciklus), 1: V-ciklus, 2: W-ciklus) (zadano: 0) (Puni V-ciklus nije podržan) |
| SA_MaxLevels | I | Najveći broj razina (zadano: 20) |
| (ne koristi se) | I | Položaj koji odgovara shemi ogrubljivanja ML-a. Budući da SA-AMG uvijek primjenjuje nepovezanu agregaciju, vrijednost različita od 0 uzrokuje upozorenje i zanemaruje se |
| SA_ChebyDegree | I | Stupanj polinoma Chebyshevljeva zaglađivača (zadano: 2) |
| SA_CoarseSize | I | Granična veličina grube mreže (zadano: 50000 kada se MUMPS primjenjuje kao rješavač grube mreže; inače 100) |
| SA_MaxAggSize | I | Najveća veličina agregata (zadano: 96) |
| SA_GalerkinLowMem | I | Način izračuna matrice grube mreže (0: uobičajen (prednost ima brzina), pozitivna vrijednost: ušteda memorije) (zadano: 0) (Zadajte pozitivnu vrijednost ako tijekom postavljanja nema dovoljno memorije) |
| (ne koristi se) | I | Rezervirano za buduća proširenja |
Peti je redak namijenjen samo SA-AMG-u i ML ga ne čita.
(5. redak) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Naziv varijable | Vrsta | Opis |
|---|---|---|
| SA_Theta | R | Prag za određivanje jakih veza (zadano: 0.0) (Pri 0.0 nenulta se struktura matrice izravno primjenjuje kao graf) |
| SA_ChebyAlpha | R | Omjer koji određuje donju granicu intervala svojstvenih vrijednosti na koji djeluje Chebyshevljev zaglađivač (zadano: 20.0) |
| SA_Safety | R | Faktor sigurnosti koji se primjenjuje na procijenjenu najveću svojstvenu vrijednost (zadano: 1.1) |
| SA_TaperK | R | Koeficijent K postupnog ogrubljivanja (zadano: 100) (Od razine 2 ogrubljivanje je postupnije kako bi ostalo najmanje približno K agregata. Negativna vrijednost isključuje postupnost) |
| SA_AggOrder | R | Redoslijed obilaska agregacije (0: zadano (BFS-redoslijed), 1: BFS-redoslijed, 2: raspršeni redoslijed brojeva čvorova (eksperimentalno), 3: uzlazni redoslijed stupnja (eksperimentalno), 4: silazni redoslijed stupnja (eksperimentalno), negativna vrijednost: redoslijed brojeva čvorova) (zadano: 0) |
| SA_MinAggSize | R | Najmanja veličina agregata (zadano: 3) |
| SA_Verify | R | Treba li tijekom postavljanja provesti samoprovjeru (0: ne, pozitivna vrijednost: da) (zadano: 0) (uglavnom za ispravljanje pogrešaka) |
| SA_DumpVTK | R | Treba li agregaciju najviše razine ispisati u formatu VTK (0: bez ispisa, pozitivna vrijednost: ispis) (zadano: 0) (uglavnom za ispravljanje pogrešaka) |
Primjeri¶
Koristite CG sa SSOR predkondicioniranjem te postavite maksimalni broj iteracija na 10000 i pogrešku odsijecanja na 1.0e-8
Koristite GMRES sa SSOR predkondicioniranjem te postavite veličinu Krylovljeva potprostora na 40 i ciljani broj boja za višebojno uređenje na 100
Koristite CG s ILU(0) predkondicioniranjem te postavite faktor skaliranja primijenjen na dijagonalne članove pri izračunu matrice predkondicioniranja na 1.1
Koristite AMG putem ML-a kao predkondicioner za CG
Koristite AMG putem ML-a kao predkondicioner za CG i MUMPS kao rješavač grube mreže (za teške probleme)
Koristite AMG putem ML-a kao predkondicioner za CG i W-ciklus kao višemrežni ciklus (za teške probleme)
Koristite AMG putem ML-a kao predkondicioner za CG, MUMPS kao rješavač grube mreže te postavite maksimalni broj razina na 2 (za vrlo teške probleme)
Upotrijebite SA-AMG ugrađen u HEC-MW kao predkondicioner za CG
Upotrijebite SA-AMG kao predkondicioner za CG, a MUMPS kao rješavač grube mreže
U analizi dodira s trenjem upotrijebite BiCGSTAB sa SA-AMG predkondicioniranjem i ispišite hijerarhijsku strukturu AMG predkondicionera