Přeskočit obsah

Řešič a předpodmínění

Lineární řešiče FrontISTR se konfigurují volbou buď přímé, nebo iterační metody; iterační metody se kombinují s předpodmiňovačem pro řešení lineárních rovnic. Způsob zpracování MPC a eliminace kontaktních stupňů volnosti jsou pomocné volby určující, jak se zachází s lineárním systémem obsahujícím vícebodové vazby nebo kontaktní omezení.

Přehled funkcí

Nastavení řešiče a předpodmínění sestává z následujících voleb. Nejprve zvolte jako lineární řešič buď iterační, nebo přímou metodu. Předpodmiňovač se kombinuje pouze s iterační metodou.

Kategorie Hlavní možnosti Úloha
Iterační metody CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN Řeší velké řídké matice s relativně efektivním využitím paměti.
Předpodmiňovače pro iterační metody SSOR, diagonální škálování, BILU, AMG, SAINV, RIF Zlepšují konvergenci iteračních metod. S přímými metodami se nepoužívají.
Přímé metody MUMPS, MKL Robustně řeší lineární rovnice pomocí faktorizace matice.
Způsoby zpracování MPC Penalizační metoda, explicitní eliminace stupňů volnosti Začleňují vícebodové vazby do lineárního systému.
Eliminace kontaktních stupňů volnosti Automatická, vždy zapnutá Řídí zpracování kontaktních stupňů volnosti přidaných kontaktem SLAGRANGE.
Pomocné funkce Odhad čísla podmíněnosti, výpis matice, protokolování Podporují ladění, posouzení konvergence a vyhodnocení výkonu.

Pro paralelní běh lze paralelismus MPI založený na dekompozici oblasti kombinovat s vláknovým paralelismem OpenMP. Iterační metody jsou standardní volbou pro rozsáhlé paralelní analýzy, zatímco přímé metody se používají tehdy, jsou-li připojeny potřebné knihovny a je požadováno robustnější řešení.

Volba řešiče a předpodmiňovače

Nejprve rozhodněte, zda použít iterační nebo přímou metodu. Pokud zvolíte iterační metodu, následně vyberte předpodmiňovač.

Rozhodovací faktor Doporučený postup
Velikost úlohy Přímé metody jsou stabilní a snadno použitelné pro malé až středně velké úlohy. Iterační metody mají u velkých úloh nižší nároky na paměť.
Symetrie matice Pro symetrické pozitivně definitní úlohy zvažte CG. Pro nesymetrické úlohy zvažte BiCGSTAB, GMRES, GPBiCG nebo podobné metody.
Paralelní prostředí Při paralelismu MPI kombinujte iterační metodu s dekompozicí oblasti. Pro předpodmínění při paralelismu OpenMP zvažte vícebarevnou implementaci SSOR.
Předpodmiňovač (při použití iterační metody) Nejprve vyzkoušejte výchozí SSOR, poté zvažte AMG. SSOR má při dobré konvergenci nízké výpočetní náklady; předpodmínění AMG je vhodné pro složité rozsáhlé úlohy. AMG je dostupné jako implementace Trilinos-ML nebo jako SA-AMG vestavěné v HEC-MW; volbu proveďte podle konfigurace sestavení.
Kontakt a MPC V analýzách obsahujících kontakt nebo vícebodové vazby ovlivňuje volba způsobu zpracování MPC a eliminace kontaktních stupňů volnosti konvergenci a robustnost.
Externí knihovny MUMPS, MKL a AMG (Trilinos-ML) jsou dostupné ve sestaveních propojených s odpovídajícími knihovnami. AMG (SA-AMG) je dostupné ve sestaveních s povoleným LAPACK.

Pro standardní analýzy obecně postačují výchozí tolerance konvergence, maximální počet iterací a koeficient diagonální korekce předpodmiňovače. Pouze pokud je konvergence pomalá nebo řešení diverguje, přehodnoťte v tomto pořadí iterační metodu, předpodmiňovač, způsob zpracování MPC a eliminaci kontaktních stupňů volnosti. Hodnoty parametrů a syntaxi naleznete v referenci klíčového slova !SOLVER.

Iterační metody

