!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)
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)
10, 11 og 12 er kun tilgængelige for problemer med 3 frihedsgrader
Til OpenMP-trådparallel udførelse anbefales SSOR, diagonalskalering eller ML
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)
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 flerpunktbegrænsninger (1, 2, 3)
1: Penalty-metode (standard ved brug af en direkte metode)
2: MPC-CG-metode (udfaset)
3: Eksplicit eliminering af frihedsgrader (standard ved brug af en iterativ metode)
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
METHOD2 = Sekundær løsningsmetode (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 **
| 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) |
| Variabel | Attribut | Beskrivelse |
|---|---|---|
| RESID | R | Afskæringsfejl (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 der angives en anden værdi for PRECOND, ignoreres 4. linje.
| 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) |
Eksempler¶
Brug CG med SSOR-prækonditionering, og sæt det maksimale antal iterationer til 10000 og afskæringsfejlen til 1.0e-8
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
Brug CG med ILU(0)-prækonditionering, og sæt skaleringsfaktoren, der anvendes på diagonalelementerne ved beregning af prækonditioneringsmatricen, til 1.1
Brug AMG via ML som prækonditionering for CG
Brug AMG via ML som prækonditionering for CG og MUMPS som grovgitterløser (til vanskelige problemer)
Brug AMG via ML som prækonditionering for CG og W-cyklus som multigridcyklus (til vanskelige problemer)
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)