Duuuuuuuuuuuu?e uk?ady równa?

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!

Pozdrawiam Damian

Reply to
Damian G(Edek
Loading thread data ...

"Damian G(Edek)" napisal:

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.

Reply to
Jacek_P

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...

KZ

Reply to
KZ

Przepraszam, że późno odpowiadam.

Co masz na myśli pisząc duże? Takie 1k równań matlab rozwiązuje w sensownym czasie jako pełne.

Takie około 100k to według mnie tylko LLT.

Powyżej 1M równań zaczynają się schody, LLT produkuje wypełnienia i krytyczna jest renumeracja.

Gradienty potrzebują preconditionera bo inaczej jest katastrofa.

To tak w telegraficznym skrócie.

amx

PS. Ponawiam, bo poprzednio, przez pomyłkę wysłałem nie tam gdzie trzeba

Reply to
AMX

Mowisz o zagadnieniach typu MES, czy ogolnych ?

1M rownan to 1T wspolczynnikow. Trzeba duuuuzo pamieci :-)

Czy mi sie wydaje czy problemy dokladnosci numerycznej zaczynaja sie juz przy dziesiatkach rownan ?

J.

Reply to
J.F.

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.

Czołem

amx

Reply to
AMX

J.F. napisal:

Zapominasz, ze te macierze z reguly sa rzadkie. W efekcie

1M rownan to moze byc np. kilkanascie M wspolczynnikow. Jeszce nic strasznego. Gorzej z uwarunkowaniem, abys na wyjsciu smieci nie dostal.
Reply to
Jacek_P

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.