Ich habe in den letzten Tagen versucht, diesen Fehler zu beheben. Ich habe mich gefragt, ob jemand Ratschläge zum weiteren Vorgehen hat.
Ich löse die Poisson-Gleichung für eine Stufenladungsverteilung (ein häufiges Problem in der Elektrostatik / Halbleiterphysik) auf einem ungleichmäßigen endlichen Volumennetz, bei dem das Unbekannte auf Zellzentren und die Flüsse auf den Zellflächen definiert sind.
Das Ladungsprofil (der Quellterm) ist gegeben durch:
und die Randbedingungen sind,
und die Domäne ist .
Ich verwende Code, der entwickelt wurde, um die Advektions-Diffusions-Reaktions-Gleichung zu lösen (ich habe mich selbst geschrieben, siehe meine Notizen hier, http://danieljfarrell.github.io/FVM ). Die Advektions-Diffusions-Reaktions-Gleichung ist ein allgemeinerer Fall der Poisson-Gleichung. In der Tat kann die Poisson-Gleichung wiederhergestellt werden, indem die Advektionsgeschwindigkeit auf Null gesetzt und der Übergangsterm entfernt wird.
Der Code wurde gegen eine Reihe von Situationen für einheitliche, ungleichmäßige und zufällige Gitter getestet und liefert immer eine vernünftige Lösung ( http://danieljfarrell.github.io/FVM/examples.html ) für die Advektions-Diffusions-Reaktions-Gleichung.
Um zu zeigen, wo der Code zusammenbricht, habe ich das folgende Beispiel gemacht. Ich richte ein einheitliches Netz von 20 Zellen ein und mache es dann ungleichmäßig, indem ich eine einzelne Zelle entferne. In der linken Abbildung habe ich Zelle und in der rechten wurde entfernt. Die 9. Zelle deckt den Bereich ab, in dem der Quellterm (dh die Ladung) das Vorzeichen ändert. Der Fehler tritt auf, wenn das Gitter in einem Bereich ungleichmäßig ist, in dem der Reaktionsterm das Vorzeichen ändert . Wie Sie unten sehen können.Ω 9
Irgendwelche Ideen, welche Möglichkeit dieses Problem verursachen könnte? Lassen Sie mich wissen, ob weitere Informationen zur Diskretisierung hilfreich wären (ich wollte nicht zu viele Details in diese Frage packen).