Gå til indholdet

!SOLVER

Løserstyring

Påkrævede styringsdata.

Parametre

METHOD =    Løsningsmetode (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
            DIRECT     : Direkte metode undtagen ved kontaktanalyse (kun seriel behandling) (ikke tilgængelig i øjeblikket)
            DIRECTmkl  : Direkte metode med Intel MKL
            MUMPS      : Direkte metode med MUMPS
            Når en direkte metode vælges, ignoreres datalinjerne.
            Iterative metoder til problemer med 3 frihedsgrader understøtter trådparallel udførelse med OpenMP

PRECOND =   Prækonditioneringsmetode for iterative løsere (1, 2, 3, 5, 10, 11, 12, 22)
            1, 2       : (Blok-)SSOR (med flerfarveordning kun for problemer med 3 frihedsgrader)
            3          : (Blok-)diagonalskalering
            5          : AMG med multigrid-prækonditioneringspakken ML
            10         : Blok-ILU(0)
            11         : Blok-ILU(1)
            12         : Blok-ILU(2)
            22         : AMG med HEC-MW's indbyggede SA-AMG (Smoothed Aggregation AMG)
            10, 11 og 12 er kun tilgængelige for problemer med 3 frihedsgrader
            22 er kun tilgængelig i builds, hvor LAPACK er aktiveret
            Ved OpenMP-trådparallel udførelse anbefales SSOR, diagonalskalering, ML eller SA-AMG

ITERLOG =   Om konvergenshistorikken for den iterative løser skal udskrives          (YES/NO)(standard: NO)

TIMELOG =   Om løserens beregningstid skal udskrives                       (YES/NO/VERBOSE)(standard: NO)

LOGLEVEL =  Niveau for udskrift af diagnostiske oplysninger om prækonditioneringen                (heltal)(standard: ingen udskrift)
            Angives uafhængigt af ITERLOG og TIMELOG
            Ved 1 eller højere udskrives hierarkiopbygningen m.m. for AMG-prækonditionering (PRECOND=5, 22)
            Ved 2 eller højere udskrives yderligere detaljer (f.eks. hukommelsesforbrug)

USEJAD =    Om ordning til vektorprocessorer skal bruges                    (YES/NO)(standard: NO)
            Kun gyldig, når en iterativ metode bruges til et problem med 3 frihedsgrader

SCALING =   Om matricen skal skaleres, så diagonalelementerne er 1       (YES/NO)(standard: NO)
            Kun gyldig, når en iterativ metode bruges til et problem med 3 frihedsgrader

DUMPTYPE =  Format for matrixdump (NONE, MM, CSR, BSR) (hovedsageligt til fejlfinding)
            NONE : Intet dump (standard)
            MM   : Matrix Market-format
            CSR  : Compressed Sparse Row-format (CSR)
            BSR  : Blokeret CSR-format

DUMPEXIT =  Afslut programmet straks efter matrixdump           (YES/NO)(standard: NO)

MPCMETHOD = Metode til håndtering af multipunktbegrænsninger (1, 3)
            1: Penalty-metode (standard ved brug af en direkte metode)
            3: Eksplicit eliminering af frihedsgrader (standard ved brug af en iterativ metode)
            MPC-CG-metoden (2) er fjernet. Hvis 2 angives, udsendes en advarsel, og standardmetoden anvendes.

ESTCOND =   Hyppighed for estimering af konditionstal (eksperimentel)
            Estimér konditionstallet ved hvert angivet iterationsinterval og ved afslutningen af iterationerne
            Der udføres ingen estimering, når 0 er angivet

RECOMPUTE_RESIDUAL = Hyppighed for genberegning af residualvektoren
            Kun gyldig når CG, BiCGSTAB, GPBiCG eller PipeCG er angivet for METHOD
            Iterative metoder opdaterer residualvektoren med en rekursionsformel, så afrundingsfejl ophobes
            Ved hvert angivet iterationsinterval genberegnes residualvektoren ud fra {b}-[A]{x}
            Når 0 angives, bruges standardværdien for den enkelte metode (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
            Når en negativ værdi angives, udføres der ingen periodisk genberegning
            Genberegning til bekræftelse af konvergens udføres altid uanset denne indstilling
            Et for kort interval øger ikke kun antallet af matrix-vektor-produkter, men kan også
            forringe selve konvergensen eller medføre, at løsningen ikke konvergerer
            Hvis standardværdien ændres, skal konvergenshistorikken og det endelige relative residual kontrolleres

METHOD2 =   Løsningsmetode 2 (BiCGSTAB, GMRES, GPBiCG) (eksperimentel)
            Kun gyldig, når CG er angivet for METHOD
            Hvis CG divergerer, skiftes der automatisk til den sekundære metode, og løsningen fortsættes
            De samme værdier bruges for de øvrige parametre og datalinjer

CONTACT_ELIM = Angiver, om eliminering af frihedsgrader udføres i kontaktanalyse (0,1)
               0: Udfør kun eliminering af frihedsgrader ved brug af en iterativ metode (standard)
               1: Udfør altid eliminering af frihedsgrader (også ved brug af en direkte metode)

** 2. linje og efterfølgende **

(2. linje) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
Variabel Attribut Beskrivelse
NITER I Antal iterationer (standard: 100)
iterPREmax I Antal iterationer for additiv Schwarz-prækonditionering (standard: 1)
(Anbefalet værdi: 1; 2 kan være effektivt i nogle parallelle beregninger)
NREST I Antal Krylov-underrum (standard: 10)
(Kun gyldig, når GMRES er valgt som løsningsmetode)
NCOLOR_IN I Måltal for antal farver ved flerfarveordning (standard: 10)
(Kun gyldig, når antallet af OpenMP-tråde er 2 eller derover)
RECYCLEPRE I Antal gange opsætningsinformation for prækonditioneringen genbruges (standard: 3)
(Kun gyldig ved ikke-lineær analyse)
(3. linje) RESID, SIGMA_DIAG, SIGMA
Variabel Attribut Beskrivelse
RESID R Konvergenstolerance (standard: 1.0e-8)
SIGMA_DIAG R Skaleringsfaktor, der anvendes på diagonalelementer ved beregning af prækonditioneringsmatricen (standard: 1.0)
(Hvis division med nul eller divergens forekommer ved ILU-prækonditionering, kan problemet konvergere, når en værdi større end 1.0 angives)
SIGMA R Bruges ikke (standard: 0.0)

Når PRECOND=5 (valgfri)

Hvis PRECOND sættes til en anden værdi end 5 eller 22, ignoreres 4. linje.

(4. linje) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
Variabel Attribut Beskrivelse
ML_CoarseSolver I Grovgitterløser for ML (1: brug smoother, 2: KLU (seriel direkte metode), 3: MUMPS (parallel direkte metode)) (standard: 1)
(Anbefalet: 3 eller 2 til vanskelige problemer, 1 til almindelige problemer)
ML_Smoother I ML-smoother (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (standard: 1)
(Anbefalet: 1)
ML_MGCycle I ML-multigridcyklus (1: V-cyklus, 2: W-cyklus, 3: Full-V-cyklus) (standard: 1)
(Anbefalet: 2 til vanskelige problemer, 1 til almindelige problemer)
ML_MaxLevels I Maksimalt antal ML-niveauer (standard: 10)
(Til særligt vanskelige problemer bruges en direkte grovgitterløser og 2 niveauer (eller 3, hvis hukommelsen er utilstrækkelig); til almindelige problemer anbefales 10)
ML_CoarseningScheme I ML-grovinddelingsskema (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (standard: 1)
(Anbefalet: 1 eller 5)
ML_NumSweep I Antal ML-smoother-gennemløb (polynomiets grad for Chebyshev) (standard: 2)
(Anbefalet: 2 for Chebyshev, 1 for SymBlockGaussSeidel)

Når PRECOND=22 (valgfri)

Hvis PRECOND sættes til en anden værdi end 22, ignoreres 5. linje. Både 4. og 5. linje kan udelades helt, og efterfølgende elementer på hver linje kan også udelades. Standardværdien anvendes for ethvert element, der angives som 0.

Element 1 til 7 på 4. linje har samme rækkefølge som optionslinjen for PRECOND=5 (ML), så ML-optionslinjen kan genbruges uændret. Element 8 til 10 er specifikke for SA-AMG.

(4. linje) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (ikke anvendt), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (ikke anvendt)
Variabel Attribut Beskrivelse
SA_CoarseSolver I Grovgitterløser (0: automatisk, 1: brug smootheren, 2: tæt direkte metode, 3: MUMPS (parallel direkte metode)) (standard: 0)
(I automatisk tilstand anvendes MUMPS i builds med MUMPS aktiveret; ellers anvendes den tætte direkte metode)
SA_Smoother I Smoother (0 eller 1: Chebyshev) (standard: 0)
(Kun Chebyshev understøttes. Hvis en anden værdi angives, udskrives en advarsel, og Chebyshev anvendes)
SA_MGCycle I Multigridcyklus (0: standard (W-cyklus), 1: V-cyklus, 2: W-cyklus) (standard: 0)
(Full-V-cyklus understøttes ikke)
SA_MaxLevels I Maksimalt antal niveauer (standard: 20)
(ikke anvendt) I Placeringen svarer til ML's grovinddelingsskema. Da SA-AMG altid bruger uncoupled aggregering, medfører en værdi forskellig fra 0 en advarsel og ignoreres
SA_ChebyDegree I Polynomiets grad for Chebyshev-smootheren (standard: 2)
SA_CoarseSize I Afskæringsstørrelse for grovgitteret (standard: 50000, når MUMPS bruges som grovgitterløser; ellers 100)
SA_MaxAggSize I Maksimal aggregatstørrelse (standard: 96)
SA_GalerkinLowMem I Beregningsmetode for grovgittermatricen (0: normal (hastighed prioriteres), positiv værdi: hukommelsesbesparende) (standard: 0)
(Angiv en positiv værdi, hvis hukommelsen er utilstrækkelig under opsætningen)
(ikke anvendt) I Reserveret til fremtidige udvidelser

Den 5. linje er specifik for SA-AMG og læses ikke af ML.

(5. linje) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
Variabel Attribut Beskrivelse
SA_Theta R Tærskel for bestemmelse af stærke forbindelser (standard: 0.0)
(Ved 0.0 bruges matricens ikke-nul-struktur direkte som graf)
SA_ChebyAlpha R Forhold, der bestemmer den nedre grænse for egenværdiintervallet, som Chebyshev-smootheren behandler (standard: 20.0)
SA_Safety R Sikkerhedsfaktor, der anvendes på den estimerede største egenværdi (standard: 1.1)
SA_TaperK R Taperingskoefficient K for grovinddeling (standard: 100)
(Fra niveau 2 gøres grovinddelingen mere gradvis, så mindst omtrent K aggregater bevares. En negativ værdi deaktiverer tapering)
SA_AggOrder R Gennemløbsrækkefølge for aggregering (0: standard (BFS-rækkefølge), 1: BFS-rækkefølge, 2: hash-rækkefølge efter knudenummer (eksperimentel), 3: stigende grad (eksperimentel), 4: faldende grad (eksperimentel), negativ værdi: knudenummerrækkefølge) (standard: 0)
SA_MinAggSize R Minimal aggregatstørrelse (standard: 3)
SA_Verify R Om der skal udføres selvkontrol under opsætningen (0: nej, positiv værdi: ja) (standard: 0) (hovedsageligt til fejlfinding)
SA_DumpVTK R Om aggregeringen på det øverste niveau skal udskrives i VTK-format (0: ingen udskrift, positiv værdi: udskriv) (standard: 0) (hovedsageligt til fejlfinding)

Eksempler

Brug CG med SSOR-prækonditionering, og sæt det maksimale antal iterationer til 10000 og konvergenstolerancen til 1.0e-8

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

Brug GMRES med SSOR-prækonditionering, og sæt antallet af Krylov-underrum til 40 og måltallet for antal farver ved flerfarveordning til 100

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

Brug CG med ILU(0)-prækonditionering, og sæt skaleringsfaktoren, der anvendes på diagonalelementerne ved beregning af prækonditioneringsmatricen, til 1.1

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

Brug AMG via ML som prækonditionering for CG

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

Brug AMG via ML som prækonditionering for CG og MUMPS som grovgitterløser (til vanskelige problemer)

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

Brug AMG via ML som prækonditionering for CG og W-cyklus som multigridcyklus (til vanskelige problemer)

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

Brug AMG via ML som prækonditionering for CG, MUMPS som grovgitterløser, og sæt det maksimale antal niveauer til 2 (til meget vanskelige problemer)

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

Brug HEC-MW's indbyggede SA-AMG som prækonditionering for CG

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

Brug SA-AMG som prækonditionering for CG og MUMPS som grovgitterløser

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

Ved friktionskontaktanalyse bruges BiCGSTAB med SA-AMG-prækonditionering, og hierarkiopbygningen for AMG-prækonditioneringen udskrives

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