Methoden zur Lösung nichtlinearer Advektionsdiffusionssysteme jenseits von Newton-Raphson?

9

Ich arbeite an einem Projekt, bei dem ich zwei Adv-Diff-gekoppelte Domänen über ihre jeweiligen Quellterme habe (eine Domäne fügt Masse hinzu, die andere subtrahiert Masse). Der Kürze halber modelliere ich sie im stationären Zustand. Die Gleichungen sind Ihre Standard-Advektions-Diffusionstransport-Gleichung mit einem Quellterm, der wie folgt aussieht:

c1t=0=F1+Q1(c1,c2)c2t=0=F2+Q2(c1,c2)

Wobei Fi ein diffusiver und vorbeugender Fluss für Spezies i ist und Qi der Quellterm für Spezies i .

Ich konnte mit der Newton-Raphson-Methode einen Löser für mein Problem schreiben und habe die beiden Domänen mithilfe einer Blockmassenmatrix vollständig gekoppelt, dh:

Fcoupled=[A100A2][c1,ic2,i]xi[b1(c1,i,c2,i)b2(c1,i,c2,i)]

Der Begriff wird verwendet, um die Jacobi-Matrix zu bestimmen und sowohl c 1 als auch c 2 zu aktualisieren :Fcoupledc1c2

J(xi)[xi+1xi]=Fcoupled

oder

xi+1=xi(J(xi))1Fcoupled

Um die Dinge zu beschleunigen, berechne ich den Jacobi nicht bei jeder Iteration - im Moment spiele ich alle fünf Iterationen, was anscheinend gut genug funktioniert und die Lösung stabil hält.

Das Problem ist: Ich werde auf ein größeres System umsteigen, in dem sich beide Domänen in 2D / 2.5D befinden, und die Berechnung der Jacobi-Matrix wird meine verfügbaren Computerressourcen schnell erschöpfen. Ich baue dieses Modell, um es später in einer Optimierungseinstellung zu verwenden, sodass ich nicht bei jeder Iteration hinter dem Lenkrad sitzen kann, um den Dämpfungsfaktor usw. einzustellen.

Habe ich Recht, woanders nach einem robusteren Algorithmus für mein Problem zu suchen, oder ist das so gut wie es nur geht? Ich habe mich ein wenig mit Quasi-Linearisierung befasst, bin mir aber nicht sicher, wie sie auf mein System anwendbar ist.

Gibt es andere raffinierte Algorithmen, die ich möglicherweise übersehen habe und die ein System nichtlinearer Gleichungen lösen können, ohne den Jacobi als Straftat neu zu berechnen?

cbcoutinho
quelle
2
Haben Sie iterative Löser wie AMG - algebraische Multigrid-Methoden in Betracht gezogen? Möglicherweise müssen Sie gute Vorkonditionierer entwickeln, die auf Physik basieren.
NameRakes
1
Können Sie auf einen Computercluster zugreifen, in dem Sie die Jacobi-Formation und -Lösung mithilfe eines parallelen linearen Algebra-Pakets verteilen können?
Bill Barth
Nein, ich habe AMG nicht in Betracht gezogen. Ich dachte, diese sind nur für symmetrische Systeme gedacht und können nicht bei konvektionsdominierten Problemen verwendet werden. Ich werde noch einmal in der Literatur nach AMG suchen.
cbcoutinho
Parallele Berechnungen sind schwierig, da dieses Projekt als eigenständige Anwendung für Kollegen entwickelt wird, die keinen Zugriff auf diese Art von Ressourcen haben. Ich dachte darüber nach, mpi für mich selbst in das Projekt zu entwickeln, aber das würde die Eintrittsbarriere für andere erhöhen, was in erster Linie der
springende
3
Warum ist die Berechnung des Jacobian so problematisch? Wenn Sie endliche Differenzen / Volumina / Elemente verwenden, sollte es einen spärlichen Teil haben, der immer gleich ist, und einen diagonalen Teil, der sich ändert, aber trivial zu berechnen ist.
David Ketcheson

Antworten:

4

Ich gehe davon aus, dass die Einschränkung in 2D und 3D den Jacobian speichert.

Eine Möglichkeit besteht darin, die Zeitableitungen beizubehalten und einen expliziten "Pseudo" -Zeitschritt zu verwenden, um in den stationären Zustand zu iterieren. Normalerweise wird die CFL-Nummer, die Sie für diffusive und reaktive Systeme benötigen, möglicherweise unerschwinglich klein. Sie können nichtlineares Multigrid (auch als Full Approximation Storage Multigrid bezeichnet) und lokale Zeitschritte ausprobieren, um die Konvergenz zu beschleunigen.

DF(un)δun=F(un)
DF
DF(un)δuF(un+ϵδuδu)F(un)ϵ.
AAxx

Mit einem korrekten Wert von (normalerweise ungefähr für Floats mit doppelter Genauigkeit) können Sie jetzt eine Newton-Schleife ausführen, ohne jemals einen Jacobian zu berechnen oder zu speichern. Ich weiß, dass diese Technik verwendet wird, um einige nicht triviale Fälle in der rechnergestützten Fluiddynamik zu lösen. Es ist jedoch zu beachten, dass die Anzahl der Auswertungen der Funktion größer ist als bei einer Matrixspeichertechnik, anstatt ein Matrixvektorprodukt zu erfordern.10 - 7 F.ϵ107F

