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:
Wobei ein diffusiver und vorbeugender Fluss für Spezies ist und der Quellterm für Spezies .
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:
Der Begriff wird verwendet, um die Jacobi-Matrix zu bestimmen und sowohl c 1 als auch c 2 zu aktualisieren :
oder
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?