!SOLVER¶
Sterowanie solverem
Wymagane dane sterujące.
Parametry¶
METHOD = Metoda rozwiązania (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Metoda bezpośrednia z wyjątkiem analizy kontaktowej (tylko przetwarzanie szeregowe) (obecnie niedostępna)
DIRECTmkl : Metoda bezpośrednia wykorzystująca Intel MKL
MUMPS : Metoda bezpośrednia wykorzystująca MUMPS
Po wybraniu metody bezpośredniej wiersze danych są ignorowane.
Metody iteracyjne dla problemów o 3 stopniach swobody obsługują wykonywanie wielowątkowe z OpenMP
PRECOND = Metoda preconditioningu dla solverów iteracyjnych (1, 2, 3, 5, 10, 11, 12)
1, 2 : (Blokowy) SSOR (z porządkowaniem wielokolorowym tylko dla problemów o 3 stopniach swobody)
3 : (Blokowe) skalowanie diagonalne
5 : AMG wykorzystujące pakiet preconditioningu wielosiatkowego ML
10 : Blokowy ILU(0)
11 : Blokowy ILU(1)
12 : Blokowy ILU(2)
10, 11 i 12 są dostępne tylko dla problemów o 3 stopniach swobody
Dla wykonywania wielowątkowego OpenMP zalecane jest SSOR, skalowanie diagonalne lub ML
ITERLOG = Czy zapisywać historię zbieżności solvera iteracyjnego (YES/NO)(Domyślnie: NO)
TIMELOG = Czy zapisywać czas obliczeń solvera (YES/NO/VERBOSE)(Domyślnie: NO)
USEJAD = Czy używać porządkowania dla procesorów wektorowych (YES/NO)(Domyślnie: NO)
Obowiązuje tylko wtedy, gdy dla problemu o 3 stopniach swobody używana jest metoda iteracyjna
SCALING = Czy skalować macierz tak, aby elementy diagonalne były równe 1 (YES/NO)(Domyślnie: NO)
Obowiązuje tylko wtedy, gdy dla problemu o 3 stopniach swobody używana jest metoda iteracyjna
DUMPTYPE = Format zrzutu macierzy (NONE, MM, CSR, BSR) (głównie do debugowania)
NONE : Bez zrzutu (domyślnie)
MM : Format Matrix Market
CSR : Format Compressed Sparse Row (CSR)
BSR : Blokowy format CSR
DUMPEXIT = Zakończ program natychmiast po zrzucie macierzy (YES/NO)(Domyślnie: NO)
MPCMETHOD = Metoda obsługi więzów wielopunktowych (1, 2, 3)
1: Metoda karna (domyślna przy użyciu metody bezpośredniej)
2: Metoda MPC-CG (przestarzała)
3: Jawna eliminacja stopni swobody (domyślna przy użyciu metody iteracyjnej)
ESTCOND = Częstotliwość estymacji liczby uwarunkowania (eksperymentalne)
Estymuj liczbę uwarunkowania w każdym podanym interwale iteracji oraz na końcu iteracji
Po podaniu 0 estymacja nie jest wykonywana
METHOD2 = Druga metoda rozwiązania (BiCGSTAB, GMRES, GPBiCG) (eksperymentalne)
Obowiązuje tylko wtedy, gdy dla METHOD podano CG
Jeśli CG jest rozbieżne, automatycznie przełącz na metodę dodatkową i kontynuuj rozwiązanie
Dla pozostałych parametrów i wierszy danych używane są te same wartości
CONTACT_ELIM = Określa, czy w analizie kontaktowej wykonywana jest eliminacja stopni swobody (0,1)
0: Wykonuj eliminację stopni swobody tylko przy użyciu metody iteracyjnej (domyślnie)
1: Zawsze wykonuj eliminację stopni swobody (również przy użyciu metody bezpośredniej)
** 2. i kolejne wiersze **
| Zmienna | Atrybut | Opis |
|---|---|---|
| NITER | I | Liczba iteracji (domyślnie: 100) |
| iterPREmax | I | Liczba iteracji preconditioningu Additive Schwarz (domyślnie: 1) (Zalecana wartość: 1; 2 może być skuteczne w niektórych obliczeniach równoległych) |
| NREST | I | Liczba podprzestrzeni Kryłowa (domyślnie: 10) (Obowiązuje tylko wtedy, gdy jako metodę rozwiązania wybrano GMRES) |
| NCOLOR_IN | I | Docelowa liczba kolorów dla porządkowania wielokolorowego (domyślnie: 10) (Obowiązuje tylko wtedy, gdy liczba wątków OpenMP wynosi co najmniej 2) |
| RECYCLEPRE | I | Liczba ponownych użyć informacji o konfiguracji preconditionera (domyślnie: 3) (Obowiązuje tylko w analizie nieliniowej) |
| Zmienna | Atrybut | Opis |
|---|---|---|
| RESID | R | Błąd obcięcia (domyślnie: 1.0e-8) |
| SIGMA_DIAG | R | Współczynnik skali stosowany do elementów diagonalnych podczas obliczania macierzy preconditioningu (domyślnie: 1.0) (Jeśli przy preconditioningu ILU występuje dzielenie przez zero lub rozbieżność, problem może osiągnąć zbieżność po podaniu wartości większej niż 1.0) |
| SIGMA | R | Nieużywane (domyślnie: 0.0) |
Gdy PRECOND=5 (opcjonalnie)¶
Jeśli dla PRECOND podano inną wartość, 4. wiersz jest ignorowany.
(4. wiersz) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
| Zmienna | Atrybut | Opis |
|---|---|---|
| ML_CoarseSolver | I | Solver siatki zgrubnej dla ML (1: użyj wygładzacza, 2: KLU (szeregowa metoda bezpośrednia), 3: MUMPS (równoległa metoda bezpośrednia)) (domyślnie: 1) (Zalecane: 3 lub 2 dla trudnych problemów, 1 dla zwykłych problemów) |
| ML_Smoother | I | Wygładzacz ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (domyślnie: 1) (Zalecane: 1) |
| ML_MGCycle | I | Cykl wielosiatkowy ML (1: cykl V, 2: cykl W, 3: pełny cykl V) (domyślnie: 1) (Zalecane: 2 dla trudnych problemów, 1 dla zwykłych problemów) |
| ML_MaxLevels | I | Maksymalna liczba poziomów ML (domyślnie: 10) (Dla szczególnie trudnych problemów użyj bezpośredniego solvera siatki zgrubnej i 2 poziomów (lub 3, jeśli pamięć jest niewystarczająca); dla zwykłych problemów zalecane jest 10) |
| ML_CoarseningScheme | I | Schemat zgrubiania ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (domyślnie: 1) (Zalecane: 1 lub 5) |
| ML_NumSweep | I | Liczba przebiegów wygładzacza ML (stopień wielomianu dla Chebysheva) (domyślnie: 2) (Zalecane: 2 dla Chebysheva, 1 dla SymBlockGaussSeidel) |
Przykłady¶
Użyj CG z preconditioningiem SSOR i ustaw maksymalną liczbę iteracji na 10000 oraz błąd obcięcia na 1.0e-8
Użyj GMRES z preconditioningiem SSOR i ustaw liczbę podprzestrzeni Kryłowa na 40 oraz docelową liczbę kolorów dla porządkowania wielokolorowego na 100
Użyj CG z preconditioningiem ILU(0) i ustaw współczynnik skali stosowany do elementów diagonalnych podczas obliczania macierzy preconditioningu na 1.1
Użyj AMG przez ML jako preconditionera dla CG
Użyj AMG przez ML jako preconditionera dla CG i MUMPS jako solvera siatki zgrubnej (dla trudnych problemów)
Użyj AMG przez ML jako preconditionera dla CG i cyklu W jako cyklu wielosiatkowego (dla trudnych problemów)
Użyj AMG przez ML jako preconditionera dla CG, MUMPS jako solvera siatki zgrubnej i ustaw maksymalną liczbę poziomów na 2 (dla bardzo trudnych problemów)