Preskočiť na obsah

Riešič a predpodmieňovanie

Lineárne riešiče FrontISTR sa konfigurujú voľbou priamej alebo iteračnej metódy; iteračné metódy sa pri riešení lineárnych rovníc kombinujú s predpodmieňovačom. Metóda spracovania MPC a eliminácia kontaktných stupňov voľnosti sú pomocné voľby určujúce spôsob spracovania lineárnej sústavy obsahujúcej viacbodové alebo kontaktné väzby.

Prehľad funkcií

Nastavenia riešiča a predpodmieňovania pozostávajú z nasledujúcich volieb. Najprv vyberte ako lineárny riešič iteračnú alebo priamu metódu. Predpodmieňovač sa kombinuje iba s iteračnou metódou.

Kategória Hlavné možnosti Úloha
Iteračné metódy CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN Riešia veľké riedke matice s relatívne efektívnym využitím pamäte.
Predpodmieňovače pre iteračné metódy SSOR, diagonálne škálovanie, BILU, AMG, SAINV, RIF Zlepšujú konvergenciu iteračných metód. Pri priamych metódach sa nepoužívajú.
Priame metódy MUMPS, MKL Robustne riešia lineárne rovnice faktorizáciou matice.
Metódy spracovania MPC Penalizačná metóda, explicitná eliminácia DOF Začleňujú viacbodové väzby do lineárnej sústavy.
Eliminácia kontaktných DOF Automatická, vždy povolená Riadi spracovanie kontaktných stupňov voľnosti pridaných kontaktom SLAGRANGE.
Pomocné funkcie Odhad čísla podmienenosti, výpis matice, protokolovanie Podporujú ladenie, hodnotenie konvergencie a výkonnosti.

Pri paralelnom vykonávaní možno paralelizmus MPI založený na delení oblasti kombinovať s vláknovým paralelizmom OpenMP. Iteračné metódy sú štandardnou voľbou pre rozsiahle paralelné analýzy, zatiaľ čo priame metódy sa používajú vtedy, keď sú pripojené požadované knižnice a je potrebné robustnejšie riešenie.

Voľba riešiča a predpodmieňovača

Najprv rozhodnite, či použijete iteračnú alebo priamu metódu. Ak vyberiete iteračnú metódu, následne zvoľte predpodmieňovač.

Rozhodovací faktor Odporúčaný prístup
Veľkosť úlohy Priame metódy sú stabilné a ľahko použiteľné pri malých až stredných úlohách. Iteračné metódy sú pri veľkých úlohách pamäťovo efektívnejšie.
Symetria matice Pre symetrické pozitívne definitné úlohy zvážte CG. Pre nesymetrické úlohy zvážte BiCGSTAB, GMRES, GPBiCG alebo podobné metódy.
Paralelné prostredie Pri paralelizme MPI kombinujte iteračnú metódu s delením oblasti. Pre predpodmieňovanie pri paralelizme OpenMP zvážte viacfarebnú implementáciu SSOR.
Predpodmieňovač (pri použití iteračnej metódy) Najprv vyskúšajte predvolený SSOR, potom zvážte AMG. SSOR má pri dobrej konvergencii nízke výpočtové náklady; AMG je vhodné pre zložité rozsiahle úlohy. AMG je dostupné ako implementácia Trilinos-ML aj ako SA-AMG zabudované v HEC-MW; vyberte podľa konfigurácie zostavenia.
Kontakt a MPC V analýzach obsahujúcich kontakt alebo viacbodové väzby ovplyvňuje voľba metódy spracovania MPC a eliminácie kontaktných DOF konvergenciu a robustnosť.
Externé knižnice MUMPS, MKL a AMG (Trilinos-ML) sú dostupné v zostaveniach prepojených so zodpovedajúcimi knižnicami. AMG (SA-AMG) je dostupné v zostaveniach s povolenou knižnicou LAPACK.

Pri štandardných analýzach spravidla postačuje predvolená tolerancia konvergencie, maximálny počet iterácií a koeficient diagonálnej korekcie predpodmieňovača. Iba pri pomalej konvergencii alebo divergencii riešenia prehodnoťte v tomto poradí iteračnú metódu, predpodmieňovač, metódu spracovania MPC a elimináciu kontaktných DOF. Hodnoty parametrov a syntax nájdete v referencii kľúčového slova !SOLVER.

Iteračné metódy

Iteračné metódy riešia veľké riedke sústavy opakovanou aktualizáciou riešenia pomocou súčinov matice a vektora a predpodmieňovania. FrontISTR poskytuje nasledujúce iteračné metódy.