Iterační metody řeší velké řídké systémy opakovanou aktualizací řešení pomocí součinů matice s vektorem a předpodmínění. FrontISTR poskytuje následující iterační metody.

Iterační metoda Typické použití Poznámky
CG Symetrické pozitivně definitní úlohy Standardní kandidát pro strukturální analýzy a analýzy vedení tepla.
BiCGSTAB Nesymetrické úlohy Kandidát v případech, kdy kontakt nebo vazební účinky vytvářejí výraznou nesymetrii.
GMRES Nesymetrické úlohy Používá se se zadanou velikostí Krylovova podprostoru.
GPBiCG Nesymetrické úlohy Používá se jako vylepšená metoda z rodiny BiCGSTAB.
GMRESR Nesymetrické úlohy, pokročilé aplikace Volba používající GMRES ve vnořené podobě.
GMRESREN Nesymetrické úlohy, pokročilé aplikace Rekurzivní varianta z rodiny GMRESR.

CG předpokládá, že matice je symetrická pozitivně definitní. Pokud třecí kontakt, nesymetrické zpracování omezení, vazební účinky nebo podobné faktory zavedou výraznou nesymetrii, zvažte BiCGSTAB, GMRES, GPBiCG nebo jiný nesymetrický řešič. U GMRES může zvětšení Krylovova podprostoru zlepšit konvergenci, ale zároveň zvyšuje spotřebu paměti.

Je-li zadán METHOD2, FrontISTR může při divergenci nebo selhání CG přepnout na alternativní iterační metodu. Tato funkce slouží jako záložní řešení v případech, kdy je primárním řešičem CG; alternativní metoda používá stejná zbývající nastavení a datové řádky jako primární řešič.

CG, BiCGSTAB, GPBiCG a PipeCG aktualizují vektor rezidua pomocí rekurentního vztahu, takže s rostoucím počtem iterací se hromadí zaokrouhlovací chyby a může vzniknout odchylka od skutečného rezidua. Aby se tomu zabránilo, vektor rezidua se po určitém počtu iterací znovu vypočítá z pravé strany a součinu matice s vektorem. Tuto periodu lze zadat pomocí RECOMPUTE_RESIDUAL. Delší perioda snižuje počet násobení matice vektorem, ale zvyšuje riziko, že se rekurentně aktualizované reziduum odchýlí od skutečného rezidua a nekonvergované řešení bude vyhodnoceno jako konvergované. Příliš krátká perioda naopak nejen zvyšuje počet násobení matice vektorem, ale může také narušit vztah mezi reziduem a pomocnými vektory udržovaný rekurentním vztahem, a tím zhoršit samotnou konvergenci. Výchozí hodnota tuto rovnováhu zohledňuje pro každou metodu řešení; po změně zkontrolujte historii konvergence a konečné relativní reziduum.

Předpodmínění

Předpodmínění transformuje matici koeficientů s cílem zlepšit konvergenci iterační metody a používá se pouze tehdy, je-li zvolena iterační metoda. Přímé metody předpodmínění nepoužívají. I u stejné iterační metody může volba předpodmiňovače podstatně změnit počet iterací a výpočetní čas potřebný ke konvergenci.

Předpodmiňovač Charakteristika Typické použití
SSOR Standardní předpodmiňovač; podporuje vícebarevné uspořádání. První kandidát k vyzkoušení; široce používaný ve strukturální analýze.
Diagonální škálování Lehký předpodmiňovač využívající diagonální prvky. Když je upřednostněna nízká výpočetní cena.
BILU Bloková neúplná LU faktorizace. Kandidát pro úlohy, které s SSOR obtížně konvergují.
AMG (Trilinos-ML) Algebraický multigrid využívající externí knihovnu Trilinos-ML. Kandidát pro rozsáhlé úlohy nebo úlohy, v nichž dominují hierarchické složky chyby.
AMG (SA-AMG) Algebraický multigrid typu vyhlazené agregace (Smoothed Aggregation) vestavěný v HEC-MW. Stejně jako výše; kandidát při použití AMG bez přidání externí knihovny.
SAINV Řídká aproximace inverzní matice. Specializovaná možnost předpodmínění pro kontaktní úlohy nebo prostředí s distribuovanou pamětí.
RIF Robustní neúplná faktorizace. Další možnost založená na neúplné faktorizaci.

