!SOLVER¶
Solversteuerung
Erforderliche Steuerdaten.
Parameter¶
METHOD = Lösungsverfahren (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Direktes Verfahren außer bei Kontaktanalyse (nur serielle Verarbeitung) (derzeit nicht verfügbar)
DIRECTmkl : Direktes Verfahren unter Verwendung von Intel MKL
MUMPS : Direktes Verfahren unter Verwendung von MUMPS
Wenn ein direktes Verfahren ausgewählt ist, werden die Datenzeilen ignoriert.
Iterative Verfahren für Probleme mit 3 Freiheitsgraden unterstützen threadparallele Ausführung mit OpenMP
PRECOND = Vorkonditionierungsverfahren für iterative Solver (1, 2, 3, 5, 10, 11, 12)
1, 2 : (Block-)SSOR (mit Mehrfarbenordnung nur für Probleme mit 3 Freiheitsgraden)
3 : (Block-)Diagonal Scaling
5 : AMG unter Verwendung des Mehrgitter-Vorkonditionierungspakets ML
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block ILU(2)
10, 11 und 12 sind nur für Probleme mit 3 Freiheitsgraden verfügbar
Für threadparallele Ausführung mit OpenMP werden SSOR, Diagonal Scaling oder ML empfohlen
ITERLOG = Gibt an, ob der Konvergenzverlauf des iterativen Solvers ausgegeben wird (YES/NO)(Standardwert: NO)
TIMELOG = Gibt an, ob die Rechenzeit des Solvers ausgegeben wird (YES/NO/VERBOSE)(Standardwert: NO)
USEJAD = Gibt an, ob eine Ordnung für Vektorprozessoren verwendet wird (YES/NO)(Standardwert: NO)
Nur wirksam, wenn bei einem Problem mit 3 Freiheitsgraden ein iteratives Verfahren verwendet wird
SCALING = Gibt an, ob die Matrix so skaliert wird, dass die Diagonaleinträge 1 sind (YES/NO)(Standardwert: NO)
Nur wirksam, wenn bei einem Problem mit 3 Freiheitsgraden ein iteratives Verfahren verwendet wird
DUMPTYPE = Format des Matrix-Dumps (NONE, MM, CSR, BSR) (hauptsächlich zum Debuggen)
NONE : Kein Dump (Standardwert)
MM : Matrix-Market-Format
CSR : Compressed-Sparse-Row-(CSR)-Format
BSR : Blocked-CSR-Format
DUMPEXIT = Beendet das Programm unmittelbar nach dem Matrix-Dump (YES/NO)(Standardwert: NO)
MPCMETHOD = Verfahren zur Behandlung von Mehrpunkt-Zwangsbedingungen (1, 2, 3)
1: Penalty-Verfahren (Standardwert bei Verwendung eines direkten Verfahrens)
2: MPC-CG-Verfahren (veraltet)
3: Explizite Elimination von Freiheitsgraden (Standardwert bei Verwendung eines iterativen Verfahrens)
ESTCOND = Häufigkeit der Schätzung der Konditionszahl (experimentell)
Die Konditionszahl wird in jedem angegebenen Iterationsintervall sowie am Ende der Iterationen geschätzt
Bei Angabe von 0 erfolgt keine Schätzung
METHOD2 = Sekundäres Lösungsverfahren (BiCGSTAB, GMRES, GPBiCG) (experimentell)
Nur wirksam, wenn für METHOD CG angegeben ist
Wenn CG divergiert, wird automatisch auf das sekundäre Verfahren umgeschaltet und die Lösung fortgesetzt
Für die übrigen Parameter und Datenzeilen werden dieselben Werte verwendet
CONTACT_ELIM = Legt fest, ob bei der Kontaktanalyse Freiheitsgrade eliminiert werden (0,1)
0: Freiheitsgrad-Elimination nur bei Verwendung eines iterativen Verfahrens durchführen (Standardwert)
1: Freiheitsgrad-Elimination immer durchführen (auch bei Verwendung eines direkten Verfahrens)
** 2. Zeile und folgende **
| Variable | Attribut | Beschreibung |
|---|---|---|
| NITER | I | Anzahl der Iterationen (Standardwert: 100) |
| iterPREmax | I | Anzahl der Iterationen der Additive-Schwarz-Vorkonditionierung (Standardwert: 1) (Empfohlener Wert: 1; bei einigen Parallelrechnungen kann 2 wirksam sein) |
| NREST | I | Anzahl der Krylov-Unterräume (Standardwert: 10) (Nur wirksam, wenn GMRES als Lösungsverfahren ausgewählt ist) |
| NCOLOR_IN | I | Zielanzahl der Farben für die Mehrfarbenordnung (Standardwert: 10) (Nur wirksam, wenn die Anzahl der OpenMP-Threads 2 oder größer ist) |
| RECYCLEPRE | I | Anzahl der Wiederverwendungen der Informationen zum Aufbau des Vorkonditionierers (Standardwert: 3) (Nur bei nichtlinearer Analyse wirksam) |
| Variable | Attribut | Beschreibung |
|---|---|---|
| RESID | R | Abbruchfehler (Standardwert: 1.0e-8) |
| SIGMA_DIAG | R | Skalierungsfaktor für Diagonaleinträge bei der Berechnung der Vorkonditionierungsmatrix (Standardwert: 1.0) (Wenn bei ILU-Vorkonditionierung eine Division durch null oder Divergenz auftritt, kann das Problem bei Angabe eines Werts größer als 1.0 konvergieren) |
| SIGMA | R | Nicht verwendet (Standardwert: 0.0) |
Bei PRECOND=5 (optional)¶
Wenn für PRECOND ein anderer Wert angegeben ist, wird die 4. Zeile ignoriert.
| Variable | Attribut | Beschreibung |
|---|---|---|
| ML_CoarseSolver | I | Grobgitter-Solver für ML (1: Smoother verwenden, 2: KLU (serielles direktes Verfahren), 3: MUMPS (paralleles direktes Verfahren)) (Standardwert: 1) (Empfohlen: 3 oder 2 für schwierige Probleme, 1 für gewöhnliche Probleme) |
| ML_Smoother | I | ML-Smoother (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (Standardwert: 1) (Empfohlen: 1) |
| ML_MGCycle | I | ML-Mehrgitterzyklus (1: V-Zyklus, 2: W-Zyklus, 3: Full-V-Zyklus) (Standardwert: 1) (Empfohlen: 2 für schwierige Probleme, 1 für gewöhnliche Probleme) |
| ML_MaxLevels | I | Maximale Anzahl der ML-Ebenen (Standardwert: 10) (Für besonders schwierige Probleme einen direkten Grobgitter-Solver und 2 Ebenen verwenden (oder 3, wenn der Speicher nicht ausreicht); für gewöhnliche Probleme werden 10 empfohlen) |
| ML_CoarseningScheme | I | ML-Coarsening-Schema (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (Standardwert: 1) (Empfohlen: 1 oder 5) |
| ML_NumSweep | I | Anzahl der ML-Smoother-Durchläufe (Polynomgrad bei Chebyshev) (Standardwert: 2) (Empfohlen: 2 für Chebyshev, 1 für SymBlockGaussSeidel) |
Beispiele¶
CG mit SSOR-Vorkonditionierung verwenden und die maximale Anzahl der Iterationen auf 10000 sowie den Abbruchfehler auf 1.0e-8 setzen
GMRES mit SSOR-Vorkonditionierung verwenden und die Anzahl der Krylov-Unterräume auf 40 sowie die Zielanzahl der Farben für die Mehrfarbenordnung auf 100 setzen
CG mit ILU(0)-Vorkonditionierung verwenden und den Skalierungsfaktor für die Diagonaleinträge bei der Berechnung der Vorkonditionierungsmatrix auf 1.1 setzen
AMG von ML als Vorkonditionierer für CG verwenden
AMG von ML als Vorkonditionierer für CG und MUMPS als Grobgitter-Solver verwenden (für schwierige Probleme)
AMG von ML als Vorkonditionierer für CG und den W-Zyklus als Mehrgitterzyklus verwenden (für schwierige Probleme)
AMG von ML als Vorkonditionierer für CG und MUMPS als Grobgitter-Solver verwenden sowie die maximale Anzahl der Ebenen auf 2 setzen (für sehr schwierige Probleme)