Iteračná metóda Typické použitie Poznámky
CG Symetrické pozitívne definitné úlohy Štandardný kandidát pre štrukturálne analýzy a analýzy vedenia tepla.
BiCGSTAB Nesymetrické úlohy Vhodný kandidát, keď kontakt alebo viazané efekty spôsobujú výraznú nesymetriu.
GMRES Nesymetrické úlohy Používa sa so zadanou veľkosťou Krylovovho podpriestoru.
GPBiCG Nesymetrické úlohy Používa sa ako vylepšená metóda z rodiny BiCGSTAB.
GMRESR Nesymetrické úlohy, pokročilé použitie Možnosť používajúca GMRES vo vnorenom tvare.
GMRESREN Nesymetrické úlohy, pokročilé použitie Rekurzívny variant z rodiny GMRESR.

CG predpokladá, že matica je symetrická pozitívne definitná. Ak trecí kontakt, nesymetrické spracovanie väzieb, väzbové efekty alebo podobné faktory spôsobujú výraznú nesymetriu, zvážte BiCGSTAB, GMRES, GPBiCG alebo iný nesymetrický riešič. Pri GMRES môže zväčšenie Krylovovho podpriestoru zlepšiť konvergenciu, ale zároveň zvýši spotrebu pamäte.

Ak je zadané METHOD2, FrontISTR môže pri divergencii alebo zlyhaní CG prepnúť na alternatívnu iteračnú metódu. Táto funkcia slúži ako záložné riešenie pre prípady, keď je CG primárnym riešičom; alternatívna metóda používa rovnaké ostatné nastavenia a dátové riadky ako primárny riešič.

Metódy CG, BiCGSTAB, GPBiCG a PipeCG aktualizujú vektor rezídua rekurentným vzťahom, takže s rastúcim počtom iterácií sa môžu hromadiť chyby zaokrúhľovania a vzniknúť odchýlka od skutočného rezídua. Aby sa tomu zabránilo, vektor rezídua sa po určitom počte iterácií znovu vypočíta z pravej strany a maticovo-vektorového súčinu. Túto periódu možno nastaviť pomocou RECOMPUTE_RESIDUAL. Predĺženie periódy znižuje počet maticovo-vektorových súčinov, ale zvyšuje riziko, že sa rekurentne aktualizované rezíduum vzdiali od skutočného rezídua a nekonvergované riešenie sa vyhodnotí ako konvergované. Naopak, ak je perióda príliš krátka, nielenže sa zvýši počet maticovo-vektorových súčinov, ale môže sa narušiť aj vzťah medzi rezíduom udržiavaným rekurentným vzťahom a pomocnými vektormi, čo môže zhoršiť samotnú konvergenciu. Predvolená hodnota pre každú metódu predstavuje kompromis medzi týmito účinkami; ak ju zmeníte, skontrolujte históriu konvergencie a konečné relatívne rezíduum.

Predpodmieňovanie

Predpodmieňovanie transformuje maticu koeficientov s cieľom zlepšiť konvergenciu iteračnej metódy a používa sa iba pri zvolenej iteračnej metóde. Priame metódy predpodmieňovanie nepoužívajú. Aj pri rovnakej iteračnej metóde môže voľba predpodmieňovača výrazne zmeniť počet iterácií a výpočtový čas potrebný na konvergenciu.

Predpodmieňovač Charakteristika Typické použitie
SSOR Štandardný predpodmieňovač; podporuje viacfarebné usporiadanie. Prvá voľba na vyskúšanie; široko používaný v štrukturálnej analýze.
Diagonálne škálovanie Ľahký predpodmieňovač využívajúci diagonálne prvky. Keď sa uprednostňujú nízke výpočtové náklady.
BILU Bloková neúplná LU faktorizácia. Kandidát pre úlohy, pri ktorých je konvergencia so SSOR ťažká.
AMG (Trilinos-ML) Algebraická multigridová metóda prostredníctvom externej knižnice Trilinos-ML. Kandidát pre rozsiahle úlohy alebo úlohy dominované hierarchickými zložkami chyby.
AMG (SA-AMG) Algebraická multigridová metóda typu Smoothed Aggregation, zabudovaná v HEC-MW. Rovnaká oblasť použitia ako vyššie; kandidát, keď sa má AMG použiť bez pridania externej knižnice.
SAINV Riedka približná inverzia. Špecializovaná možnosť predpodmieňovania pre kontaktné úlohy alebo prostredia s distribuovanou pamäťou.
RIF Robustná neúplná faktorizácia. Ďalšia možnosť neúplnej faktorizácie.

