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 PETSc
moż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.
źródło
Odpowiedzi:
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 wMatSetNearNullSpace()
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.
źródło
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).
źródło
PCFIELDSPLIT
w PETSc), ale wygładzona agregacja jest zwykle bardziej odporna na elastyczność.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.x x , 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.
źródło
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.
źródło