Preskoči na sadržaj

!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 **

(2. redak) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
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)
(3. redak) RESID, SIGMA_DIAG, SIGMA
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.

(4. redak) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
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

!SOLVER, METHOD=CG, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Koristite GMRES sa SSOR predkondicioniranjem te postavite veličinu Krylovljeva potprostora na 40 i ciljani broj boja za višebojno uređenje na 100

!SOLVER, METHOD=GMRES, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1, 40, 100
  1.0e-8, 1.0, 0.0

Koristite CG s ILU(0) predkondicioniranjem te postavite faktor skaliranja primijenjen na dijagonalne članove pri izračunu matrice predkondicioniranja na 1.1

!SOLVER, METHOD=CG, PRECOND=10, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.1, 0.0

Koristite AMG putem ML-a kao predkondicioner za CG

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Koristite AMG putem ML-a kao predkondicioner za CG i MUMPS kao rješavač grube mreže (za teške probleme)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

Koristite AMG putem ML-a kao predkondicioner za CG i W-ciklus kao višemrežni ciklus (za teške probleme)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  1, 1, 2

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)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3, 1, 1, 2

Upotrijebite SA-AMG ugrađen u HEC-MW kao predkondicioner za CG

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Upotrijebite SA-AMG kao predkondicioner za CG, a MUMPS kao rješavač grube mreže

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

U analizi dodira s trenjem upotrijebite BiCGSTAB sa SA-AMG predkondicioniranjem i ispišite hijerarhijsku strukturu AMG predkondicionera

!SOLVER, METHOD=BiCGSTAB, PRECOND=22, ITERLOG=YES, TIMELOG=YES, LOGLEVEL=1
  10000, 1
  1.0e-8, 1.0, 0.0