Witam, chciałbym prosić o pomoc. Zajmuję się MES-em i jak wiadomo, uzyskuje duże macierze układów równań. Jestem ciekaw jaki algorytm polecanie, do rozwiązywania takich układów. Aktualnie zajmuję się Metodą Gradientów Sprzężonych, jednak może znacie coś szybszego!
Dwadziescia lat temu zdazylo mi sie implementowac metode analizy frontalnej pod DOS-em i byl to hardcore zwiazany ze znikomym rozmiarem RAM-u. Niemniej od tego czasu tematu nie dotykalem i przypuszczam, ze sporo nowego wymyslono. Zerknij to prac zrodlowych dotyczacych numeryki dla FEM.
Użytkownik "Damian G(Edek)" snipped-for-privacy@gmail.com napisał w wiadomości grup dyskusyjnych: snipped-for-privacy@j19g2000yqk.googlegroups.com...
Zajrzyj np. do Ansys Theory Manuala lub innej dokumentacji od komercyjnych kodów FEM - tam wszystko jest i nie trzeba drugi raz ameryki odkrywać... A odpowiedź co do algorytmu brzmi oczywiście - to zależy - jak faktycznie zajmujesz się MESem to powinieneś o tym wiedzieć. W praktyce (przynajmniej w obliczeniach mechanicznych) i tak stosuje się sparse / PCG, i niewiele nowego (poza solverami dla obliczeń równoległych) w ostatnich latach się pojawiło...
W zasadzie to jest dla ilustracji. Przy macierzy pełnej ma tylko znaczenie czy jest symetryczna i czy wymaga wyboru elementu wiodącego. Elementy zerowe i tak są przetwarzane. Tak więc dotyczy to zarówno MES jak i ogólnych, o ile uwzględnimy rozciągliwość pojęcia ,,sensowny czas''.
Dokładnie 64TB pamięci. Dlatego nie da się większych niż choćby owe 1k równań rozwiązywać układu bez uwzględnienia zer w macierzy. Dla MEB w ogóle rząd zadania typu 10k jest poza zasięgiem (macierz pełna) i dlatego MES króluje (rzadka, pasmowa macierz sztywności), 99.99% elementów macierzy to zera.
To bardzo zależy od konkretnego przypadku. Jeśli weźmiesz najprostsze zadanie pręta rozciąganego i włożysz choćby 1000 elementów _równej długości_ to się bardzo ładnie policzy i to z idealną dokładością.
Jeśli te sam pręt podzielisz w ten sposób, że każdy następny element będzie dwa razy krótszy (1, 0.5, 0.25,
0.125 itd. ), to gdzieś między 32 a 64 elementem (nie chce mi się dokładnie liczyć) _każdy_ solver się wyłoży. Układ będzie po prostu osobliwy. A zanim się wyłoży (czyli np. dla 30 elementów) rozwiązanie ucieknie ci w kosmos.
To, kiedy zaczynają się problemy numeryczne nie zależy tylko od ilości równań (problemy mogą być już przy dwu równaniach), ale też od wielu innych czynników. Nie ma prostej recepty.
PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.