Přeskočit na obsah

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čDruhCo 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 rozkladStř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.

Panel Průběh výpočtu: Lineární statika, Konvergoval, 1,2 s; Stav 8/8, Iterace 119 max, Chyba energie 8,26×10⁻⁷, Tolerance 1×10⁻⁶; záložka Konvergence s osmi křivkami chyby energie klesajícími z 10⁰ pod 10⁻⁶ mezi 110 a 120 iteracemi a zaškrtnutými štítky G1, G2, Q1, Q2, Q3, Q4, T1, W1
Průběh výpočtu po F5 v příkladu silničního nadjezdu: lineární statika, zkonvergováno za 1,2 s; všech 8 zatěžovacích stavů vyřešeno metodou sdružených gradientů s multigridem, nejpomalejší za 119 iterací, na chybu energie 8,26×10⁻⁷ proti toleranci 1×10⁻⁶. Jedna křivka na zatěžovací stav, G1 až W1.
ČástCo říká
ZáhlavíAnalýza, její stav – Příprava, Sestavení, Faktorizace, Iterace, pak Konvergoval, Nekonvergoval, Zastaveno nebo Selhalo – a uplynulý čas
ÚdajeStav (kolikátý z kolika), Iterace, Chyba energie nebo Reziduum a Tolerance, ke které výpočet směřuje
Záložka KonvergenceChyba 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 StatistikyBě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

Záložka Statistiky panelu Průběh výpočtu s řádky Řešič Metoda sdružených gradientů, Zatěžovací stavy Všech 8 vyřešeno, Iterace 119, Nejhorší reziduum 9,38×10⁻⁷, Kontrola mechanismů Převzato, Odhad podmíněnosti 211, Čas 1,11 s a Řešení 983 ms
Tentýž běh na záložce Statistiky: metoda sdružených gradientů, všech 8 zatěžovacích stavů vyřešeno, 119 iterací, nejhorší reziduum přepočtené z výsledku 9,38×10⁻⁷, kontrola mechanismů převzatá, odhad podmíněnosti 211 a celkem 1,11 s, z toho 983 ms samotné řešení.
ŘádekVýznam
Výsledek, Řešič, Zatěžovací stavyCo běželo, jakou metodou a s jakým předpodmíněním a kolik stavů bylo vyřešeno
IteraceNejví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ěnostiJak š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
ČasBě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.
Dialog Nastavení se sekcemi Vzhled (motiv a jazyk) a Výpočetní jádro: jádro paralelní nebo sériové, vlákna Automaticky, přepínače automatického přepočtu a hlášení pozastavených analýz a údaj 8 z 8 vláken
Nastavení, horní část: Vzhled a pod ním Výpočetní jádro – na tomto stroji 8 z 8 vláken, paralelní jádro, Vlákna na Automaticky a přepínače Přepočítávat automaticky a Hlásit pozastavené analýzy.

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.

TolerancePoužití
1e-6Vý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:

  1. Vytvořte druhé nastavení s jiným řešičem – přímý proti CG, nebo jiné předpodmínění.
  2. Spočítejte obě a porovnejte jejich řádky Poslední výpočet ve správci analýz.
  3. 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.