Eine andere Sache, die Sie beachten sollten, ist, dass Sie, wenn Ihr System so ist, dass ein leistungsfähiger Vorkonditionierer benötigt wird (dh Jacobi oder Block-Jacobi nicht ausreichen), möglicherweise versuchen möchten, die oben erwähnte Methode als Glatter in einem Multigrid-Schema zu verwenden. Wenn Sie einen Punkt- oder Block-Jacobi-Vorkonditionierer ausprobieren möchten, können Sie nur die diagonalen Elemente oder diagonalen Blöcke des Jacobi berechnen und speichern, was nicht viel ist. Ich würde auch erwähnen, dass ein Gauß-Seidel- oder SSOR-Vorkonditionierer möglicherweise implementiert werden kann, ohne einen Jacobian explizit zu speichern. In diesem Artikel wird die Implementierung eines matrixfreien GMRES beschrieben, das mit matrixfreiem symmetrischem Gauß-Seidel im Kontext der rechnergestützten Fluiddynamik vorkonditioniert wurde.

Aditya Kashi
quelle
1

Aus meiner Erfahrung mit Navier-Stokes-Gleichungen kann man sehr gut ohne vollständig implizite Schemata auskommen.

Wenn Sie nur ein schnelles numerisches Schema für die Lösung der Zeitentwicklung wünschen, werfen Sie einen Blick auf IMEX-Schemata (implizit-explizit). siehe zB diese Arbeit von Ascher, Ruuth, Spiteri Implizit-Explizite Runge-Kutta-Methoden für zeitabhängige partielle Differentialgleichungen .

Sie können sogar versuchen, nur ein explizites Zeitintegrationsschema höherer Ordnung mit Schrittgrößensteuerung (wie bei Matlab ODE45) zu verwenden. Sie können jedoch aufgrund der Steifheit Ihres Systems, die vom diffusiven Teil herrührt, auf Probleme stoßen. Glücklicherweise ist der diffusive Teil linear, so dass er implizit behandelt werden kann (was die Idee der IMEX-Schemata ist).

Jan.
quelle
0

Zuerst wollte ich nur eine Bemerkung hinzufügen, aber der Platz reichte nicht aus, deshalb füge ich eine kurze Beschreibung meiner Erfahrungen mit diesem Thema hinzu.

ich zunächst Ihre Notation von sehe ich die gekoppelte Form nicht. Ich nehme an, dass und beide von und abhängig sind . Wenn und Matrixdarstellungen von Approximationen von und , sollten sie nicht nur von , sondern auch von Nachbarwerten abhängen , aber dies kann nur ein falsches Verständnis Ihrer Notation sein .Fcoupledb1b2c1,ic2,iA1A2F1F2ci

Als allgemeinen Kommentar möchte ich hinzufügen, dass die Verwendung von analytischem Jacobian der einzige Weg zu sein scheint, um eine quadratische Konvergenz des nichtlinearen iterativen Lösers (dh des Newton-Raphson-Lösers in Ihrem Fall) zu erhalten. Haben Sie es in Ihrem Fall beobachtet? Dies ist sehr wichtig, da es sonst zu Missverständnissen bei Ihren Approximationen kommen kann (Linearisierung).

In allen Anwendungen, an denen ich beteiligt war (einige davon enthielten Berechnungen in großem Maßstab), hatten wir nie Probleme mit dem Zeitaufwand beim Zusammenbau des Jacobian. Das zeitaufwändigste Problem war immer die Anwendung eines linearen Lösers. Der analytische Jacobi (falls verfügbar) war immer in Anwendungen enthalten, an denen ich aufgrund der quadratischen Konvergenz an der bevorzugten Wahl gearbeitet habe. In einigen Fällen erzeugt ein solcher nichtlinearer Löser eine Matrix, die Probleme bei der Konvergenz des iterativen linearen Lösers verursacht. Daher haben wir versucht, eine einfachere Linearisierung als den analytischen Jacobian zu verwenden, um dem linearen Löser zu helfen. Ein solcher Kompromiss zwischen dem Verhalten eines nichtlinearen und eines linearen algebraischen Lösers in Abhängigkeit von der Linearisierung eines nichtlinearen algebraischen Systems war immer schwierig, und ich konnte keine allgemeine Empfehlung abgeben.

Sie haben jedoch Recht, dass der Nachteil (oder die Eigenschaft) des analytischen Jacobian für das PDE-System darin besteht, dass es ein gekoppeltes algebraisches System erzeugt. Wenn Sie also ein solches System auf irgendeine Weise entkoppeln, z. B. die Approximation jeder PDE durch beispielsweise iterative Aufteilung separat lösen Methode, dann verlieren Sie wieder die quadratische Konvergenz des globalen Lösers. Aber zumindest wenn Sie jede diskretisierte (entkoppelte) PDE separat lösen, können Sie die Lösung für dieses spezielle Problem mithilfe der Newton-Raphson-Methode erneut beschleunigen.

Peter Frolkovič
quelle
Grüß dich @Peter, du hast Recht mit der Kopplung, ich habe die Hauptgleichung bearbeitet, um zu zeigen, und und sind beide Funktionen von und . Die Matrizen und in diesem Fall die Steifheitsmatrizen beider Systeme, die nach der Finite-Elemente-Methode entwickelt wurden. Dies sind nur Funktionen der Koordinaten der Knoten und nicht der Zustandsvariablen. und sind Vektoren, also Funktionen eines Vektors von Zustandsvariablen, nicht nur einer Variablen. Ich berechne einen Jacobi numerisch mit endlichen Differenzen. Ich habe bisher keinen analytischen Jacobianer untersucht. b 2 c 1 c 2 A 1 A 2 F 1 F 2b1b2c1c2A1A2F1F2
cbcoutinho