Wie berechnet man das elektrische Feld eines beliebigen Tetraeders mit gleichmäßiger Ladungsdichte an einem beliebigen Punkt?
Ich habe:
Der Punkt kann außerhalb oder innerhalb des Tetraeders liegen. Die Ladungsdichte ist über das Tetraedervolumen (nicht die Oberfläche!) gleichmäßig.
BEARBEITEN
Das ist keine Hausaufgabe. Ich schreibe ein Simulationsprogramm, um elektrische Felder um und in einem Objekt zu simulieren, das durch sein 3D-Netz definiert ist. Das zu berechnende Feld umfasst alle Protonen in einem Objekt. Es wird angenommen, dass sie gleichmäßig über das gesamte Volumen verteilt sind. Stellen Sie sich das Protonenfeld nur so vor, als ob Sie alle Valenzelektronen aus dem Metall entfernen würden, sodass jedes Atom eine Ladung von +1e hätte. Ich dachte darüber nach, das Netz in kleinere Stücke (Tetraeder) zu unterteilen und jedes Tetraederfeld an einem bestimmten Punkt hinzuzufügen.
BEARBEITEN 2
Ich habe eine Lösung für den Innenfeldteil gefunden, wenn die Außenfeldgleichung bekannt ist. Die Idee ist, zu prüfen, ob der Punkt, an dem wir das Feld berechnen wollen, innerhalb des Tetraeders liegt. Wenn dies nicht der Fall ist, berechnen wir das Feld regelmäßig. Wenn es sich darin befindet, wählen wir eine Ebene, die die Kante eines Tetraeders (oder zwei beliebige Eckpunkte) und diesen Punkt enthält. Diese Ebene teilt den Tetraeder in zwei kleinere. Wir berechnen und addieren dann Felder von beiden. In diesem Fall kann davon ausgegangen werden, dass sich der Punkt außerhalb jedes kleineren Tetraeders befindet oder auf deren Oberflächen liegt.
Danke für die Bearbeitung. Jetzt, da wir wissen, dass Sie dies zahlenmäßig tun, ändert sich die Situation.
Dein Ansatz ist in Ordnung. Unterteilen Sie das Tetraeder in kleine Volumenelemente, berechnen Sie das Feld für jedes Element und addieren Sie es vektoriell. Es besteht jedoch keine Notwendigkeit, Unterteilungen vorzunehmen, und es müssen keine winzigen Tetraeder sein. Stattdessen kann man im Volumen des Tetraeders ein dreidimensionales Würfelgitter durchqueren. Ich bin mir nicht sicher, aber ich denke, das wäre viel einfacher, als zu versuchen, das Tetraeder in kleinere zu dezimieren, es sei denn, Sie haben bereits Code, der dies tut.
Beginnen Sie mit einem relativ groben Gitter. Verfeinern Sie es dann, sagen wir, um den Faktor zwei, und vergleichen Sie das Feld, das durch diese beiden Berechnungen erzeugt wird. Wenn Ihr Raster wirklich grob war, sollten die beiden Antworten unangenehm unterschiedlich sein. Fahren Sie fort, das Gitter im Vergleich zum vorherigen Gitter jedes Mal feiner und feiner zu machen. Wenn sich das resultierende Gitter nicht mehr innerhalb einer tolerierbaren Abweichung ändert, hören Sie auf. Ihr Gitter ist fein genug; es wird keinen weiteren Gewinn geben, wenn Sie fortfahren, aber die Rechenzeit würde steigen.
Garyp
John Dvorak
AHusain