SSOR je štandardná voľba a pri paralelizme OpenMP sa používa verzia s viacfarebným usporiadaním. Diagonálne škálovanie má nízke náklady, hoci zlepšenie konvergencie závisí od úlohy. BILU je implementovaná ako bloková neúplná LU faktorizácia a podporuje aj matice so všeobecným počtom stupňov voľnosti. Pre rodinu BILU existuje cesta, ktorá pri divergencii iteračnej metódy automaticky zvýši koeficient diagonálnej korekcie SIGMA_DIAG a výpočet zopakuje; spôsob zadania hodnoty nájdete v referencii kľúčového slova.

AMG (algebraická multigridová metóda) má dve implementácie: jednu využívajúcu externú knižnicu Trilinos-ML a SA-AMG zabudované v HEC-MW. Ide o nezávislé implementácie s odlišnými požiadavkami na konfiguráciu zostavenia a odlišnými dostupnými nastaveniami.

AMG s Trilinos-ML vyžaduje, aby bolo ML povolené pri zostavovaní. Možno zadať vyhladzovač, viacúrovňový cyklus, metódu zhrubovania a ďalšie nastavenia; podrobné hodnoty nájdete v referencii kľúčových slov.

SA-AMG je predpodmieňovač algebraickej multigridovej metódy typu Smoothed Aggregation a nevyžaduje Trilinos-ML. Interne však používa LAPACK, preto je potrebné zostavenie s povolenou knižnicou LAPACK; ak sa vyberie v zostavení bez LAPACK, program skončí bez spustenia analýzy. Na riešenie na hrubej sieti možno v zostaveniach s povoleným MUMPS použiť MUMPS; inak sa použije zabudovaná priama metóda pre husté matice.

SA-AMG je určené predovšetkým pre symetrické pozitívne definitné sústavy (CG), podporuje však aj nesymetrické redukované sústavy vznikajúce pri trecom kontakte (BiCGSTAB, GMRES a ďalšie). Podporuje 1 (vedenie tepla), 2 (rovinná úloha), 3 (objemové prvky) a 6 (škrupiny) stupňov voľnosti na uzol, ale nie matice, v ktorých sa počet stupňov voľnosti líši medzi uzlami. Možno zadať riešič hrubej siete, viacúrovňový cyklus, stupeň vyhladzovača a ďalšie nastavenia, ale pre štandardné analýzy možno použiť predvolené hodnoty. Hodnoty a syntax nájdete v referencii kľúčových slov. V zostaveniach s povoleným GPU (OpenACC) sa fáza aplikácie predpodmieňovania vykonáva na GPU.

Ak sa SAINV používa v paralelnej analýze s kontaktom alebo väzbami MPC, hĺbka prekrytia pri delení oblasti môže ovplyvniť konvergenciu.

Priame metódy

Priame metódy riešia lineárne rovnice faktorizáciou matice koeficientov. Keďže nezávisia od počtu iterácií, sú robustné a môžu byť stabilnou voľbou pre analýzy obsahujúce kontaktné alebo väzbové podmienky. Ich spotreba pamäte však rastie s veľkosťou úlohy.

Priama metóda Paralelné prostredie Použitie
MUMPS Paralelné MPI Rieši riedke matice priamou metódou v prostrediach s distribuovanou pamäťou.
MKL Intel MKL / OpenMP Priamy riešič založený na Intel MKL. Interne sa používa Intel PARDISO. Pri viacerých procesoch MPI sa používa cesta Cluster MKL. DIRECTmkl je alias MKL.

Priame metódy možno použiť pre symetrické aj nesymetrické matice. MUMPS a MKL vyžadujú, aby boli pri zostavovaní pripojené zodpovedajúce knižnice. V prostrediach bez týchto knižníc ich nemožno použiť; požadované závislosti a možnosti CMake nájdete v návode na zostavenie.

FrontISTR obsahuje aj vstavanú cestu priameho riešiča, ktorá nepoužíva externú knižnicu, ale pri bežných analýzach vyžadujúcich priamu metódu by sa mali spravidla najprv zvážiť MUMPS alebo MKL.

Predpodmieňovanie sa na priame metódy neuplatňuje. Aj keď je v !SOLVER zadaný predpodmieňovač, na ceste priameho riešiča sa nepoužíva.