SSOR je standardní volba a při paralelismu OpenMP se používá verze s vícebarevným uspořádáním. Diagonální škálování je výpočetně lehké, i když míra zlepšení konvergence závisí na úloze. BILU je implementováno jako bloková neúplná LU faktorizace a podporuje také matice s obecným počtem stupňů volnosti. Pro rodinu BILU existuje cesta, která při divergenci iterační metody automaticky zvýší koeficient diagonální korekce SIGMA_DIAG a pokus opakuje; způsob zadání hodnoty naleznete v referenci klíčového slova.

AMG (algebraický multigrid) má dvě implementace: jednu využívající externí knihovnu Trilinos-ML a SA-AMG vestavěné v HEC-MW. Jde o nezávislé implementace s rozdílnými požadavky na sestavení a dostupnými volbami.

AMG využívající Trilinos-ML vyžaduje, aby bylo ML při sestavení povoleno. Lze zadat vyhlazovač, multigridový cyklus, schéma hrubnutí a další nastavení; podrobné hodnoty naleznete v referenci klíčových slov.

SA-AMG je předpodmiňovač algebraického multigridu typu vyhlazené agregace a nevyžaduje Trilinos-ML. Interně však používá LAPACK, takže je nutné sestavení s povoleným LAPACK; pokud je vybráno v sestavení bez LAPACK, běh skončí bez zahájení analýzy. Pro řešení na hrubé síti lze v sestaveních s povoleným MUMPS použít MUMPS; jinak se použije vestavěná přímá metoda pro husté matice.

SA-AMG je primárně určeno pro symetrické pozitivně definitní systémy (CG), ale podporuje také nesymetrické redukované systémy vznikající při třecím kontaktu (BiCGSTAB, GMRES a další). Podporuje 1 (vedení tepla), 2 (rovinná úloha), 3 (těleso) a 6 (skořepina) stupňů volnosti na uzel, ale nepodporuje matice, v nichž se počet stupňů volnosti mezi uzly liší. Lze zadat řešič hrubé sítě, multigridový cyklus, řád vyhlazovače a další volby, avšak pro standardní analýzy lze použít výchozí hodnoty. Hodnoty a syntaxi naleznete v referenci klíčových slov. V sestaveních s povoleným GPU (OpenACC) probíhá fáze aplikace předpodmiňovače na GPU.

Při použití SAINV v paralelní analýze obsahující kontakt nebo omezení MPC může hloubka překrytí použitá pro dekompozici oblasti ovlivnit konvergenci.

Přímé metody

Přímé metody řeší lineární rovnice faktorizací matice koeficientů. Protože nezávisí na počtu iterací, jsou robustní a mohou být stabilní volbou pro analýzy obsahující kontakt nebo podmínky omezení. Jejich spotřeba paměti však s velikostí úlohy roste.

Přímá metoda Paralelní prostředí Použití
MUMPS Paralelní MPI Řeší řídké matice přímou metodou v prostředích s distribuovanou pamětí.
MKL Intel MKL / OpenMP Přímý řešič založený na Intel MKL. Interně se používá Intel PARDISO. Při více procesech MPI se používá cesta Cluster MKL. DIRECTmkl je alias pro MKL.

Přímé metody lze použít jak pro symetrické, tak pro nesymetrické matice. MUMPS a MKL vyžadují, aby byly při sestavení připojeny odpovídající knihovny. V prostředích bez těchto knihoven je nelze použít; požadované závislosti a volby CMake naleznete v průvodci sestavením.

FrontISTR obsahuje také vestavěnou cestu přímého řešiče, která nepoužívá externí knihovnu, ale pro běžné analýzy vyžadující přímou metodu by se měly zpravidla nejprve zvažovat MUMPS nebo MKL.

Na přímé metody se předpodmínění neaplikuje. I když je v !SOLVER zadán předpodmiňovač, cesta přímého řešiče jej nepoužije.

Způsoby zpracování MPC

