Přeskočit obsah

!SOLVER

Řízení řešiče

Povinná řídicí data.

Parametry

METHOD =    Metoda řešení (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
            DIRECT     : Přímá metoda kromě kontaktní analýzy (pouze sériové zpracování) (v současnosti nedostupné)
            DIRECTmkl  : Přímá metoda využívající Intel MKL
            MUMPS      : Přímá metoda využívající MUMPS
            Při volbě přímé metody jsou datové řádky ignorovány.
            Iterativní metody pro úlohy se 3 stupni volnosti podporují vláknově paralelní běh pomocí OpenMP

PRECOND =   Metoda předpodmínění pro iterativní řešiče (1, 2, 3, 5, 10, 11, 12, 22)
            1, 2       : (Blokové) SSOR (s vícebarevným uspořádáním pouze pro úlohy se 3 stupni volnosti)
            3          : (Block) Diagonal Scaling
            5          : AMG využívající balíček ML pro víceúrovňové předpodmínění
            10         : Block ILU(0)
            11         : Block ILU(1)
            12         : Block ILU(2)
            22         : AMG s vestavěným SA-AMG knihovny HEC-MW (AMG s vyhlazenou agregací)
            10, 11 a 12 jsou dostupné pouze pro úlohy se 3 stupni volnosti
            22 je k dispozici pouze v sestaveních s povoleným LAPACK
            Pro vláknový paralelismus OpenMP se doporučuje SSOR, Diagonal Scaling, ML nebo SA-AMG

ITERLOG =   Zda vypisovat historii konvergence iterativního řešiče          (YES/NO)(výchozí: NO)

TIMELOG =   Zda vypisovat dobu výpočtu řešiče                         (YES/NO/VERBOSE)(výchozí: NO)

LOGLEVEL =  Úroveň výstupu diagnostických informací předpodmínění       (celé číslo)(výchozí: bez výstupu)
            Zadává se nezávisle na ITERLOG a TIMELOG
            Při hodnotě 1 nebo vyšší se vypisuje struktura hierarchie a další informace pro předpodmínění AMG (PRECOND=5,22)
            Při hodnotě 2 nebo vyšší se vypisují podrobnější informace (například využití paměti)

USEJAD =    Zda použít uspořádání pro vektorové procesory              (YES/NO)(výchozí: NO)
            Platí pouze při použití iterativní metody pro úlohu se 3 stupni volnosti

SCALING =   Zda škálovat matici tak, aby diagonální prvky byly rovny 1  (YES/NO)(výchozí: NO)
            Platí pouze při použití iterativní metody pro úlohu se 3 stupni volnosti

DUMPTYPE =  Formát výpisu matice (NONE, MM, CSR, BSR) (především pro ladění)
            NONE : Nevypisovat (výchozí)
            MM   : Formát Matrix Market
            CSR  : Formát Compressed Sparse Row (CSR)
            BSR  : Formát Blocked CSR

DUMPEXIT =  Ukončit program ihned po výpisu matice                      (YES/NO)(výchozí: NO)

MPCMETHOD = Metoda zpracování vícebodových vazeb (1, 3)
            1: Penalizační metoda (výchozí při použití přímé metody)
            3: Explicitní eliminace stupňů volnosti (výchozí při použití iterativní metody)
            Metoda MPC-CG (2) byla odstraněna. Při zadání 2 se vypíše varování a použije se výchozí metoda.

ESTCOND =   Frekvence odhadu čísla podmíněnosti (experimentální)
            Odhadnout číslo podmíněnosti v každém zadaném intervalu iterací a na konci iterací
            Při zadání 0 se odhad neprovádí

RECOMPUTE_RESIDUAL = Frekvence přepočtu vektoru rezidua
            Platí pouze tehdy, když je pro METHOD zadáno CG, BiCGSTAB, GPBiCG nebo PipeCG
            Iterativní metody aktualizují vektor rezidua rekurentním vztahem, takže se hromadí chyby zaokrouhlení
            Při každém zadaném počtu iterací se vektor rezidua znovu vypočítá jako {b}-[A]{x}
            Při zadání 0 se použije výchozí hodnota dané metody (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
            Při zadání záporné hodnoty se periodický přepočet neprovádí
            Přepočet pro ověření konvergence se při splnění kritéria konvergence provede vždy, bez ohledu na toto nastavení
            Příliš krátký interval nejen zvyšuje počet násobení matice vektorem, ale může také
            zhoršit samotnou konvergenci nebo způsobit, že řešení nebude konvergovat
            Po změně tohoto nastavení z výchozí hodnoty zkontrolujte historii konvergence a konečné relativní reziduum

METHOD2 =   Sekundární metoda řešení (BiCGSTAB, GMRES, GPBiCG) (experimentální)
            Platí pouze tehdy, je-li pro METHOD zadáno CG
            Pokud CG diverguje, automaticky přepnout na sekundární metodu a pokračovat v řešení
            Pro ostatní parametry a datové řádky se používají stejné hodnoty

CONTACT_ELIM = Určuje, zda se v kontaktní analýze provádí eliminace stupňů volnosti (0,1)
               0: Provést eliminaci stupňů volnosti pouze při použití iterativní metody (výchozí)
               1: Vždy provést eliminaci stupňů volnosti (včetně použití přímé metody)

** 2. a následující řádky **

(2. řádek) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
Proměnná Typ Popis
NITER I Počet iterací (výchozí: 100)
iterPREmax I Počet iterací předpodmínění Additive Schwarz (výchozí: 1)
(Doporučená hodnota: 1; v některých paralelních výpočtech může být účinná hodnota 2)
NREST I Velikost Krylovova podprostoru (výchozí: 10)
(Platí pouze při volbě GMRES jako metody řešení)
NCOLOR_IN I Cílový počet barev pro vícebarevné uspořádání (výchozí: 10)
(Platí pouze při počtu vláken OpenMP 2 nebo více)
RECYCLEPRE I Počet opakovaných použití informací o nastavení předpodmínění (výchozí: 3)
(Platí pouze v nelineární analýze)
(3. řádek) RESID, SIGMA_DIAG, SIGMA
Proměnná Typ Popis
RESID R Tolerance ukončení (výchozí: 1.0e-8)
SIGMA_DIAG R Měřítkový faktor použitý na diagonální prvky při výpočtu matice předpodmínění (výchozí: 1.0)
(Pokud při předpodmínění ILU dojde k dělení nulou nebo divergenci, může úloha konvergovat při zadání hodnoty větší než 1.0)
SIGMA R Nepoužito (výchozí: 0.0)

Při PRECOND=5 (volitelné)

Pokud je pro PRECOND zadána jiná hodnota než 5 nebo 22, 4. řádek se ignoruje.

(4. řádek) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
Proměnná Typ Popis
ML_CoarseSolver I Řešič na hrubé síti pro ML (1: použít vyhlazovač, 2: KLU (sériová přímá metoda), 3: MUMPS (paralelní přímá metoda)) (výchozí: 1)
(Doporučeno: 3 nebo 2 pro obtížné úlohy, 1 pro běžné úlohy)
ML_Smoother I Vyhlazovač ML (1: Chebyshev, 2: SymBlockGaussSeidel, 3: Jacobi) (výchozí: 1)
(Doporučeno: 1)
ML_MGCycle I Víceúrovňový cyklus ML (1: V-cyklus, 2: W-cyklus, 3: Full-V-cyklus) (výchozí: 1)
(Doporučeno: 2 pro obtížné úlohy, 1 pro běžné úlohy)
ML_MaxLevels I Maximální počet úrovní ML (výchozí: 10)
(Pro zvlášť obtížné úlohy použijte přímý řešič na hrubé síti a 2 úrovně (nebo 3 při nedostatku paměti); pro běžné úlohy se doporučuje 10)
ML_CoarseningScheme I Schéma zhrubování ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (výchozí: 1)
(Doporučeno: 1 nebo 5)
ML_NumSweep I Počet průchodů vyhlazovače ML (stupeň polynomu pro Chebyshev) (výchozí: 2)
(Doporučeno: 2 pro Chebyshev, 1 pro SymBlockGaussSeidel)

Při PRECOND=22 (volitelné)

Pokud je pro PRECOND zadána jiná hodnota než 22, 5. řádek se ignoruje. Čtvrtý i pátý řádek lze zcela vynechat a lze také vynechat koncové položky každého z nich. Pro každou položku zadanou jako 0 se použije výchozí hodnota.

Položky 1 až 7 na 4. řádku jsou uspořádány stejně jako na řádku voleb PRECOND=5 (ML), takže řádek voleb ML lze beze změny znovu použít. Položky 8 až 10 jsou specifické pro SA-AMG.

(4. řádek) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (nepoužito), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (nepoužito)
Proměnná Typ Popis
SA_CoarseSolver I Řešič na hrubé síti (0: automaticky, 1: použít vyhlazovač, 2: přímá metoda pro hustou matici, 3: MUMPS (paralelní přímá metoda)) (výchozí: 0)
(V automatickém režimu se v sestaveních s povoleným MUMPS použije MUMPS; jinak se použije přímá metoda pro hustou matici)
SA_Smoother I Vyhlazovač (0 nebo 1: Chebyshev) (výchozí: 0)
(Podporován je pouze Chebyshev. Při zadání jiné hodnoty se vypíše varování a použije se Chebyshev)
SA_MGCycle I Víceúrovňový cyklus (0: výchozí (W-cyklus), 1: V-cyklus, 2: W-cyklus) (výchozí: 0)
(Full-V-cyklus není podporován)
SA_MaxLevels I Maximální počet úrovní (výchozí: 20)
(nepoužito) I Pozice odpovídající schématu zhrubování ML. Protože SA-AMG vždy používá nespojenou agregaci, nenulová hodnota vyvolá varování a ignoruje se
SA_ChebyDegree I Stupeň polynomu Chebyshevova vyhlazovače (výchozí: 2)
SA_CoarseSize I Mezní velikost hrubé sítě (výchozí: 50000 při použití MUMPS jako řešiče na hrubé síti; jinak 100)
SA_MaxAggSize I Maximální velikost agregátu (výchozí: 96)
SA_GalerkinLowMem I Způsob výpočtu matice na hrubé síti (0: normální (upřednostňuje rychlost), kladná hodnota: úsporný na paměť) (výchozí: 0)
(Pokud při sestavení není dostatek paměti, zadejte kladnou hodnotu)
(nepoužito) I Rezervováno pro budoucí rozšíření

Pátý řádek je určen pouze pro SA-AMG a ML jej nečte.

(5. řádek) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
Proměnná Typ Popis
SA_Theta R Prahová hodnota pro určení silných spojení (výchozí: 0.0)
(Při 0.0 se nenulová struktura matice použije přímo jako graf)
SA_ChebyAlpha R Poměr určující dolní mez intervalu vlastních čísel, na který cílí Chebyshevův vyhlazovač (výchozí: 20.0)
SA_Safety R Bezpečnostní faktor aplikovaný na odhad největšího vlastního čísla (výchozí: 1.1)
SA_TaperK R Koeficient K pro postupné zhrubování (výchozí: 100)
(Od úrovně 2 je zhrubování pozvolnější, aby zůstalo alespoň přibližně K agregátů. Záporná hodnota postupné zhrubování vypne)
SA_AggOrder R Pořadí průchodu agregace (0: výchozí (pořadí BFS), 1: pořadí BFS, 2: pořadí podle haše čísel uzlů (experimentální), 3: vzestupně podle stupně (experimentální), 4: sestupně podle stupně (experimentální), záporná hodnota: pořadí čísel uzlů) (výchozí: 0)
SA_MinAggSize R Minimální velikost agregátu (výchozí: 3)
SA_Verify R Zda při sestavení provést vlastní kontrolu (0: ne, kladná hodnota: ano) (výchozí: 0) (zejména pro ladění)
SA_DumpVTK R Zda vypsat agregaci na nejvyšší úrovni ve formátu VTK (0: bez výstupu, kladná hodnota: výstup) (výchozí: 0) (zejména pro ladění)

Příklad

Použijte CG s předpodmíněním SSOR a nastavte maximální počet iterací na 10000 a toleranci ukončení na 1.0e-8

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

Použijte GMRES s předpodmíněním SSOR a nastavte velikost Krylovova podprostoru na 40 a cílový počet barev pro vícebarevné uspořádání na 100

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

Použijte CG s předpodmíněním ILU(0) a nastavte měřítkový faktor použitý na diagonální prvky při výpočtu matice předpodmínění na 1.1

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

Použijte AMG pomocí ML jako předpodmínění pro CG

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

Použijte AMG pomocí ML jako předpodmínění pro CG a MUMPS jako řešič na hrubé síti (pro obtížné úlohy)

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

Použijte AMG pomocí ML jako předpodmínění pro CG a jako víceúrovňový cyklus použijte W-cyklus (pro obtížné úlohy)

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

Použijte AMG pomocí ML jako předpodmínění pro CG, MUMPS jako řešič na hrubé síti a nastavte maximální počet úrovní na 2 (pro velmi obtížné úlohy)

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

Použijte vestavěné SA-AMG knihovny HEC-MW jako předpodmínění pro CG

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

Použijte SA-AMG jako předpodmínění pro CG a MUMPS jako řešič na hrubé síti

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

Pro analýzu třecího kontaktu použijte BiCGSTAB s předpodmíněním SA-AMG a vypište hierarchii předpodmínění AMG

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