Was ist ein robuster, iterativer Löser für große linear-elastische 3D-Probleme?

9

Ich tauche in die faszinierende Welt der Finite-Elemente-Analyse ein und möchte ein großes thermomechanisches Problem lösen (nur thermische Pfeilmechanik, kein Feedback).

Für das mechanische Problem habe ich bereits aus Geoffs Antwort verstanden , dass ich aufgrund der Größe meines Netzes einen iterativen Löser verwenden muss. In Matts Antwort habe ich weiter gelesen , dass die Wahl des richtigen iterativen Algorithmus eine entmutigende Aufgabe ist.

Ich frage hier, ob es Erfahrungen mit großen linear-elastischen 3D-Problemen gibt, die mir helfen würden, meine Suche nach der besten Leistung einzugrenzen. In meinem Fall handelt es sich um eine Struktur mit dünnen, gemusterten Filmen und unregelmäßig platzierten Materialien (sowohl mit hohem als auch mit niedrigem CTE). Bei dieser thermomechanischen Analyse treten keine großen Verformungen auf. Ich kann das HPC meiner Universität verwenden [1.314 Knoten mit 2 AMD Opteron-Prozessoren (jeweils 2,2 GHz / 8 Kerne)].

Ich denke, es PETSckönnte etwas Interessantes enthalten, insbesondere die Algorithmen, die eine Art Domänenzerlegung durchführen (FETI, Multigrid), aber ich bin ein bisschen überwältigt von den Optionen und habe keine Erfahrung. Ich mag auch den Ausdruck "geometrisch informierte Vorkonditionierer" , bin mir aber nicht sicher, ob mir das hilft. Ich habe noch nichts gefunden, das sich auf die lineare Kontinuumsmechanik konzentriert.

Eine starke Skalierung (Amdahl) ist in meiner Anwendung sehr wichtig, da meine Industriepartner nicht lange auf Simulationsergebnisse warten können. Ich freue mich auf jeden Fall nicht nur über Antworten, sondern auch über Empfehlungen zur weiteren Lektüre in den Kommentaren.

Sebastian
quelle
Lösen Sie statische Probleme? Scheint ja. Bei dynamischen oder zeitharmonischen Problemen wäre die Antwort meiner Meinung nach anders.
Hui Zhang
statisch ja. Dynamisch ist zu teuer.
Sebastian

Antworten:

6

Unter der Annahme, dass Ihre Strukturen tatsächlich 3D sind (und nicht nur dünne Merkmale, die möglicherweise mit Schalenelementen diskretisiert werden) und das Modell größer als einige hunderttausend Dofs ist, werden direkte Löser unpraktisch, insbesondere wenn Sie jedes Problem nur einmal lösen müssen. Darüber hinaus benötigen Sie eine mehrstufige Methode, um effizient zu sein, es sei denn, die Struktur befindet sich immer "nahe" an einer Dirichlet-Grenze. Die Community ist in "Multigrid" und "Multilevel Domain Decomposition" unterteilt. Einen Vergleich der Mathematik finden Sie in meiner Antwort auf: Was ist der Vorteil von Multigrid gegenüber Vorkonditionierern für die Domänenzerlegung und umgekehrt?

Die Multigrid-Community war im Allgemeinen erfolgreicher bei der Herstellung von Allzweck-Software. Aus Gründen der Elastizität empfehle ich die Verwendung einer geglätteten Aggregation, die einen ungefähren "Raum nahe Null" erfordert. In PETSc erfolgt dies durch Auswahl von PCGAMG oder PCML (konfigurieren mit --download-ml) und Aufrufen MatSetNearNullSpace(), um die Starrkörpermodi bereitzustellen.

Domänenzerlegungsmethoden bieten die Möglichkeit, schneller als eine geglättete Aggregation zu vergröbern, wodurch sie möglicherweise latenztoleranter sind, aber der "Sweet Spot" in Bezug auf die Leistung ist tendenziell enger als die geglättete Aggregation. Sofern Sie nicht nach Domänenzerlegungsmethoden suchen möchten, empfehle ich, nur eine geglättete Aggregation zu verwenden und möglicherweise eine Domänenzerlegungsmethode auszuprobieren, wenn die Software besser wird.

Jed Brown
quelle
Vielen Dank für diese sehr informative Antwort! Was genau meinst du mit nahe einer Dirichlet-Grenze ? In Bezug auf die Anzahl der Elemente schließen?
Sebastian
Nah in Bezug auf die Entfernung, gemessen in Elementen oder Subdomänen (für einstufige Domänenzerlegung mit starken Subdomänenlösungen), entlang eines Pfades aus starkem Material. Wenn Informationen durch viele Subdomänen geleitet werden müssen, um eine lokale Lösung zu ermitteln, konvergieren Methoden auf einer Ebene langsam. Beachten Sie, dass eine starke Verbindung für die Elastizität nicht ausreicht. Alle Starrkörpermodi müssen gesteuert werden.
Jed Brown
4

Ich würde sagen, die kanonische Wahl für dieses Problem wäre der Conjugate Gradient Solver plus ein algebraischer Multigrid-Vorkonditionierer. Für PETSc wären Hypre / Boomeramg oder ML die offensichtlichen Vorkonditionierer.

Alle diese Komponenten lassen sich bei Verwendung über PETSc sehr gut auf Tausende oder Zehntausende von Prozessoren skalieren, wenn das Problem groß genug ist (mindestens ~ 100.000 Freiheitsgrade pro MPI-Prozess).

Wolfgang Bangerth
quelle
Beachten Sie, dass BoomerAMG (und klassisches AMG im Allgemeinen) keine Nullrauminformationen verwendet oder auf andere Weise sicherstellt, dass grobe Räume Rotationsmodi genau darstellen können. Sie können (und sollten) es versuchen sowie die Komponenten PCFIELDSPLITaufteilen und separat lösen (Verwendung in PETSc), aber eine geglättete Aggregation ist normalerweise robuster für die Elastizität.
Jed Brown
1

<0,4(x,y,z)K.xxK.yyK.zz

In diesem Fall können Sie weniger fortgeschrittene AMG-Methoden verwenden, um eine Annäherung für jeden Block invers zu berechnen und einen ziemlich guten Vorkonditionierer zu erhalten.

Tom
quelle
1

Walter Landry entwickelte einen Code für die dreidimensionale elastostatische Verformung unter Verwendung eines adaptiven Multigrids. Den Code finden Sie unter

https://bitbucket.org/wlandry/gamra

Sie können den Effekt des thermischen Antriebs mit isotroper Eigenspannung und äquivalenten Körperkräften einbeziehen. Sobald diese vorhanden sind, funktioniert der Solver einwandfrei.

Sylvain Barbot
quelle