ElectrPotential
EinführungAngeregt durch ein textbasiertes DOS-Programm unseres Dozenten in "Grundlagen der Elektrotechnik" habe ich etwas ähnliches in Java programmiert, weil ich den Algorithmus interessant fand. Das Programm berechnet das elektrische Potential in einem Dielektrikum (und eigentlich auch jedem Leiter, dessen Widerstand > 0 ist). Zum Beispiel ein Kondensator (rechts). Die grauen Bereiche sind die Elektroden, die grünen Linien sind die Äquipotentiallinien. Der weiße Bereich zwischen den Elektroden ist das Medium, das durch ein Raster unterteilt wird. Für jeden Punkt im Raster wird ein Potential berechnet und der Wert (in Volt) wahlweise angezeigt.
|
|
Lässt man sich z.B. die Potentialwerte zwischen zwei Elektroden mit 0 V und 100 V berechnen sieht das so aus: Und jetzt das Raster aus und die Äquipotentiallinien dazu:
|
|
AlgorithmusDer Algorithmus ist folgender: Für jeden Punkt im Raster den Mittelwert der vier Nachbarn bilden (oben/unten/links/rechts). Diese Rechnung muss man wiederholen. Dabei nähern sich die Potentialwerte den echten Werten immer weiter an, bis sie sich schließlich kaum noch ändern (oder sich tatsächlich ein Gleichgewicht eingestellt hat). Die Potentialwerte der Elektroden sind natürlich fest vorgegeben und ändern sich nicht. Alle anderen Potentialwerte können anfangs z.B. null sein. Wichtig ist nur noch, dass für die nicht vorhandenen Nachbarn an den Rändern der Potentialwert des gegenüberliegenden Nachbars angenommen wird! Dadurch treten die Äquipotentiallinien dann senkrecht aus den Grenzflächen hervor, wie es sich gehört.
|
Oben ein Ausschnitt aus dem Kondensator. Der grün umrahmte Potentialwert ist der Mittelwert der vier Nachbarn.
|
ÄquipotentiallinienNachdem die Potentialwerte alle hinreichend genau berechnet sind, können noch Äquipotentiallinien eingezeichnet werden. Das habe ich folgendermaßen implementiert:
* Die Liste kann natürlich auf verschiedene Arten sortiert werden. Die beste Art ist natürlich, die Liste so zu sortieren, dass der Abstand zwischen zwei aufeinanderfolgenden Punkten möglichst gering ist. Bestimmt gibt es effizientere Verfahren, aber mich hat's schon gefreut, dass es überhaupt so gut funktioniert hat :-) Hier sieht man die Ergebnisse verschiedener Sortieralgorithmen angewandt auf die Liste der Punkte:
|
|
BedienungDie Benutzeroberfläche ist zunächst unverständlich und unschön (damals wusste ich noch nicht viel von Swing und Layouts). Aber immerhin gibt es Hints zu den Steuerelementen.
Weitere ScreenshotsAlle Bilder können übrigens auch in der Originalgröße angezeigt werden (Rechtsklick aufs Bild, "Grafik anzeigen" oder so).
Und hier die Äquipotentiallinien:
|
|
DownloadWer will, kann das Programm hier herunterladen. Falls sich jemand wirklich für den Quellcode interessieren sollte, kann er mir gerne schreiben. |