Volba lineárního řešiče
Sdružené gradienty s Jacobiho, Choleského nebo multigridovým předpodmíněním, nebo přímý rozklad – co který řešič dělá a kdy na volbě záleží.
Typy analýz 8 min čtení
Každá analýza končí lineární soustavou a způsobů, jak ji vyřešit, je víc. Elementarium umožňuje pro každé nastavení analýzy zvolit mezi iterační metodou sdružených gradientů s předpodmíněním a přímou faktorizací. Většině modelů je volba lhostejná, některým ne. Průběh výpočtu ukazuje, jak kterýkoli z nich za běhu konverguje.
Řešiče
| Řešič | Druh | Co dělá |
|---|---|---|
| Metoda sdružených gradientů – výchozí | Iterační | Krok za krokem zpřesňuje počáteční odhad, dokud relativní reziduum neklesne pod zadanou toleranci. Ukládá jen matici a několik vektorů, nic víc |
| Choleského rozklad () | Přímý | Faktorizuje na dolní trojúhelníkovou matici a její transpozici. Vyžaduje symetrickou pozitivně definitní |
| Choleského rozklad () | Přímý | Totéž s vytknutou diagonálou, takže zvládne i symetrické matice, které jsou indefinitní – právě to sleduje iterace teorie II. řádu |
Přímé řešiče jsou řídké: využívají toho, že matice tuhosti je z většiny nulová, takže cena roste mnohem pomaleji, než by naznačovala druhá mocnina počtu stupňů volnosti. Matice navíc neukládá ani nuly uvnitř bloku 6 × 6 každého uzlu.
Všechny tři běží vícevláknově tam, kde prohlížeč povolí cross-origin izolaci – viz Vlákna řešiče níže.
Předpodmínění pro CG
Sdružené gradienty konvergují rychlostí danou podmíněností soustavy. Matice tuhosti, ve které se tuhosti mezi tuhým sloupem a měkkou pružinou liší o řády, bývá podmíněná špatně. Předpodmínění převede úlohu na jinou, která konverguje rychleji:
| Předpodmínění | Cena za iteraci | Účinek |
|---|---|---|
| Jacobi (diagonální) – výchozí | Zanedbatelná | Odstraní rozdíly v měřítku mezi stupni volnosti. Levné, plně vícevláknové a pro rámy stačí |
| Neúplný Choleského rozklad | Střední | Přibližná faktorizace (IC0); počet iterací obvykle sníží o řád, za cenu sekvenční přípravy |
| Algebraický multigrid (AMG) | Vyšší příprava | Útočí na dlouhovlnnou chybu, kterou Jacobi-CG odstraňuje pomalu. Nejsilnější na velkých sítích plošných prvků |
| Žádný | – | Čisté CG, jen pro srovnání |
Multigrid
Multigrid dostal ve verzi 0.5.0 tři změny, díky kterým je to předpodmínění, po kterém sáhnout u modelu s deskami – správce analýz sám nabídne Přepnout na AMG, když takový model uvidí:
- Zná pohyby tuhého tělesa. S volbou Módy tuhého tělesa na Auto se hrubé úrovně sestavují s vědomím, jak se skořepina nebo rám pohybuje, když není přetvořen, takže typický výpočet zkonverguje v desítkách iterací místo stovek či tisíců.
- Jeho výchozí vyhlazovač je vícevláknový. Vyhlazovačem je nyní SPAI(0), který běží na všech jádrech. ILU(0), dřívější výchozí volba, běžel na jednom jádře a s více vlákny se zpomaloval; v nabídce zůstává a je tak označen. Další možnosti jsou Čebyševův polynom, Tlumený Jacobi a sekvenční Gauss-Seidel.
- Řeší zatěžovací stavy společně. Až osm zatěžovacích stavů sdílí jeden průchod multigridovou hierarchií s využitím vektorových (SIMD) instrukcí procesoru – u modelů s několika stavy 1,2–1,7× rychleji.
Cyklus (V nebo W), počet průchodů vyhlazování, práh silné vazby a velikost nejhrubší úrovně jsou přístupné v nastavení AMG. Nechte je být, dokud vám údaj Poslední výpočet nedá důvod je měnit.
Kde se volba provádí
Na dvou místech, přičemž druhé má přednost před prvním:
- Nastavení projektu › Výpočet › Řešič – výchozí nastavení projektu, ze kterého vychází každá analýza.
- Správce analýz › Lineární řešič – pro každé nastavení analýzy zvlášť. Použít výchozí projektu se řídí projektem; Nastavit jako výchozí povýší volbu tohoto nastavení na výchozí pro projekt. Řádek Poslední výpočet ukazuje, co nastavení udělala při posledním běhu analýzy: nejvíce iterací, které potřeboval některý zatěžovací stav, nejhorší relativní reziduum přepočtené z výsledku a čas výpočtu.
Modální analýza sekci lineárního řešiče nemá; její nastavení vlastních čísel popisuje Modální analýza.
Průběh výpočtu
Výpočet, který trvá déle než okamžik, otevře vedle modelu panel Průběh výpočtu. Ukazuje běh tak, jak probíhá: který zatěžovací stav se právě řeší, aktuální iteraci vzhledem ke stropu, chybu a graf konvergence s jednou křivkou na každý zatěžovací stav.
| Část | Co říká |
|---|---|
| Záhlaví | Analýza, její stav – Příprava, Sestavení, Faktorizace, Iterace, pak Konvergoval, Nekonvergoval, Zastaveno nebo Selhalo – a uplynulý čas |
| Údaje | Stav (kolikátý z kolika), Iterace, Chyba energie nebo Reziduum a Tolerance, ke které výpočet směřuje |
| Záložka Konvergence | Chyba v každé iteraci v logaritmickém měřítku, jedna křivka na zatěžovací stav, tolerance jako čárkovaná čára. Ke každému zatěžovacímu stavu štítek: Konvergoval, Počítá se, Čeká, Nekonvergoval |
| Záložka Statistiky | Běh v číslech – viz níže |
| Zápatí | Otevírat při výpočtu a během běhu Zastavit (po dokončení Spustit / Spustit vše) |
Graf umí vykreslit dvě míry. Chyba energie je to, co CG minimalizuje, takže její křivka nikdy nestoupá; je to skutečný obraz toho, jak blízko je výsledek. Reziduum je to, co testuje tolerance, takže rozhoduje o tom, kdy je stav hotov; může zůstat vysoko nebo chvíli stoupat, zatímco se výsledek zlepšuje. Přímý řešič nevykazuje ani jedno: nemá iterace a panel místo nich ukazuje faktorizaci.
Zastavit čistě ukončí běh mezi iteracemi. Už vyřešené výsledky zůstanou; ostatní se vykážou jako nespočítané.
Záložka Statistiky
| Řádek | Význam |
|---|---|
| Výsledek, Řešič, Zatěžovací stavy | Co běželo, jakou metodou a s jakým předpodmíněním a kolik stavů bylo vyřešeno |
| Iterace | Nejvíce iterací, které některý zatěžovací stav potřeboval k dosažení tolerance |
| Nejhorší reziduum | přepočtené z výsledku, největší přes zatěžovací stavy. Říká, zda výsledek splňuje rovnováhu, ať řešič hlásil cokoli |
| Kontrola mechanismů | Zda kontrola před výpočtem prošla, nebo byla převzata z posledního běhu |
| Odhad podmíněnosti | Jak špatně podmíněná je . Nad zhruba ztrácí výsledek platné číslice – hledejte konstrukci blízkou mechanismu nebo velmi měkkou pružinu |
| Zamčená volná pootočení | Pootočení uzlů, která žádný prut neztužuje, například ve styčnících příhradoviny, držená tak, aby šla soustava vyřešit. Nenesou žádný výsledek |
| Čas | Běh rozdělený na sestavení modelu, řešení, vnitřní síly, výsledky desek, odhad chyby, posuny a reakce |
Poslední výpočet a Podle analýzy přepínají mezi posledním během a souhrnem po jednotlivých nastaveních analýzy. Volba v záhlaví dělá totéž pro graf konvergence: Aktuální výpočet sleduje to, co právě běží, Všechny analýzy je vypíše.
Vlákna řešiče
Vícevláknové sestavení rozděluje mezi vlákna procesoru sestavení matice, násobení maticí a – od verze 0.4.0 – i všechny ostatní kroky každé iterace CG. Kolik jich bude, je nastavení:
- Nastavení › Výpočetní jádro › Vlákna – Automaticky (nápověda uvádí, kolik jich je k dispozici), nebo pevný počet.
- Automaticky vezme polovinu logických procesorů, nejvýše osm. Na jedno fyzické jádro obvykle připadají dva logické procesory (hyperthreading); iterační řešení je omezené propustností paměti, takže druhé vlákno na stejném jádře přidá další účastníka každé synchronizace, ale žádnou propustnost. Nad osm vláken stojí koordinace tolika workerů v prohlížeči víc, než ušetří.
- Samotné Výpočetní jádro je Paralelní, nebo Sériové. Kde stránka není cross-origin izolovaná, běží jádro v jednom vlákně a nastavení to uvádí – viz Systémové požadavky.
Méně vláken nechá prostor zbytku počítače – videohovoru, druhému oknu prohlížeče, které počítá něco jiného. Pevný počet může vlákna jen ubrat: Automaticky je zároveň strop.
Který použít
Začněte výchozím. Sdružené gradienty s Jacobiho předpodmíněním jsou levné, vícevláknové od začátku do konce a na rámech a příhradových konstrukcích konvergují rychle.
Přepněte na multigrid, když má model desky a průběh výpočtu ukazuje stovky nebo tisíce iterací na zatěžovací stav. Sítě desek jsou místem, kde je Jacobi-CG nejslabší a AMG nejsilnější. Nadjezd výše je přesně tento případ: 18 654 stupňů volnosti, většinou skořepiny mostovky. Jacobi-CG potřebuje na nejpomalejší zatěžovací stav 3 147 iterací, AMG 119. S multigridem se dodávají i vzorové příklady.
Neúplný Choleského rozklad si nechte pro výjimečně špatně podmíněný rám. Jeho příprava i trojúhelníkové výpočty běží v jednom vlákně, takže na velkém modelu je ze všech tří nejpomalejší: nadjezd s IC0 počítá kolem deseti sekund, s Jacobim nebo AMG jednu až dvě.
Přímý řešič použijte, když:
- řešíte tutéž matici pro mnoho zatěžovacích stavů a paměť není omezením – faktorizace proběhne jednou a každý další stav je jen levná dvojice řešení trojúhelníkových soustav;
- je model špatně podmíněný a iterační řešič uvázne (Nekonvergoval);
- chcete nezávislou kontrolu iteračního výsledku. Shoda dvou různých algoritmů na pět platných číslic je důkaz jiného druhu než opakované spuštění téhož.
Tolerance
CG se zastaví, když jeho odhad relativního rezidua klesne pod toleranci:
Výchozí hodnota je 1e-6 se stropem 10 000 iterací; toleranci lze nastavit kdekoli
od 1e-12 do 1e-3.
| Tolerance | Použití |
|---|---|
1e-6 | Výchozí. Chyba posunů je omezena odhadem čísla podmíněnosti krát reziduum: při odhadu ve stovkách zhruba čtyři platné číslice – stále nad jakoukoli inženýrskou potřebu |
1e-5 a volnější | Ve výsledcích je to vidět: posuny i reakce si reziduum nesou s sebou. Na rychlý pohled, ne do statického výpočtu |
Nedůvěřujte volné toleranci na špatně podmíněném modelu, kde může být reziduum malé, zatímco chyba posunů nikoli. Právě to mají zachytit řádky Nejhorší reziduum a Odhad podmíněnosti na záložce Statistiky.
Pokud se dvě nastavení, jedno přímé a jedno CG s tolerancí 1e-6, rozcházejí za čtvrtou
platnou číslicí, je podmíněnost špatná a příčina je v modelu: velmi tuhá pružina, průřez
ve špatných jednotkách, konstrukce blízká mechanismu.
Chyby řešiče uvádějí obvyklé příčiny.
Dvě odpovědi vedle sebe
Každá analýza v Elementariu je pojmenované nastavení, které si ukládá volbu řešiče a drží vlastní výsledky. U výsledku, kterým si nejste jisti:
- Vytvořte druhé nastavení s jiným řešičem – přímý proti CG, nebo jiné předpodmínění.
- Spočítejte obě a porovnejte jejich řádky Poslední výpočet ve správci analýz.
- Připněte každé do jiného panelu prohlížeče a přečtěte rozhodující veličinu v obou.
Rozdíl odpovídá na otázku „záleží tu na řešiči“. Téměř vždy zní odpověď ne, a teď to můžete doložit číslem místo předpokladu.
Co volba neovlivní
Řešič rozhoduje o tom, jak se řeší, ne o tom, co je . Formulace prvků, hustota sítě, podpory, uvolnění a zatížení jsou pro každý řešič stejné a každou chybu v nich všechny věrně reprodukují. Zkonvergovaný výsledek CG a přímý výsledek téhož chybného modelu se dokonale shodují.
Modální analýza a stabilita řeší problém vlastních čísel, ne lineární soustavu. Jejich nastavení (počet tvarů, cílová hmota, ověření úplnosti Sturmovou posloupností) popisují články Modální analýza a Lineární stabilita.
Související
Deformační metoda vysvětluje, odkud se bere; Formulace prvků, čím do ní každý prvek přispívá; poznámky k vydání zaznamenávají, co každá změna řešiče udělala s časy výpočtu.
Našli jste na této stránce chybu nebo nejasnost? Napište nám a opravíme to.


