Pereiti prie turinio

!SOLVER

Sprendiklio valdymas

Privalomi valdymo duomenys.

Parametrai

METHOD =    sprendimo metodas (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
            DIRECT     : tiesioginis metodas, išskyrus kontaktinę analizę (tik nuoseklus vykdymas) (šiuo metu negalimas)
            DIRECTmkl  : tiesioginis metodas naudojant Intel MKL
            MUMPS      : tiesioginis metodas naudojant MUMPS
            Pasirinkus tiesioginį metodą, duomenų eilutės ignoruojamos.
            3 laisvės laipsnių uždavinių iteraciniuose metoduose galima naudoti gijų lygiagretinimą su OpenMP

PRECOND =   iteracinių sprendiklių išankstinio sąlygojimo metodas (1, 2, 3, 5, 10, 11, 12, 22)
            1, 2       : (Block) SSOR (su daugiaspalviu rikiavimu tik 3 laisvės laipsnių uždaviniams)
            3          : (Block) Diagonal Scaling
            5          : AMG naudojant daugiatinklio išankstinio sąlygojimo paketą ML
            10         : Block ILU(0)
            11         : Block ILU(1)
            12         : Block ILU(2)
            22         : AMG su HEC-MW integruotu SA-AMG (Smoothed Aggregation AMG)
            10, 11 ir 12 galima naudoti tik 3 laisvės laipsnių uždaviniams
            22 galima naudoti tik rinkiniuose, kuriuose įjungtas LAPACK
            Vykdant gijų lygiagretinimą su OpenMP rekomenduojami SSOR, diagonalinis mastelio keitimas, ML arba SA-AMG

ITERLOG =   ar išvesti iteracinio sprendiklio konvergavimo istoriją          (YES/NO)(numatytoji reikšmė: NO)

TIMELOG =   ar išvesti sprendiklio skaičiavimo laiką                         (YES/NO/VERBOSE)(numatytoji reikšmė: NO)

LOGLEVEL =  Išankstinio sąlygojimo diagnostinės informacijos išvesties lygis                (sveikasis skaičius)(numatytoji reikšmė: be išvesties)
            Nurodomas nepriklausomai nuo ITERLOG ir TIMELOG
            Kai reikšmė yra 1 arba didesnė, be kita ko, išvedama AMG išankstinio sąlygojimo hierarchijos sandara (PRECOND=5, 22)
            Kai reikšmė yra 2 arba didesnė, išvedama papildoma išsami informacija (pavyzdžiui, atminties naudojimas)

USEJAD =    ar naudoti rikiavimą vektoriniams procesoriams                    (YES/NO)(numatytoji reikšmė: NO)
            Galioja tik tada, kai 3 laisvės laipsnių uždaviniui naudojamas iteracinis metodas

SCALING =   ar masteliuoti matricą taip, kad įstrižainės elementai būtų 1     (YES/NO)(numatytoji reikšmė: NO)
            Galioja tik tada, kai 3 laisvės laipsnių uždaviniui naudojamas iteracinis metodas

DUMPTYPE =  matricos išklotinės formatas (NONE, MM, CSR, BSR) (daugiausia derinimui)
            NONE : išklotinės nekurti (numatytoji reikšmė)
            MM   : Matrix Market formatas
            CSR  : Compressed Sparse Row (CSR) formatas
            BSR  : Blocked CSR formatas

DUMPEXIT =  baigti programą iš karto po matricos išklotinės sukūrimo          (YES/NO)(numatytoji reikšmė: NO)

MPCMETHOD = daugiataškių suvaržymų apdorojimo metodas (1, 3)
            1: baudos metodas (numatytasis naudojant tiesioginį metodą)
            3: išreikštinis laisvės laipsnių eliminavimas (numatytasis naudojant iteracinį metodą)
            MPC-CG metodas (2) pašalintas. Nurodžius 2, pateikiamas įspėjimas ir naudojamas numatytasis metodas.

ESTCOND =   sąlygotumo skaičiaus įverčio dažnis (eksperimentinis)
            Sąlygotumo skaičius įvertinamas kas nurodytą iteracijų intervalą ir iteracijų pabaigoje
            Nurodžius 0, vertinimas neatliekamas

RECOMPUTE_RESIDUAL = Liekanos vektoriaus perskaičiavimo dažnis
            Galioja tik tada, kai METHOD nurodytas CG, BiCGSTAB, GPBiCG arba PipeCG
            Iteraciniai metodai atnaujina liekanos vektorių rekurentine formule, todėl kaupiasi apvalinimo paklaidos
            Kas nurodytą iteracijų intervalą liekanos vektorius perskaičiuojamas iš {b}-[A]{x}
            Nurodžius 0, naudojama kiekvienam metodui numatytoji reikšmė (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
            Nurodžius neigiamą reikšmę, periodinis perskaičiavimas neatliekamas
            Perskaičiavimas konvergavimo kriterijaus įvykdymui patvirtinti visada atliekamas nepriklausomai nuo šio nustatymo
            Jei periodas per trumpas, padidėja ne tik matricos ir vektoriaus sandaugų skaičius
            bet gali pablogėti pats konvergavimas arba konvergavimas gali visai nebevykti
            Jei pakeičiate numatytąją reikšmę, patikrinkite konvergavimo istoriją ir galutinę santykinę liekaną

METHOD2 =   sprendimo metodas 2 (BiCGSTAB, GMRES, GPBiCG) (eksperimentinis)
            Galioja tik tada, kai METHOD nurodytas CG
            Jei CG diverguoja, automatiškai persijungiama į antrinį metodą ir sprendimas tęsiamas
            Kitiems parametrams ir duomenų eilutėms naudojamos tos pačios reikšmės

CONTACT_ELIM = nurodo, ar kontaktinėje analizėje atliekamas laisvės laipsnių eliminavimas (0,1)
               0: laisvės laipsnius eliminuoti tik naudojant iteracinį metodą (numatytoji reikšmė)
               1: laisvės laipsnius eliminuoti visada (taip pat naudojant tiesioginį metodą)

** Nuo 2-osios eilutės **

(2-oji eilutė) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
Kintamasis Atributas Aprašymas
NITER I Iteracijų skaičius (numatytoji reikšmė: 100)
iterPREmax I Additive Schwarz išankstinio sąlygojimo iteracijų skaičius (numatytoji reikšmė: 1)
(Rekomenduojama reikšmė: 1; kai kuriuose lygiagrečiuose skaičiavimuose gali būti veiksminga 2)
NREST I Krylov poerdvių skaičius (numatytoji reikšmė: 10)
(Galioja tik tada, kai sprendimo metodu pasirinktas GMRES)
NCOLOR_IN I Tikslinis spalvų skaičius daugiaspalviame rikiavime (numatytoji reikšmė: 10)
(Galioja tik tada, kai OpenMP gijų skaičius yra 2 arba didesnis)
RECYCLEPRE I Išankstinio sąlygojimo parengties informacijos pakartotinio naudojimo kartų skaičius (numatytoji reikšmė: 3)
(Galioja tik netiesinėje analizėje)
(3-ioji eilutė) RESID, SIGMA_DIAG, SIGMA
Kintamasis Atributas Aprašymas
RESID R Nutraukimo paklaida (numatytoji reikšmė: 1.0e-8)
SIGMA_DIAG R Daugiklis, taikomas įstrižainės elementams skaičiuojant išankstinio sąlygojimo matricą (numatytoji reikšmė: 1.0)
(Jei naudojant ILU išankstinį sąlygojimą įvyksta dalyba iš nulio arba divergencija, uždavinys gali konverguoti nurodžius reikšmę, didesnę už 1.0)
SIGMA R Nenaudojamas (numatytoji reikšmė: 0.0)

Kai PRECOND=5 (neprivaloma)

Jei PRECOND nustatyta reikšmė nėra 5 arba 22, 4-oji eilutė ignoruojama.

(4-oji eilutė) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
Kintamasis Atributas Aprašymas
ML_CoarseSolver I ML stambaus tinklelio sprendiklis (1: naudoti glodintuvą, 2: KLU (nuoseklus tiesioginis metodas), 3: MUMPS (lygiagretus tiesioginis metodas)) (numatytoji reikšmė: 1)
(Rekomenduojama: 3 arba 2 sudėtingiems uždaviniams, 1 įprastiems uždaviniams)
ML_Smoother I ML glodintuvas (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (numatytoji reikšmė: 1)
(Rekomenduojama: 1)
ML_MGCycle I ML daugiatinklio ciklas (1: V-cycle, 2: W-cycle, 3: Full-V-cycle) (numatytoji reikšmė: 1)
(Rekomenduojama: 2 sudėtingiems uždaviniams, 1 įprastiems uždaviniams)
ML_MaxLevels I Didžiausias ML lygių skaičius (numatytoji reikšmė: 10)
(Ypač sudėtingiems uždaviniams naudokite tiesioginį stambaus tinklelio sprendiklį ir 2 lygius (arba 3, jei trūksta atminties); įprastiems uždaviniams rekomenduojama 10)
ML_CoarseningScheme I ML stambinimo schema (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (numatytoji reikšmė: 1)
(Rekomenduojama: 1 arba 5)
ML_NumSweep I ML glodintuvo perėjimų skaičius (Chebyshev atveju – polinomo laipsnis) (numatytoji reikšmė: 2)
(Rekomenduojama: 2 Chebyshev atveju, 1 SymBlockGaussSeidel atveju)

Kai PRECOND=22 (neprivaloma)

Jei PRECOND nustatyta reikšmė nėra 22, 5-oji eilutė ignoruojama. Ketvirtąją ir penktąją eilutes galima praleisti visas, taip pat galima praleisti kiekvienos eilutės pabaigoje esančius elementus. Kiekvienam elementui, nurodytam kaip 0, naudojama numatytoji reikšmė.

Ketvirtosios eilutės 1–7 elementai išdėstyti ta pačia tvarka kaip PRECOND=5 (ML) parinkčių eilutėje, todėl ML parinkčių eilutę galima pakartotinai naudoti nepakeistą. 8–10 elementai skirti tik SA-AMG.

(4-oji eilutė) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (nenaudojama), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (nenaudojama)
Kintamasis Atributas Aprašymas
SA_CoarseSolver I Stambaus tinklelio sprendiklis (0: automatiškai, 1: naudoti glodintuvą, 2: tankiosios matricos tiesioginis metodas, 3: MUMPS (lygiagretusis tiesioginis metodas)) (numatytoji reikšmė: 0)
(Automatiniu režimu MUMPS naudojamas rinkiniuose, kuriuose MUMPS įjungtas; kitu atveju naudojamas tankiosios matricos tiesioginis metodas)
SA_Smoother I Glodintuvas (0 arba 1: Chebyshev) (numatytoji reikšmė: 0)
(Palaikomas tik Chebyshev. Nurodžius kitą reikšmę, pateikiamas įspėjimas ir naudojamas Chebyshev)
SA_MGCycle I Daugiatinklio ciklas (0: numatytasis (W ciklas), 1: V ciklas, 2: W ciklas) (numatytoji reikšmė: 0)
(Visas V ciklas nepalaikomas)
SA_MaxLevels I Didžiausias lygių skaičius (numatytoji reikšmė: 20)
(nenaudojama) I Vieta, atitinkanti ML stambinimo schemą. Kadangi SA-AMG visada naudoja nesusietą agregavimą, nenulinė reikšmė sukelia įspėjimą ir yra ignoruojama
SA_ChebyDegree I Chebyshev glodintuvo polinomo laipsnis (numatytoji reikšmė: 2)
SA_CoarseSize I Stambaus tinklelio ribinis dydis (numatytoji reikšmė: 50000, kai MUMPS naudojamas kaip stambaus tinklelio sprendiklis; kitu atveju 100)
SA_MaxAggSize I Didžiausias agregato dydis (numatytoji reikšmė: 96)
SA_GalerkinLowMem I Stambaus tinklelio matricos skaičiavimo metodas (0: įprastas (pirmenybė teikiama spartai), teigiama reikšmė: taupoma atmintis) (numatytoji reikšmė: 0)
(Nurodykite teigiamą reikšmę, jei nustatymo metu nepakanka atminties)
(nenaudojama) I Rezervuota būsimiems plėtiniams

Penktoji eilutė skirta tik SA-AMG, todėl ML jos neskaito.

(5-oji eilutė) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
Kintamasis Atributas Aprašymas
SA_Theta R Stipriųjų jungčių nustatymo slenkstis (numatytoji reikšmė: 0.0)
(Kai reikšmė 0.0, nenulinė matricos struktūra tiesiogiai naudojama kaip grafas)
SA_ChebyAlpha R Santykis, nustatantis Chebyshev glodintuvo tikrinių verčių intervalo apatinę ribą (numatytoji reikšmė: 20.0)
SA_Safety R Saugos koeficientas, taikomas įvertintai didžiausiai tikrinei vertei (numatytoji reikšmė: 1.1)
SA_TaperK R Stambinimo laipsniškumo koeficientas K (numatytoji reikšmė: 100)
(Nuo 2 lygio stambinama laipsniškiau, kad liktų bent maždaug K agregatų. Neigiama reikšmė laipsniškumą išjungia)
SA_AggOrder R Agregavimo perėjimo tvarka (0: numatytoji (BFS tvarka), 1: BFS tvarka, 2: mazgų numerių maišos tvarka (eksperimentinė), 3: didėjanti laipsnio tvarka (eksperimentinė), 4: mažėjanti laipsnio tvarka (eksperimentinė), neigiama reikšmė: mazgų numerių tvarka) (numatytoji reikšmė: 0)
SA_MinAggSize R Mažiausias agregato dydis (numatytoji reikšmė: 3)
SA_Verify R Ar vykdyti savitikrą nustatymo metu (0: ne, teigiama reikšmė: taip) (numatytoji reikšmė: 0) (daugiausia derinimui)
SA_DumpVTK R Ar išvesti aukščiausio lygio agregavimą VTK formatu (0: be išvesties, teigiama reikšmė: išvesti) (numatytoji reikšmė: 0) (daugiausia derinimui)

Pavyzdžiai

Naudokite CG su SSOR išankstiniu sąlygojimu ir nustatykite didžiausią iteracijų skaičių 10000, o nutraukimo paklaidą – 1.0e-8

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

Naudokite GMRES su SSOR išankstiniu sąlygojimu ir nustatykite Krylov poerdvių skaičių 40, o tikslinį daugiaspalvio rikiavimo spalvų skaičių – 100

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

Naudokite CG su ILU(0) išankstiniu sąlygojimu ir nustatykite įstrižainės elementams taikomą daugiklį skaičiuojant išankstinio sąlygojimo matricą į 1.1

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

CG išankstiniam sąlygojimui naudokite ML pagrįstą AMG

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

CG išankstiniam sąlygojimui naudokite ML pagrįstą AMG, o stambaus tinklelio sprendikliui – MUMPS (sudėtingiems uždaviniams)

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

CG išankstiniam sąlygojimui naudokite ML pagrįstą AMG, o daugiatinklio ciklui – W-cycle (sudėtingiems uždaviniams)

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

CG išankstiniam sąlygojimui naudokite ML pagrįstą AMG, stambaus tinklelio sprendikliui naudokite MUMPS ir nustatykite didžiausią lygių skaičių 2 (labai sudėtingiems uždaviniams)

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

Naudokite HEC-MW integruotą SA-AMG kaip CG išankstinį sąlygiklį

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

Naudokite SA-AMG kaip CG išankstinį sąlygiklį, o MUMPS – kaip stambaus tinklelio sprendiklį

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

Trinties kontakto analizėje naudokite BiCGSTAB su SA-AMG išankstiniu sąlygojimu ir išveskite AMG išankstinio sąlygiklio hierarchijos sandarą

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