Metódy spracovania MPC

Metóda spracovania MPC určuje, ako sa stupne voľnosti spojené viacbodovými väzbami začlenia do lineárnych rovníc. Aj pri rovnakých väzbových rovniciach vo vstupných dátach mení metóda spracovania vlastnosti a konvergenčné správanie matice koeficientov.

Metóda spracovania MPC Charakteristika Predvolené použitie
Penalizačná metóda Približne spĺňa väzby pridaním veľkých členov tuhosti do väzbových rovníc. Predvolená pre priame metódy.
Explicitná eliminácia DOF Eliminuje viazané stupne voľnosti a rieši redukovanú lineárnu sústavu. Predvolená pre iteračné metódy.

Penalizačná metóda je predvolená pre priame metódy, zatiaľ čo explicitná eliminácia DOF je predvolená pre iteračné metódy. Predtým dostupná metóda MPC-CG bola odstránená; pri zadaní MPCMETHOD=2 sa vypíše upozornenie a použije sa príslušná predvolená metóda.

Pri explicitnej eliminácii DOF sa sústredené hmotnosti používané v modálnej analýze a explicitnej dynamickej analýze redukujú rovnakou transformáciou ako matica tuhosti. Keďže redukovaná matica hmotnosti vo všeobecnosti nie je diagonálna, ako sústredené hmotnosti sa používajú súčty jej riadkov. Pri spojovacích alebo interpolačných väzbách, v ktorých je súčet koeficientov väzbovej rovnice 1, sa hmotnosť závislých stupňov voľnosti rozdelí medzi nadradené stupne voľnosti úmerne koeficientom.

Metódu spracovania MPC možno explicitne zadať pomocou MPCMETHOD v !SOLVER. Význam a syntax jednotlivých hodnôt nájdete v referencii kľúčového slova.

Eliminácia kontaktných DOF

Eliminácia kontaktných DOF redukuje dodatočné kontaktné stupne voľnosti zavedené kontaktom SLAGRANGE pred odovzdaním sústavy lineárnemu riešiču. Eliminácia týchto kontaktných stupňov voľnosti môže zlepšiť vlastnosti lineárnej sústavy spracovávanej iteračnou metódou.

V predvolenom automatickom režime je eliminácia kontaktných DOF povolená pre iteračné metódy a zakázaná pre priame metódy. Pre priame metódy je k dispozícii cesta, ktorá rozšírenú sústavu obsahujúcu kontaktné stupne voľnosti rieši priamo.

Ak je explicitne zadané CONTACT_ELIM, elimináciu kontaktných DOF možno vykonať aj pri použití priamej metódy. Voľby typu kontaktu, kontaktného páru a kontaktného algoritmu na strane vstupu nájdete na stránke Kontakt a vloženie.

Pomocné funkcie

Odhad čísla podmienenosti, výpisy matice a protokolovanie možno použiť na skúmanie konvergencie a výkonnosti riešiča. Pri bežných analýzach nie sú tieto funkcie potrebné a povoľujú sa najmä na ladenie alebo hodnotenie výkonnosti.

Funkcia Účel Poznámky
Odhad čísla podmienenosti Vypíše indikátor čísla podmienenosti pre CG a GMRES. Dostupné v zostaveniach s povoleným LAPACK.
Výpis matice Uloží maticu a pravú stranu odovzdanú riešiču. Podporuje formáty Matrix Market, CSR a BSR.
DUMPEXIT Ukončí analýzu po výpise matice. Používa sa, keď je na externé overenie potrebná iba matica.
ITERLOG Vypíše históriu konvergencie iteračnej metódy. Používa sa na kontrolu priebehu rezíduí.
TIMELOG Vypíše výpočtový čas riešiča. VERBOSE vypíše podrobnejší rozpis.
STEPLOG Vypíše informácie o krokoch. Používa sa na kontrolu priebehu analýzy.
LOGLEVEL Vypíše diagnostické informácie, napríklad vytváranie hierarchie AMG predpodmieňovania. Zadáva sa nezávisle od ITERLOG a TIMELOG. Vyššia hodnota zvyšuje množstvo výstupu.

Výpis matice umožňuje kontrolovať maticu koeficientov zostavenú analýzou pomocou externých nástrojov. Keď je povolené DUMPEXIT, analýza sa ukončí po uložení matice a pravej strany. Odhad čísla podmienenosti je experimentálna funkcia dostupná s CG a GMRES a možno ju použiť na diagnostiku konvergenčného správania.

Súvisiace témy