Przejdź do treści

!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 **

(2. wiersz) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
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)
(3. wiersz) RESID, SIGMA_DIAG, SIGMA
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

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

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

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

Użyj CG z preconditioningiem ILU(0) i ustaw współczynnik skali stosowany do elementów diagonalnych podczas obliczania macierzy preconditioningu na 1.1

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

Użyj AMG przez ML jako preconditionera dla CG

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

Użyj AMG przez ML jako preconditionera dla CG i MUMPS jako solvera siatki zgrubnej (dla trudnych problemów)

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

Użyj AMG przez ML jako preconditionera dla CG i cyklu W jako cyklu wielosiatkowego (dla trudnych problemów)

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

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)

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