Co to jest solidny, iteracyjny solver dla dużych problemów trójwymiarowo-sprężystych?

9

Zanurzam się w fascynujący świat analizy elementów skończonych i chciałbym rozwiązać duży problem termomechaniczny (tylko mechaniczny efekt termiczny , brak sprzężenia zwrotnego).

W przypadku problemu mechanicznego zrozumiałem już odpowiedź Geoffa , że muszę użyć iteracyjnego solvera ze względu na rozmiar mojej siatki. W odpowiedzi Matta przeczytałem dalej , że wybór właściwego algorytmu iteracyjnego jest trudnym zadaniem.

Pytam tutaj, czy istnieją jakieś doświadczenia dotyczące dużych trójwymiarowych problemów liniowo-elastycznych, które pomogłyby mi zawęzić moje poszukiwania najlepszej wydajności? W moim przypadku jest to struktura z cienkimi, wzorzystymi filmami i nieregularnie rozmieszczonymi materiałami (zarówno o wysokim CTE, jak i niskim CTE). W tej analizie termomechanicznej nie ma dużych odkształceń. Mogę korzystać z HPC mojego uniwersytetu [1.314 węzłów, z 2 procesorami AMD Opteron (każdy 2,2 GHz / 8 rdzeni)].

Myślę, że PETScmoże zawierać coś interesującego, zwłaszcza algorytmy, które dokonują pewnego rodzaju dekompozycji domen (FETI, multigrid), ale opcje mnie trochę przytłaczają i nie mam doświadczenia. Podoba mi się również wyrażenie „geometrycznie poinformowane warunki wstępne” , ale nie jestem pewien, czy to mi pomaga. Nie znalazłem jeszcze czegoś, co skupiałoby się na mechanice ciągłości liniowej.

Silne skalowanie (Amdahl) jest bardzo ważne w mojej aplikacji, ponieważ moi partnerzy przemysłowi nie mogą długo czekać na wyniki symulacji. Zdecydowanie doceniam nie tylko odpowiedzi, ale także rekomendacje do dalszego czytania w komentarzach.

Sebastian
źródło
Czy rozwiązujesz problemy statyczne? Wydaje się, że tak. Myślę, że w przypadku problemów dynamicznych lub harmonicznych czasowych odpowiedź byłaby inna.
Hui Zhang
statyczne tak. Dynamika jest zbyt droga.
Sebastian

Odpowiedzi:

6

Zakładając, że twoje struktury są w rzeczywistości trójwymiarowe (a nie tylko cienkie elementy, być może dyskretne z elementami powłoki) i że model jest większy niż kilkaset tysięcy dof, bezpośrednie solwery stają się niepraktyczne, szczególnie jeśli musisz rozwiązać każdy problem tylko raz. Ponadto, chyba że struktura jest zawsze „blisko” granicy Dirichleta, będziesz potrzebować metody wielopoziomowej, aby być wydajnym. Społeczność jest podzielona na „wielopoziomową” i „wielopoziomową dekompozycję domen”. Aby porównać matematykę, zobacz moją odpowiedź na: Jaka jest przewaga multigrid nad warunkami wstępnymi dekompozycji domen i odwrotnie?

Społeczność z wieloma sieciami ogólnie odnosi większe sukcesy w produkcji oprogramowania ogólnego przeznaczenia. Aby uzyskać elastyczność, sugeruję stosowanie wygładzonej agregacji, która wymaga przybliżonego „prawie zerowego odstępu”. W PETSc odbywa się to poprzez wybranie PCGAMG lub PCML (konfiguracja za pomocą --download-ml) i wywołanie w MatSetNearNullSpace()celu zapewnienia trybów sztywnego ciała.

Metody dekompozycji domen dają możliwość szybszego zgrubienia niż wygładzenie agregacji, a zatem być może są bardziej tolerancyjne na opóźnienia, ale „słaby punkt” pod względem wydajności bywa węższy niż wygładzanie agregacji. Jeśli nie chcesz przeprowadzać badań nad metodami dekompozycji domen, sugeruję użycie wygładzonej agregacji i być może spróbuję metody dekompozycji domen, gdy oprogramowanie stanie się lepsze.

Jed Brown
źródło
wielkie dzięki za tę bardzo pouczającą odpowiedź! Co dokładnie masz na myśli, mówiąc o granicy Dirichleta ? Blisko pod względem liczby elementów?
Sebastian,
Blisko pod względem odległości, mierzonej w elementach lub subdomenach (dla jednopoziomowego rozkładu domen z silnymi rozwiązaniami subdomen), wzdłuż ścieżki silnego materiału. Jeśli informacje muszą przejść przez wiele poddomen w celu ustalenia lokalnego rozwiązania, metody jednego poziomu będą się powoli zbiegać. Pamiętaj, że jedno silne połączenie nie wystarcza do uzyskania elastyczności, wszystkie tryby sztywnego korpusu muszą być kontrolowane.
Jed Brown
4

Powiedziałbym, że kanonicznym wyborem dla tego problemu byłby koniugat Gradient Solver plus algebraiczny wielosieciowy warunek wstępny. W przypadku PETSc, hypre / boomeramg lub ML byłyby oczywistymi warunkami wstępnymi.

Wszystkie te komponenty, gdy są stosowane przez PETSc, skalują się bardzo dobrze do tysięcy lub dziesiątek tysięcy procesorów, jeśli problem jest wystarczająco duży (co najmniej ~ 100 000 stopni swobody na proces MPI).

Wolfgang Bangerth
źródło
Zauważ, że BoomerAMG (i ogólnie klasyczny AMG) nie wykorzystuje informacji o pustym miejscu lub w inny sposób zapewnia, że ​​zgrubne przestrzenie mogą dokładnie reprezentować tryby rotacji. Możesz (i powinieneś) wypróbować, a także podzielić składniki i rozwiązać je osobno (użyj PCFIELDSPLITw PETSc), ale wygładzona agregacja jest zwykle bardziej odporna na elastyczność.
Jed Brown
1

Możesz łatwo stworzyć raczej dobry warunek wstępny dla elastyczności, jeśli materiał nie jest zbyt nieściśliwy (racja Poissona <0,4) poprzez zastosowanie oddzielnych elementów wstępnego przygotowania . Chodzi o to, aby po prostu mieć blokową macierz diagonalną z 3 blokami, z których każdy reprezentuje połączenia wzdłuż tego samego wymiaru fizycznego(x,y,z) to znaczy: K.xx, K.yy, K.zz.

W takim przypadku możesz użyć mniej zaawansowanych metod AMG, aby obliczyć przybliżenie każdego bloku odwrotnie i uzyskać całkiem niezły warunek wstępny.

Tomek
źródło
1

Walter Landry opracował kod trójwymiarowej deformacji elastostatycznej za pomocą adaptacyjnego systemu wielosiatkowego. Możesz znaleźć kod na

https://bitbucket.org/wlandry/gamra

Możesz uwzględnić efekt wymuszenia termicznego z izotropowym naprężeniem własnym i równoważnymi siłami ciała. Po ich zainstalowaniu solver będzie działał dobrze.

sylvain barbot
źródło