Způsob zpracování MPC určuje, jak jsou stupně volnosti propojené vícebodovými vazbami začleněny do lineárních rovnic. I při stejných rovnicích omezení ve vstupních datech mění způsob zpracování vlastnosti matice koeficientů a chování konvergence.

Způsob zpracování MPC Charakteristika Výchozí použití
Penalizační metoda Přibližně splňuje omezení přidáním velkých členů tuhosti do rovnic omezení. Výchozí pro přímé metody.
Explicitní eliminace stupňů volnosti Eliminuje omezené stupně volnosti a řeší redukovaný lineární systém. Výchozí pro iterační metody.

Penalizační metoda je výchozí pro přímé metody, zatímco explicitní eliminace stupňů volnosti je výchozí pro iterační metody. Dříve dostupná metoda MPC-CG byla odstraněna; při zadání MPCMETHOD=2 se vypíše varování a vstup se zpracuje podle těchto výchozích nastavení.

Při explicitní eliminaci stupňů volnosti se soustředěné hmotnosti používané v modální analýze a explicitní dynamické analýze rovněž redukují stejnou transformací jako matice tuhosti. Protože redukovaná matice hmotnosti obecně není diagonální, používají se jako soustředěné hmotnosti součty jejích řádků. U vazeb spojení nebo interpolace, v nichž je součet koeficientů vazbové rovnice 1, se hmotnost závislého stupně volnosti rozděluje mezi hlavní stupně volnosti úměrně koeficientům.

Způsob zpracování MPC lze explicitně zadat pomocí !SOLVER v MPCMETHOD. Význam a syntaxi jednotlivých hodnot naleznete v referenci klíčového slova.

Eliminace kontaktních stupňů volnosti

Eliminace kontaktních stupňů volnosti redukuje dodatečné kontaktní stupně volnosti zavedené kontaktem SLAGRANGE před předáním systému lineárnímu řešiči. Eliminace těchto kontaktních stupňů volnosti může zlepšit vlastnosti lineárního systému zpracovávaného iterační metodou.

Ve výchozím automatickém režimu je eliminace kontaktních stupňů volnosti zapnuta pro iterační metody a vypnuta pro přímé metody. U přímých metod je k dispozici cesta, která přímo řeší rozšířený systém obsahující kontaktní stupně volnosti.

Je-li explicitně zadán CONTACT_ELIM, lze eliminaci kontaktních stupňů volnosti provést také při použití přímé metody. Volby typu kontaktu, kontaktní dvojice a kontaktního algoritmu na straně vstupu naleznete na stránce Kontakt a vložení.

Pomocné funkce

Odhad čísla podmíněnosti, výpisy matic a protokolování lze použít ke zkoumání konvergence a výkonu řešiče. Pro běžné analýzy tyto funkce nejsou nutné a zapínají se především při ladění nebo vyhodnocování výkonu.

Funkce Účel Poznámky
Odhad čísla podmíněnosti Vypíše ukazatel čísla podmíněnosti pro CG a GMRES. Dostupné ve sestaveních s povoleným LAPACK.
Výpis matice Uloží matici a pravou stranu předané řešiči. Podporuje formáty Matrix Market, CSR a BSR.
DUMPEXIT Ukončí analýzu po výpisu matice. Používá se, když je pro externí ověření požadována pouze matice.
ITERLOG Vypíše historii konvergence iterační metody. Používá se ke kontrole vývoje rezidua.
TIMELOG Vypíše výpočetní čas řešiče. VERBOSE vypíše podrobnější rozpis.
STEPLOG Vypíše informace o krocích. Používá se ke kontrole průběhu analýzy.
LOGLEVEL Vypíše diagnostické informace, například konstrukci hierarchie předpodmiňovačů AMG. Zadává se nezávisle na ITERLOG a TIMELOG. Vyšší hodnoty zvyšují množství výstupu.

Výpis matice umožňuje kontrolovat matici koeficientů sestavenou analýzou pomocí externích nástrojů. Je-li zapnut DUMPEXIT, analýza se ukončí po uložení matice a pravé strany. Odhad čísla podmíněnosti je experimentální funkce dostupná s CG a GMRES a lze ji použít k diagnostice chování konvergence.

Související témata