Gå till innehållet

!SOLVER

Styrning av lösaren

Obligatoriska styrdata.

Parametrar

METHOD =    Lösningsmetod (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
            DIRECT     : Direktmetod utom för kontaktanalys (endast seriell bearbetning) (för närvarande inte tillgänglig)
            DIRECTmkl  : Direktmetod med Intel MKL
            MUMPS      : Direktmetod med MUMPS
            När en direktmetod väljs ignoreras dataraderna.
            Iterativa metoder för problem med 3 frihetsgrader stöder trådparallell exekvering med OpenMP

PRECOND =   Förkonditioneringsmetod för iterativa lösare (1, 2, 3, 5, 10, 11, 12, 22)
            1, 2       : (Block) SSOR (med flerfärgsordning endast för problem med 3 frihetsgrader)
            3          : (Block) diagonal skalning
            5          : AMG med multigrid-förkonditioneringspaketet ML
            10         : Block ILU(0)
            11         : Block ILU(1)
            12         : Block ILU(2)
            22         : AMG med HEC-MW:s inbyggda SA-AMG (AMG med utjämnad aggregering)
            10, 11 och 12 är endast tillgängliga för problem med 3 frihetsgrader
            22 är endast tillgängligt i byggen där LAPACK är aktiverat
            För OpenMP-trådparallellism rekommenderas SSOR, diagonal skalning, ML eller SA-AMG

ITERLOG =   Om konvergenshistorik för den iterativa lösaren ska matas ut          (YES/NO)(standardvärde: NO)

TIMELOG =   Om lösarens beräkningstid ska matas ut                       (YES/NO/VERBOSE)(standardvärde: NO)

LOGLEVEL =  Utdatanivå för diagnostisk information om förkonditioneraren (heltal)(standard: ingen utdata)
            Anges oberoende av ITERLOG och TIMELOG
            Vid 1 eller högre skrivs hierarkiuppbyggnad och annan information för AMG-förkonditionerare (PRECOND=5,22) ut
            Vid 2 eller högre skrivs mer detaljerad information ut (till exempel minnesanvändning)

USEJAD =    Om ordning för vektorprocessorer ska användas                    (YES/NO)(standardvärde: NO)
            Giltigt endast när en iterativ metod används för ett problem med 3 frihetsgrader

SCALING =   Om matrisen ska skalas så att diagonalposterna är 1       (YES/NO)(standardvärde: NO)
            Giltigt endast när en iterativ metod används för ett problem med 3 frihetsgrader

DUMPTYPE =  Format för matrisdump (NONE, MM, CSR, BSR) (främst för felsökning)
            NONE : Ingen dump (standardvärde)
            MM   : Matrix Market-format
            CSR  : Compressed Sparse Row-format (CSR)
            BSR  : Blockerat CSR-format

DUMPEXIT =  Avsluta programmet omedelbart efter matrisdumpning           (YES/NO)(standardvärde: NO)

MPCMETHOD = Metod för hantering av multipunktbegränsningar (1, 3)
            1: Straffmetod (standardvärde när en direktmetod används)
            3: Explicit eliminering av frihetsgrader (standardvärde när en iterativ metod används)
            MPC-CG-metoden (2) har tagits bort. Om 2 anges ges en varning och standardmetoden används.

ESTCOND =   Frekvens för uppskattning av konditionstal (experimentell)
            Uppskatta konditionstalet vid varje angivet iterationsintervall och i slutet av iterationerna
            Ingen uppskattning utförs när 0 anges

RECOMPUTE_RESIDUAL = Frekvens för omberäkning av residualvektorn
            Giltigt endast när CG, BiCGSTAB, GPBiCG eller PipeCG anges för METHOD
            Iterativa metoder uppdaterar residualvektorn med en rekursionsformel, vilket gör att avrundningsfel ackumuleras
            Vid varje angivet iterationsintervall beräknas residualvektorn om från {b}-[A]{x}
            När 0 anges används standardvärdet för respektive metod (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
            Om ett negativt värde anges utförs ingen periodisk omberäkning
            Omberäkning för att bekräfta uppfylld konvergens utförs alltid oberoende av denna inställning
            Ett alltför kort intervall ökar inte bara antalet matris-vektorprodukter utan kan också
            försämra själva konvergensen eller göra att lösningen inte konvergerar
            Om standardvärdet ändras, kontrollera konvergenshistoriken och den slutliga relativa residualen

METHOD2 =   Sekundär lösningsmetod (BiCGSTAB, GMRES, GPBiCG) (experimentell)
            Giltigt endast när CG anges för METHOD
            Om CG divergerar växlas automatiskt till den sekundära metoden och lösningen fortsätter
            Samma värden används för övriga parametrar och datarader

CONTACT_ELIM = Anger om eliminering av frihetsgrader utförs i kontaktanalys (0,1)
               0: Utför eliminering av frihetsgrader endast när en iterativ metod används (standardvärde)
               1: Utför alltid eliminering av frihetsgrader (även när en direktmetod används)

** Rad 2 och senare **

(Rad 2) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
Variabelnamn Typ Beskrivning
NITER I Antal iterationer (standardvärde: 100)
iterPREmax I Antal iterationer för Additive Schwarz-förkonditionering (standardvärde: 1)
(Rekommenderat värde: 1; 2 kan vara effektivt i vissa parallellberäkningar)
NREST I Krylov-delrummets storlek (standardvärde: 10)
(Giltigt endast när GMRES väljs som lösningsmetod)
NCOLOR_IN I Målvärde för antal färger vid flerfärgsordning (standardvärde: 10)
(Giltigt endast när antalet OpenMP-trådar är 2 eller fler)
RECYCLEPRE I Antal gånger som information från uppsättningen av förkonditioneraren återanvänds (standardvärde: 3)
(Giltigt endast i icke-linjär analys)
(Rad 3) RESID, SIGMA_DIAG, SIGMA
Variabelnamn Typ Beskrivning
RESID R Konvergenstolerans (standardvärde: 1.0e-8)
SIGMA_DIAG R Skalfaktor som tillämpas på diagonalposterna vid beräkning av förkonditioneringsmatrisen (standardvärde: 1.0)
(Om division med noll eller divergens uppstår med ILU-förkonditionering kan problemet konvergera när ett värde större än 1.0 anges)
SIGMA R Används inte (standardvärde: 0.0)

När PRECOND=5 (valfritt)

Om ett annat värde än 5 eller 22 anges för PRECOND ignoreras rad 4.

(Rad 4) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
Variabelnamn Typ Beskrivning
ML_CoarseSolver I Grovnätslösare för ML (1: använd utjämnare, 2: KLU (seriell direktmetod), 3: MUMPS (parallell direktmetod)) (standardvärde: 1)
(Rekommenderas: 3 eller 2 för svåra problem, 1 för vanliga problem)
ML_Smoother I ML-utjämnare (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (standardvärde: 1)
(Rekommenderas: 1)
ML_MGCycle I ML-multigridcykel (1: V-cykel, 2: W-cykel, 3: Full-V-cykel) (standardvärde: 1)
(Rekommenderas: 2 för svåra problem, 1 för vanliga problem)
ML_MaxLevels I Maximalt antal ML-nivåer (standardvärde: 10)
(För särskilt svåra problem, använd en direkt grovnätslösare och 2 nivåer (eller 3 om minnet inte räcker); för vanliga problem rekommenderas 10)
ML_CoarseningScheme I ML-metod för förgrovning (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (standardvärde: 1)
(Rekommenderas: 1 eller 5)
ML_NumSweep I Antal ML-utjämnarsvep (polynomgrad för Chebyshev) (standardvärde: 2)
(Rekommenderas: 2 för Chebyshev, 1 för SymBlockGaussSeidel)

När PRECOND=22 (valfritt)

Om ett annat värde än 22 anges för PRECOND ignoreras rad 5. Både rad 4 och rad 5 kan utelämnas helt, och avslutande poster på respektive rad kan också utelämnas. Standardvärdet används för varje post som anges som 0.

Posterna 1 till 7 på rad 4 ligger i samma ordning som på alternativraden för PRECOND=5 (ML), så ML-alternativraden kan återanvändas oförändrad. Posterna 8 till 10 är specifika för SA-AMG.

(Rad 4) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (används inte), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (används inte)
Variabelnamn Typ Beskrivning
SA_CoarseSolver I Grovnätslösare (0: automatisk, 1: använd utjämnare, 2: direktmetod för tät matris, 3: MUMPS (parallell direktmetod)) (standardvärde: 0)
(I automatiskt läge används MUMPS i byggen där MUMPS är aktiverat; annars används direktmetoden för tät matris)
SA_Smoother I Utjämnare (0 eller 1: Chebyshev) (standardvärde: 0)
(Endast Chebyshev stöds. Om ett annat värde anges skrivs en varning ut och Chebyshev används)
SA_MGCycle I Multigridcykel (0: standard (W-cykel), 1: V-cykel, 2: W-cykel) (standardvärde: 0)
(Full-V-cykel stöds inte)
SA_MaxLevels I Maximalt antal nivåer (standardvärde: 20)
(används inte) I Positionen som motsvarar ML-metoden för förgrovning. Eftersom SA-AMG alltid använder okopplad aggregering ger ett värde som inte är noll en varning och ignoreras
SA_ChebyDegree I Polynomgrad för Chebyshev-utjämnaren (standardvärde: 2)
SA_CoarseSize I Avskärningsstorlek för grovnätet (standardvärde: 50000 när MUMPS används som grovnätslösare; annars 100)
SA_MaxAggSize I Maximal aggregatstorlek (standardvärde: 96)
SA_GalerkinLowMem I Beräkningsmetod för grovnätsmatrisen (0: normal (prioriterar hastighet), positivt värde: minnessparande) (standardvärde: 0)
(Ange ett positivt värde om minnet inte räcker under uppbyggnaden)
(används inte) I Reserverad för framtida utökningar

Rad 5 är specifik för SA-AMG och läses inte av ML.

(Rad 5) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
Variabelnamn Typ Beskrivning
SA_Theta R Tröskelvärde för att bestämma starka kopplingar (standardvärde: 0.0)
(Vid 0.0 används matrisens nollskilda struktur direkt som graf)
SA_ChebyAlpha R Förhållande som bestämmer den nedre gränsen för egenvärdesintervallet som Chebyshev-utjämnaren arbetar mot (standardvärde: 20.0)
SA_Safety R Säkerhetsfaktor som tillämpas på det uppskattade största egenvärdet (standardvärde: 1.1)
SA_TaperK R Taperkoefficient K för förgrovning (standardvärde: 100)
(Från nivå 2 görs förgrovningen mer gradvis så att minst ungefär K aggregat återstår. Ett negativt värde inaktiverar taperingen)
SA_AggOrder R Genomgångsordning för aggregering (0: standard (BFS-ordning), 1: BFS-ordning, 2: hashordning för nodnummer (experimentell), 3: stigande gradordning (experimentell), 4: fallande gradordning (experimentell), negativt värde: nodnummerordning) (standardvärde: 0)
SA_MinAggSize R Minsta aggregatstorlek (standardvärde: 3)
SA_Verify R Om en självkontroll ska köras under uppbyggnaden (0: nej, positivt värde: ja) (standardvärde: 0) (främst för felsökning)
SA_DumpVTK R Om aggregeringen på den högsta nivån ska skrivas ut i VTK-format (0: ingen utdata, positivt värde: utdata) (standardvärde: 0) (främst för felsökning)

Exempel

Använd CG med SSOR-förkonditionering och ställ in maximalt antal iterationer till 10000 och konvergenstoleransen till 1.0e-8

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

Använd GMRES med SSOR-förkonditionering och ställ in storleken på Krylov-delrummet till 40 och målantalet färger för flerfärgsordning till 100

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

Använd CG med ILU(0)-förkonditionering och ställ in skalfaktorn som tillämpas på diagonalposterna vid beräkning av förkonditioneringsmatrisen till 1.1

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

Använd AMG via ML som förkonditionerare för CG

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

Använd AMG via ML som förkonditionerare för CG och MUMPS som grovnätslösare (för svåra problem)

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

Använd AMG via ML som förkonditionerare för CG och W-cykel som multigridcykel (för svåra problem)

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

Använd AMG via ML som förkonditionerare för CG, använd MUMPS som grovnätslösare och ställ in maximalt antal nivåer till 2 (för mycket svåra problem)

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

Använd HEC-MW:s inbyggda SA-AMG som förkonditionerare för CG

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

Använd SA-AMG som förkonditionerare för CG och MUMPS som grovnätslösare

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

Använd BiCGSTAB med SA-AMG-förkonditionering för friktionskontaktanalys och skriv ut AMG-förkonditionerarens hierarki

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