{"id":815,"date":"2026-07-30T12:22:33","date_gmt":"2026-07-30T12:22:33","guid":{"rendered":"https:\/\/matforge.org\/?p=815","raw":"https:\/\/matforge.org\/?p=815"},"modified":"2026-07-30T12:22:33","modified_gmt":"2026-07-30T12:22:33","slug":"electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide","status":"publish","type":"post","link":"https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/","title":{"rendered":"Elektromagnetische Simulationen mit FIPY: Maxwell&#8217;s Equations Implementation Guide","raw":"Elektromagnetische Simulationen mit FIPY: Maxwell's Equations Implementation Guide"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 7<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span><p>TL; DR<\/p>\n<p>Die Gleichungen von Maxwell beschreiben, wie sich elektrische und magnetische Felder entwickeln und interagieren. W\u00e4hrend FIPY f\u00fcr Probleme vom Typ Diffusion entwickelt wurde, k\u00f6nnen Sie elektromagnetische Wellen simulieren, indem Sie Maxwells Gleichungen als gekoppeltes System transienter hyperbolischer PDEs behandeln. Der Schl\u00fcssel besteht darin, die Gesetze von Faraday und Amp\u00e8re mit den FIPY-Implementierungen <code>TransientTerm<\/code>  und den benutzerdefinierten Curl-Implementierungen zu verbinden. FIPY hat jedoch Einschr\u00e4nkungen f\u00fcr Hochfrequenz-EM: Es fehlen native 3D-Curl-Operatoren, es k\u00e4mpft mit den Randbedingungen der Vektorfelder und kann falsche L\u00f6sungen hervorbringen. F\u00fcr die meisten EM-Arbeiten sind spezielle Tools wie FDTD (MEEP) oder FEM (Fenics) besser. FIPY gl\u00e4nzt bei der Kopplung von EM mit anderen Physiken (z. B. Plasma, thermische Effekte), wo seine Flexibilit\u00e4t mit beliebigen Netzen und PDE-Systemen wertvoll ist.<\/p>\n<h2>Einleitung: Maxwells Gleichungen und Computerelektromagnetik<\/h2>\n<p>Die Gleichungen von Maxwell sind die Grundlage des klassischen Elektromagnetismus, der regelt, wie elektrische und magnetische Felder durch Ladungen, Str\u00f6me und einander ver\u00e4ndert werden. In rechnerischer Form werden sie zu einem Satz von vier gekoppelten partiellen Differentialgleichungen:<\/p>\n<ol>\n<li><strong>Gauss-Gesetz<\/strong>: \u2207\u00b7D = \u03c1 (Elektrische Ladung erzeugt elektrische Verdr\u00e4ngung)<\/li>\n<li><strong>Gau\u00dfsches Gesetz f\u00fcr Magnetismus<\/strong>: \u2207\u00b7B = 0 (keine magnetischen Monopole)<\/li>\n<li><strong>Faradaysches Gesetz<\/strong>: \u2207\u00d7E = -\u2202B\/\u2202T (zeitver\u00e4nderliche Magnetfelder induzieren elektrische Felder)<\/li>\n<li><strong>Amp\u00e8re-Maxwell-Gesetz<\/strong>: \u2207\u00d7H = j + \u2202d\/\u2202t (Str\u00f6me und wechselnde elektrische Felder erzeugen Magnetfelder)<\/li>\n<\/ol>\n<p>F\u00fcr die Wellenausbreitung in homogenen Medien reduziert sich das gekoppelte System auf zwei Schl\u00fcsselgleichungen:<\/p>\n<pre><code>\u2202E\/\u2202t = -\u03bc\u207b\u00b9 \u2207\u00d7H\n\u2202H\/\u2202t = -\u03b5\u207b\u00b9 \u2207\u00d7E<\/code><\/pre>\n<p>wobei \u03b5 Permittivit\u00e4t ist und \u03bc Permeabilit\u00e4t ist.<\/p>\n<p><strong>Warum Maxwells Gleichungen simulieren?<\/strong> Die Anwendungen reichen von Antennendesign und Wellenleiteranalyse bis hin zu Photonik, Radarquerschnittsberechnung und Plasmaphysik. Die Wahl der numerischen Methode wirkt sich tiefgreifend auf Genauigkeit, Leistung und Implementierungskomplexit\u00e4t aus.<\/p>\n<h2>Finite-Volumen-Methode f\u00fcr Elektromagnetik<\/h2>\n<p>Die Finite Volume-Methode (FVM) diskretisiert die Dom\u00e4ne in Kontrollvolumen und integriert PDEs \u00fcber jedes Volume, wodurch Fl\u00fcsse \u00fcber Grenzen hinweg erhalten werden. F\u00fcr Elektromagnetik bietet FVM an:<\/p>\n<ul>\n<li><strong>Erhaltungseigenschaften<\/strong>: Nat\u00fcrliche Durchsetzung der Ladungserhaltung<\/li>\n<li><strong>Flexibles Vernetzen<\/strong>: Verwaltet komplexe Geometrien mit unstrukturierten Gittern<\/li>\n<li><strong>Robustness<\/strong>: Funktioniert gut mit diskontinuierlichen Materialeigenschaften<\/li>\n<\/ul>\n<p>FVM steht jedoch vor Herausforderungen f\u00fcr Maxwell-Gleichungen, da der Curl-Operator Informationen von benachbarten Zellen in bestimmten Mustern ben\u00f6tigt. Standard-Knotenzentriertes FVM kann falsche L\u00f6sungen (nicht-physikalische Modi im Nullraum des Curl-Curl-Operators) erzeugen.<\/p>\n<p><strong>Key Insight<\/strong>: Die St\u00e4rke von FIPY besteht darin, Diffusions-Konvektions-Reaktionssysteme zu l\u00f6sen. Die Maxwell-Gleichungen sind hyperbolisch (wellenf\u00f6rmig) und erfordern eine sorgf\u00e4ltige Behandlung der Zeitschritte und r\u00e4umlichen Diskretisierung, um numerische Instabilit\u00e4t zu vermeiden.<\/p>\n<h2>Implementierung von elektromagnetischen Simulationen in FIPY<\/h2>\n<h3>1. Problemformulierung<\/h3>\n<p>FIPY hat keine eingebauten elektromagnetischen Beispiele, aber Sie k\u00f6nnen das System manuell konstruieren. Der einfachste Ansatz besteht darin, die elektrischen und magnetischen Feldkomponenten direkt in 1D oder 2D zu l\u00f6sen.<\/p>\n<p><strong>Beispiel: 1D-Transversal-Elektromagnetische (TEM) Welle<\/strong><\/p>\n<p>In 1d mit nur in x und polarisierten Feldern in y (e_y) und z (h_z) vereinfachen sich die Maxwell-Gleichungen zu:<\/p>\n<pre><code>\u2202E_y\/\u2202t = -\u03bc\u207b\u00b9 \u2202H_z\/\u2202x\n\u2202H_z\/\u2202t = -\u03b5\u207b\u00b9 \u2202E_y\/\u2202x<\/code><\/pre>\n<p>Dies entkoppelt die Locke in einfache Derivate und macht sie fipy-freundlich.<\/p>\n<h3>2. FIPY-Implementierungsstruktur<\/h3>\n<pre><code>import fipy as fp\nimport numpy as np\n\n# Define mesh\nnx = 200\nmesh = fp.Grid1D(nx=nx, Lx=1.0)\n\n# Material properties (non-dimensionalized)\nepsilon = 1.0 # permittivity\nmu = 1.0 # permeability\n\n# Define field variables\nE = fp.CellVariable(name=\"Electric Field (E_y)\", mesh=mesh, value=0.)\nH = fp.CellVariable(name=\"Magnetic Field (H_z)\", mesh=mesh, value=0.)\n\n# Initial conditions: Gaussian pulse in E\nx = mesh.cellCenters[0]\nE.setValue(np.exp(-((x - 0.5) \/ 0.05)**2))\n\n# Boundary conditions: Perfect Electric Conductor (PEC)\n# E = 0 at boundaries\nE.constrain(0., mesh.facesLeft)\nE.constrain(0., mesh.facesRight)\n# H can have Neumann (zero gradient) or other conditions\nH.constrain(0., mesh.facesLeft)\nH.constrain(0., mesh.facesRight)\n\n# Build equations\n# Using convection term to represent spatial derivative of H\neqE = fp.TransientTerm(var=E) + (1.\/mu) * fp.CentralDifferenceConvectionTerm(coeff=1., var=H) == 0\neqH = fp.TransientTerm(var=H) + (1.\/epsilon) * fp.CentralDifferenceConvectionTerm(coeff=1., var=E) == 0\neq = eqE &amp; eqH\n\n# Time stepping\ndt = 0.001\nfor step in range(1000):\n    eq.solve(dt=dt)\n    if step % 100 == 0:\n        print(f\"Step {step}: E_max={E.value.max():.4f}, H_max={H.value.max():.4f}\")<\/code><\/pre>\n<p><strong>Wichtige Hinweise<\/strong>:<\/p>\n<ul>\n<li><code>ConvectionTerm<\/code> mit <code>coeff=1<\/code> berechnet effektiv \u2202h\/\u2202x (oder \u2202e\/\u2202x). Dies funktioniert in 1D, muss jedoch f\u00fcr 2D \/ 3D verallgemeinert werden.<\/li>\n<li>Der Zeitschritt <code>dt<\/code> muss die CFL-Bedingung erf\u00fcllen: <code>dt &lt;= mesh.dx \/ c<\/code> wobei C = 1\/\u221a(\u03bc\u03b5) die Wellengeschwindigkeit ist.<\/li>\n<li>Perfekte elektrische Leiter (PEC) Randbedingungen Dr\u00fccken Sie die tangentiale E auf Null.<\/li>\n<\/ul>\n<h3>3. Erweitern auf 2D und 3D<\/h3>\n<p>In 2D-Modi (TE-Modi) k\u00f6nnen Sie Komponenten E_Z, H_X, H_Y haben. Die Curl-Operationen werden:<\/p>\n<pre><code>(\u2207\u00d7H)_z = \u2202H_y\/\u2202x - \u2202H_x\/\u2202y\n(\u2207\u00d7E)_x = \u2202E_z\/\u2202y\n(\u2207\u00d7E)_y = -\u2202E_z\/\u2202x<\/code><\/pre>\n<p>FIPY fehlt ein direkter 2D-Curl-Operator, daher m\u00fcssen Sie ihn aus <code>CentralDifferenceConvectionTerm<\/code>  f\u00fcr jede Komponente erstellen. Dies wird ausf\u00fchrlich und fehleranf\u00e4llig.<\/p>\n<h3>4. Vektorpotentiale (erweitert)<\/h3>\n<p>Um die manuelle Handhabung von Curl zu vermeiden, verwenden einige Formulierungen ein Vektorpotential <strong> a <\/strong>, wobei b = \u2207 \u00d7 a und ein skalares Potential \u03c6. Dies kann die Maxwell-Gleichungen auf eine Wellengleichung zweiter Ordnung f\u00fcr <strong> a <\/strong> mit Messbedingungen reduzieren. Die Implementierung in FIPY bleibt jedoch komplex und nicht gut dokumentiert.<\/p>\n<h2>Einschr\u00e4nkungen und Fallstricke<\/h2>\n<h3>Kein nativer Curl-Operator<\/h3>\n<p>Die Termbibliothek von FIPY umfasst <code>DiffusionTerm<\/code>, <code>ConvectionTerm<\/code>, <code>TransientTerm<\/code>, aber nein <code>CurlTerm<\/code>. Sie m\u00fcssen die Curl manuell mithilfe von Mesh-Gradienten implementieren, was ein tiefes Verst\u00e4ndnis der Netzindizierung und der Face-to-Cell-Mappings erfordert.<\/p>\n<p>Aus der Forschung: &#8222;Um eine Curl in FIPY zu berechnen, muss man den Operator explizit aus den Derivaten der einzelnen Vektorkomponenten des Feldes konstruieren. Dies erh\u00f6ht die Komplexit\u00e4t.&#8220;<\/p>\n<h3>falsche L\u00f6sungen<\/h3>\n<p>Die Standarddiskretisierung von Curl-Curl-Gleichungen (\u2207 \u00d7 \u2207 \u00d7 A = \u03b5\u03bc \u2202\u00b2A \/ \u2202T\u00b2) kann aufgrund des Nullraums des diskreten Curl-Operators nicht-physische L\u00f6sungen liefern. Vektorfinite Elemente (Edge-Elemente) in FEM vermeiden dies nat\u00fcrlich, indem sie die Kontinuit\u00e4t tangentieller Komponenten sicherstellen. Der zellzentrierte Ansatz von FIPY bietet diese Garantie nicht.<\/p>\n<p><strong>Empfehlung<\/strong>: Bei der 2D\/3D-Wellenausbreitung validieren Sie die Ergebnisse gegen analytische L\u00f6sungen oder alternative Methoden. Erwarten Sie m\u00f6gliche falsche Modi, es sei denn, das Netz ist hochgradig verfeinert und es wird besondere Sorgfalt angewendet.<\/p>\n<h3>Randbedingungen<\/h3>\n<p>Elektromagnetische Randbedingungen spezifizieren h\u00e4ufig tangentiale elektrische Feldkontinuit\u00e4t oder perfekte Leiter. Das Randbedingungssystem von FIPY ist f\u00fcr skalare PDEs mit Dirichlet (Festwert) oder Neumann (Festfluss) ausgelegt. Die Implementierung von Oberfl\u00e4chenimpedanz- oder Strahlungsbedingungen (z. B. perfekt abgestimmte Schicht) ist m\u00f6glich, erfordert jedoch benutzerdefinierte Quellbegriffe.<\/p>\n<p><strong>Tipp<\/strong>: Matforges Artikel &#8222;Grenzenbedingungen: Theorie und Implementierung in FIPY&#8220; f\u00fcr die Grundlagen des FIPY-Grenzzustandssystems, das gleicherma\u00dfen f\u00fcr EM-Probleme gilt.<\/p>\n<h3>Leistungs\u00fcberlegungen<\/h3>\n<p>FIPY wird in Python mit leistungskritischen Schleifen in Cython geschrieben. Bei gro\u00dfen 3D-EM-Simulationen ist es langsamer als kompilierte FDTD-Codes (z. B. MEEP in C ++). Der Vorteil von FIPY ist die Flexibilit\u00e4t: einfache Kopplung mit anderen PDEs (W\u00e4rme\u00fcbertragung, Fl\u00fcssigkeitsfluss, chemische Reaktionen) und Rapid Prototyping.<\/p>\n<h2>Wann ist FIPY f\u00fcr Elektromagnetik zu verwenden?<\/h2>\n<h3>W\u00e4hlen Sie FIPY, wenn:<\/h3>\n<ul>\n<li>Sie m\u00fcssen <strong>Elektromagnetik mit anderen Physiken verbinden<\/strong> (z. B. Joule-Heizung, Plasmakinetik, Thermoelektrik)<\/li>\n<li>Ihre Geometrie ist komplex, aber Sie k\u00f6nnen mit relativ groben Netzen arbeiten<\/li>\n<li>Sie verwenden FIPY bereits f\u00fcr andere Teile Ihres Multiphysik-Problems<\/li>\n<li>Sie ben\u00f6tigen Rapid Prototyping und sind bereit, benutzerdefinierte Operatoren zu implementieren<\/li>\n<li>Ihr EM-Problem ist quasi-statisch (niedrige Frequenz), bei dem der Verdr\u00e4ngungsstrom vernachl\u00e4ssigbar ist<\/li>\n<\/ul>\n<h3>W\u00e4hlen Sie Alternativen, wenn:<\/h3>\n<ul>\n<li>Sie ben\u00f6tigen <strong>Hochfrequenz-, Vollwellen-Simulationen<\/strong> (Antennenstrahlung, Mikrowellenschaltungen)<\/li>\n<li>Genauigkeit und Leistung sind kritisch (Production Engineering Design)<\/li>\n<li>Sie ben\u00f6tigen eine integrierte S-Parameter-Extraktion, Fernfeldmuster oder Portanalyse<\/li>\n<li>Ihrem Team fehlen tiefe PDE- und numerische Methodenkompetenz<\/li>\n<\/ul>\n<p><strong>Empfohlene Alternativen<\/strong>:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Werkzeug<\/th>\n<th>Verfahren<\/th>\n<th>am besten f\u00fcr<\/th>\n<th>Python-Integration<\/th>\n<\/tr>\n<tr>\n<td><strong>MEEP<\/strong><\/td>\n<td>FDTD<\/td>\n<td>Photonik, Plasmonik, Wellenausbreitung<\/td>\n<td>Native Python-API<\/td>\n<\/tr>\n<tr>\n<td><strong>Fenics\/Dolfinx<\/strong><\/td>\n<td>Fem<\/td>\n<td>Allgemeine EM, Eigenprobleme, statisch\/quasi-statisch<\/td>\n<td>Python-Frontend, C++-Backend<\/td>\n<\/tr>\n<tr>\n<td><strong> ngsolve<\/strong><\/td>\n<td>Fem<\/td>\n<td>Hochfrequente, komplexe Geometrien<\/td>\n<td>Python (NGS-PY)<\/td>\n<\/tr>\n<tr>\n<td><strong> comsol <\/strong><\/td>\n<td>fem (verschiedene)<\/td>\n<td>Kommerzielle, Multiphysik, UI-gesteuert<\/td>\n<td>Livelink f\u00fcr Python<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Praktische Implementierungs-Checkliste<\/h2>\n<p>Beantworten Sie vor Beginn Ihrer EM-Simulation in FIPY diese Fragen:<\/p>\n<ul>\n<li>[] Ist das Problem wirklich f\u00fcr FVM geeignet, oder w\u00e4re FEM \/ FDTD besser?<\/li>\n<li>[ ] Haben Sie Ihre Curl-Implementierung in einem einfachen Testfall (z. B. konstantem Feld) \u00fcberpr\u00fcft?<\/li>\n<li>[] Sind Randbedingungen korrekt angewendet (tangentiale E f\u00fcr PEC, Kontinuit\u00e4t \u00fcber Schnittstellen)?<\/li>\n<li>[] Haben Sie die CFL-Bedingung f\u00fcr die Zeitschritte validiert?<\/li>\n<li>[] Haben Sie eine Methode, um St\u00f6rmodi zu erkennen (z. B. Felddivergenz zu \u00fcberwachen)?<\/li>\n<li>[] K\u00f6nnen Sie f\u00fcr die anf\u00e4ngliche Entwicklung auf 1D oder 2D vereinfachen?<\/li>\n<li>[] Haben Sie in Betracht gezogen, eine Vektorpotentialformulierung zu verwenden, um die Freiheitsgrade zu verringern?<\/li>\n<\/ul>\n<h2>H\u00e4ufige Fehler zu vermeiden<\/h2>\n<ol>\n<li><strong>Die Komplexit\u00e4t der Curl-Implementierung ignorieren<\/strong>: Anf\u00e4nger gehen h\u00e4ufig davon aus, dass FIPY \u00fcber einen integrierten Curl-Operator verf\u00fcgt. es nicht. Sie m\u00fcssen es aus r\u00e4umlichen Ableitungen bauen.<\/li>\n<li><strong>Verwendung von zellzentrierten Variablen f\u00fcr Vektorfelder ohne Pflege<\/strong>: Die Standard-FVM-Anordnung f\u00fcr Vektorfelder in EM erfordert versetzte Netze (z. B. Yee-Raster in FDTD). FIPY verwendet standardm\u00e4\u00dfig zusammengestellte Netze, was Instabilit\u00e4t oder falsche L\u00f6sungen verursachen kann.<\/li>\n<li><strong>Vernachl\u00e4ssigung von Einheiten und Nichtdimensionierung <\/strong>: Die Maxwell-Gleichungen umfassen \u03b5 und \u03bc, die um viele Gr\u00f6\u00dfenordnungen variieren. Nichtdimensionalisieren, um numerischen \u00dcber-\/Unterlauf zu vermeiden.<\/li>\n<li><strong>Unzureichende Netzaufl\u00f6sung<\/strong>: Wellenph\u00e4nomene erfordern mindestens 10\u201320 Zellen pro Wellenl\u00e4nge. Eine Unteraufl\u00f6sung f\u00fchrt zu Dispersionsfehlern (falsche Wellengeschwindigkeit) oder numerischer Instabilit\u00e4t.<\/li>\n<li><strong>Falsche Randbedingungen<\/strong>: PEC-Grenzen erfordern tangentiale E = 0. In FIPY m\u00fcssen Sie jede E-Komponente basierend auf der Grenzorientierung entsprechend einschr\u00e4nken.<\/li>\n<li><strong>\u00dcberpr\u00fcfen nicht \u2207\u00b7B = 0<\/strong>: Eine der Maxwell-Gleichungen (keine magnetischen Monopole) sollte gelten, wenn Ihre Implementierung korrekt ist. \u00dcberwachen Sie die Divergenz von B als Sanity Check.<\/li>\n<\/ol>\n<h2>Fallstudie: 1D Gau\u00dfsche Pulsausbreitung<\/h2>\n<p>Gehen wir durch ein vollst\u00e4ndiges, funktionierendes 1D-Beispiel, das die Wellenausbreitung und Reflexion von PEC-Grenzen demonstriert.<\/p>\n<p>&lt;<strong>Setup<\/strong>:<\/p>\n<ul>\n<li>Dom\u00e4ne: x \u2208 [0, 1] m<\/li>\n<li>Anfangs-E_Y: Gau\u00dfscher Puls zentriert auf x=0,5 m, Amplitude 1 V\/m<\/li>\n<li>h_z anf\u00e4nglich 0<\/li>\n<li>\u03bc = \u03b5 = 1 (nicht-dimensional, c=1)<\/li>\n<li>PEC-Grenzen: E_Y(0) = E_Y(1) = 0<\/li>\n<li>Zeitschritt: DT = 0,001, Gesamtschritte = 2000<\/li>\n<\/ul>\n<p><strong>Erwartetes Verhalten <\/strong>: Der Gau\u00dfsche Puls teilt sich in zwei sich nach links und rechts bewegende Wellen, die sich von den Grenzen reflektieren und sich schlie\u00dflich st\u00f6ren.<\/p>\n<p><strong>Vollst\u00e4ndiger Code<\/strong> wird im FIPY-Dokumentations-Repository (NIST) bereitgestellt. Die Simulation sollte die Energieeinsparung (Summe von \u222be\u00b2 und \u222bh\u00b2 ungef\u00e4hr konstant) und keine numerische Explosion zeigen, wenn die CFL-Bedingung erf\u00fcllt ist.<\/p>\n<h2>Validierung und \u00dcberpr\u00fcfung<\/h2>\n<h3>\u00dcberpr\u00fcfung: Stimmt der Code?<\/h3>\n<ul>\n<li>\u00dcberpr\u00fcfen Sie, ob \u2207 \u00b7 B w\u00e4hrend der Simulation nahe Null bleibt<\/li>\n<li>Vergleichen Sie mit der analytischen L\u00f6sung f\u00fcr 1D-Wellengleichung: E(x,t) = f(x-ct) + g(x+ct)<\/li>\n<li>F\u00fchren Sie die Netzverfeinerung durch: L\u00f6sung sollte als DX\u21920 konvergieren, dt\u21920<\/li>\n<\/ul>\n<h3>Validierung: Modelliert es die Realit\u00e4t?<\/h3>\n<ul>\n<li>Vergleichen Sie mit experimentellen Daten oder etablierten Simulationstools (MEEP, COMSOL)<\/li>\n<li>Test mit kanonischen Problemen: Rechteckiger Wellenleiter, Streuung aus einer Kugel<\/li>\n<\/ul>\n<h2>Fazit und n\u00e4chste Schritte<\/h2>\n<p>Die Maxwell-Gleichungen k\u00f6nnen in FIPY f\u00fcr Bildungszwecke, Prototypenentwicklung und Multiphysik-Kopplung implementiert werden, bei denen EM mit anderen PDE-basierten Ph\u00e4nomenen interagiert. FIPY ist jedoch nicht das optimale Werkzeug f\u00fcr die elektromagnetische Produktionssimulation.<\/p>\n<p><strong>Wenn Sie noch nicht in der Computer-Elektromagnetik sind<\/strong>: Beginnen Sie mit einem 1D-Beispiel, \u00fcberpr\u00fcfen Sie Ihre Curl-Implementierung und verstehen Sie die Einschr\u00e4nkungen, bevor Sie 2D\/3D-Probleme versuchen.<\/p>\n<p><strong>Wenn Sie nur High-Fidelity EM ben\u00f6tigen<\/strong>: Betrachten Sie stattdessen MEEP (FDTD) oder Fenics (FEM).<\/p>\n<p><strong>Wenn Sie Multiphysik ben\u00f6tigen<\/strong>: FIPY ist vielleicht Ihre beste Wahl, wenn Sie es bereits f\u00fcr andere Physik verwenden. Seien Sie bereit, benutzerdefinierte Operatoren zu schreiben und gr\u00fcndlich zu validieren.<\/p>\n<h3>Weiterf\u00fchrende Literatur \u00fcber Matforge<\/h3>\n<ul>\n<li><a href=\"..\/boundary-conditions-theory-and-implementation-in-fipy\/\">Grenzenbedingungen: Theorie und Implementierung in FIPY<\/a> \u2013 Learn FIPYs Randbedingungssystem<\/li>\n<li><a href=\"..\/finite-volume-method-explained-simply\/\">Finite-Volumen-Methode einfach erkl\u00e4rt<\/a> \u2013 FVM-Grundlagen verstehen<\/li>\n<li><a href=\"..\/using-fipy-for-phase-field-modeling\/\">Verwenden von FIPY zur Phasenfeldmodellierung<\/a> \u2013 Siehe FIPY-Festigkeiten in gekoppelten PDE-Systemen<\/li>\n<li><a href=\"..\/managing-large-scale-pde-problems-strategies-solvers-and-hpc-case-studies\/\">Verwalten von PDE-Problemen im gro\u00dfen Ma\u00dfstab<\/a> \u2013 HPC-Strategien f\u00fcr gro\u00dfe Simulationen<\/li>\n<\/ul>\n<h3>Externe Ressourcen<\/h3>\n<ul>\n<li>FIPY-Dokumentation: https:\/\/pages.nist.gov\/fipy\/<\/li>\n<li>Maxwells Gleichungen (Wikipedia): https:\/\/en.wikipedia.org\/wiki\/Maxwell%27S_Equations<\/li>\n<li>MEEP (FDTD): https:\/\/meep.readthedocs.io\/<\/li>\n<li>Fenics (FEM): https:\/\/fenicsproject.org\/<\/li>\n<\/ul>\n<hr>\n<p><strong>Schl\u00fcsselworte<\/strong>: Elektromagnetische Simulationen, Maxwell-Gleichungen, FIPY, Finite-Volumen-Methode, PDE-Solver, Wellenausbreitung, Curl-Operator, Randbedingungen, rechnerische Elektromagnete, FDTD, FEM, Vektorfelder, Python-Simulation<\/p>\n<p><strong>Interne Links<\/strong>: Der Artikel verweist auf vorhandene Matforge-Inhalte \u00fcber Randbedingungen, Finite-Volumen-Methode, Phasenfeldmodellierung und PDE-Probleme in gro\u00dfem Ma\u00dfstab, um den Lesern zusammengeh\u00f6rige Themen zu bieten und den Lesern zu leiten.<\/p>\n","protected":false,"raw":"<p>TL; DR<\/p>\n<p>Die Gleichungen von Maxwell beschreiben, wie sich elektrische und magnetische Felder entwickeln und interagieren. W\u00e4hrend FIPY f\u00fcr Probleme vom Typ Diffusion entwickelt wurde, k\u00f6nnen Sie elektromagnetische Wellen simulieren, indem Sie Maxwells Gleichungen als gekoppeltes System transienter hyperbolischer PDEs behandeln. Der Schl\u00fcssel besteht darin, die Gesetze von Faraday und Amp\u00e8re mit den FIPY-Implementierungen <code>TransientTerm<\/code>  und den benutzerdefinierten Curl-Implementierungen zu verbinden. FIPY hat jedoch Einschr\u00e4nkungen f\u00fcr Hochfrequenz-EM: Es fehlen native 3D-Curl-Operatoren, es k\u00e4mpft mit den Randbedingungen der Vektorfelder und kann falsche L\u00f6sungen hervorbringen. F\u00fcr die meisten EM-Arbeiten sind spezielle Tools wie FDTD (MEEP) oder FEM (Fenics) besser. FIPY gl\u00e4nzt bei der Kopplung von EM mit anderen Physiken (z. B. Plasma, thermische Effekte), wo seine Flexibilit\u00e4t mit beliebigen Netzen und PDE-Systemen wertvoll ist.<\/p>\n<h2>Einleitung: Maxwells Gleichungen und Computerelektromagnetik<\/h2>\n<p>Die Gleichungen von Maxwell sind die Grundlage des klassischen Elektromagnetismus, der regelt, wie elektrische und magnetische Felder durch Ladungen, Str\u00f6me und einander ver\u00e4ndert werden. In rechnerischer Form werden sie zu einem Satz von vier gekoppelten partiellen Differentialgleichungen:<\/p>\n<ol>\n<li><strong>Gauss-Gesetz<\/strong>: \u2207\u00b7D = \u03c1 (Elektrische Ladung erzeugt elektrische Verdr\u00e4ngung)<\/li>\n<li><strong>Gau\u00dfsches Gesetz f\u00fcr Magnetismus<\/strong>: \u2207\u00b7B = 0 (keine magnetischen Monopole)<\/li>\n<li><strong>Faradaysches Gesetz<\/strong>: \u2207\u00d7E = -\u2202B\/\u2202T (zeitver\u00e4nderliche Magnetfelder induzieren elektrische Felder)<\/li>\n<li><strong>Amp\u00e8re-Maxwell-Gesetz<\/strong>: \u2207\u00d7H = j + \u2202d\/\u2202t (Str\u00f6me und wechselnde elektrische Felder erzeugen Magnetfelder)<\/li>\n<\/ol>\n<p>F\u00fcr die Wellenausbreitung in homogenen Medien reduziert sich das gekoppelte System auf zwei Schl\u00fcsselgleichungen:<\/p>\n<pre><code>\u2202E\/\u2202t = -\u03bc\u207b\u00b9 \u2207\u00d7H\n\u2202H\/\u2202t = -\u03b5\u207b\u00b9 \u2207\u00d7E<\/code><\/pre>\n<p>wobei \u03b5 Permittivit\u00e4t ist und \u03bc Permeabilit\u00e4t ist.<\/p>\n<p><strong>Warum Maxwells Gleichungen simulieren?<\/strong> Die Anwendungen reichen von Antennendesign und Wellenleiteranalyse bis hin zu Photonik, Radarquerschnittsberechnung und Plasmaphysik. Die Wahl der numerischen Methode wirkt sich tiefgreifend auf Genauigkeit, Leistung und Implementierungskomplexit\u00e4t aus.<\/p>\n<h2>Finite-Volumen-Methode f\u00fcr Elektromagnetik<\/h2>\n<p>Die Finite Volume-Methode (FVM) diskretisiert die Dom\u00e4ne in Kontrollvolumen und integriert PDEs \u00fcber jedes Volume, wodurch Fl\u00fcsse \u00fcber Grenzen hinweg erhalten werden. F\u00fcr Elektromagnetik bietet FVM an:<\/p>\n<ul>\n<li><strong>Erhaltungseigenschaften<\/strong>: Nat\u00fcrliche Durchsetzung der Ladungserhaltung<\/li>\n<li><strong>Flexibles Vernetzen<\/strong>: Verwaltet komplexe Geometrien mit unstrukturierten Gittern<\/li>\n<li><strong>Robustness<\/strong>: Funktioniert gut mit diskontinuierlichen Materialeigenschaften<\/li>\n<\/ul>\n<p>FVM steht jedoch vor Herausforderungen f\u00fcr Maxwell-Gleichungen, da der Curl-Operator Informationen von benachbarten Zellen in bestimmten Mustern ben\u00f6tigt. Standard-Knotenzentriertes FVM kann falsche L\u00f6sungen (nicht-physikalische Modi im Nullraum des Curl-Curl-Operators) erzeugen.<\/p>\n<p><strong>Key Insight<\/strong>: Die St\u00e4rke von FIPY besteht darin, Diffusions-Konvektions-Reaktionssysteme zu l\u00f6sen. Die Maxwell-Gleichungen sind hyperbolisch (wellenf\u00f6rmig) und erfordern eine sorgf\u00e4ltige Behandlung der Zeitschritte und r\u00e4umlichen Diskretisierung, um numerische Instabilit\u00e4t zu vermeiden.<\/p>\n<h2>Implementierung von elektromagnetischen Simulationen in FIPY<\/h2>\n<h3>1. Problemformulierung<\/h3>\n<p>FIPY hat keine eingebauten elektromagnetischen Beispiele, aber Sie k\u00f6nnen das System manuell konstruieren. Der einfachste Ansatz besteht darin, die elektrischen und magnetischen Feldkomponenten direkt in 1D oder 2D zu l\u00f6sen.<\/p>\n<p><strong>Beispiel: 1D-Transversal-Elektromagnetische (TEM) Welle<\/strong><\/p>\n<p>In 1d mit nur in x und polarisierten Feldern in y (e_y) und z (h_z) vereinfachen sich die Maxwell-Gleichungen zu:<\/p>\n<pre><code>\u2202E_y\/\u2202t = -\u03bc\u207b\u00b9 \u2202H_z\/\u2202x\n\u2202H_z\/\u2202t = -\u03b5\u207b\u00b9 \u2202E_y\/\u2202x<\/code><\/pre>\n<p>Dies entkoppelt die Locke in einfache Derivate und macht sie fipy-freundlich.<\/p>\n<h3>2. FIPY-Implementierungsstruktur<\/h3>\n<pre><code>import fipy as fp\nimport numpy as np\n\n# Define mesh\nnx = 200\nmesh = fp.Grid1D(nx=nx, Lx=1.0)\n\n# Material properties (non-dimensionalized)\nepsilon = 1.0 # permittivity\nmu = 1.0 # permeability\n\n# Define field variables\nE = fp.CellVariable(name=\"Electric Field (E_y)\", mesh=mesh, value=0.)\nH = fp.CellVariable(name=\"Magnetic Field (H_z)\", mesh=mesh, value=0.)\n\n# Initial conditions: Gaussian pulse in E\nx = mesh.cellCenters[0]\nE.setValue(np.exp(-((x - 0.5) \/ 0.05)**2))\n\n# Boundary conditions: Perfect Electric Conductor (PEC)\n# E = 0 at boundaries\nE.constrain(0., mesh.facesLeft)\nE.constrain(0., mesh.facesRight)\n# H can have Neumann (zero gradient) or other conditions\nH.constrain(0., mesh.facesLeft)\nH.constrain(0., mesh.facesRight)\n\n# Build equations\n# Using convection term to represent spatial derivative of H\neqE = fp.TransientTerm(var=E) + (1.\/mu) * fp.CentralDifferenceConvectionTerm(coeff=1., var=H) == 0\neqH = fp.TransientTerm(var=H) + (1.\/epsilon) * fp.CentralDifferenceConvectionTerm(coeff=1., var=E) == 0\neq = eqE &amp; eqH\n\n# Time stepping\ndt = 0.001\nfor step in range(1000):\n    eq.solve(dt=dt)\n    if step % 100 == 0:\n        print(f\"Step {step}: E_max={E.value.max():.4f}, H_max={H.value.max():.4f}\")<\/code><\/pre>\n<p><strong>Wichtige Hinweise<\/strong>:<\/p>\n<ul>\n<li><code>ConvectionTerm<\/code> mit <code>coeff=1<\/code> berechnet effektiv \u2202h\/\u2202x (oder \u2202e\/\u2202x). Dies funktioniert in 1D, muss jedoch f\u00fcr 2D \/ 3D verallgemeinert werden.<\/li>\n<li>Der Zeitschritt <code>dt<\/code> muss die CFL-Bedingung erf\u00fcllen: <code>dt &lt;= mesh.dx \/ c<\/code> wobei C = 1\/\u221a(\u03bc\u03b5) die Wellengeschwindigkeit ist.<\/li>\n<li>Perfekte elektrische Leiter (PEC) Randbedingungen Dr\u00fccken Sie die tangentiale E auf Null.<\/li>\n<\/ul>\n<h3>3. Erweitern auf 2D und 3D<\/h3>\n<p>In 2D-Modi (TE-Modi) k\u00f6nnen Sie Komponenten E_Z, H_X, H_Y haben. Die Curl-Operationen werden:<\/p>\n<pre><code>(\u2207\u00d7H)_z = \u2202H_y\/\u2202x - \u2202H_x\/\u2202y\n(\u2207\u00d7E)_x = \u2202E_z\/\u2202y\n(\u2207\u00d7E)_y = -\u2202E_z\/\u2202x<\/code><\/pre>\n<p>FIPY fehlt ein direkter 2D-Curl-Operator, daher m\u00fcssen Sie ihn aus <code>CentralDifferenceConvectionTerm<\/code>  f\u00fcr jede Komponente erstellen. Dies wird ausf\u00fchrlich und fehleranf\u00e4llig.<\/p>\n<h3>4. Vektorpotentiale (erweitert)<\/h3>\n<p>Um die manuelle Handhabung von Curl zu vermeiden, verwenden einige Formulierungen ein Vektorpotential <strong> a <\/strong>, wobei b = \u2207 \u00d7 a und ein skalares Potential \u03c6. Dies kann die Maxwell-Gleichungen auf eine Wellengleichung zweiter Ordnung f\u00fcr <strong> a <\/strong> mit Messbedingungen reduzieren. Die Implementierung in FIPY bleibt jedoch komplex und nicht gut dokumentiert.<\/p>\n<h2>Einschr\u00e4nkungen und Fallstricke<\/h2>\n<h3>Kein nativer Curl-Operator<\/h3>\n<p>Die Termbibliothek von FIPY umfasst <code>DiffusionTerm<\/code>, <code>ConvectionTerm<\/code>, <code>TransientTerm<\/code>, aber nein <code>CurlTerm<\/code>. Sie m\u00fcssen die Curl manuell mithilfe von Mesh-Gradienten implementieren, was ein tiefes Verst\u00e4ndnis der Netzindizierung und der Face-to-Cell-Mappings erfordert.<\/p>\n<p>Aus der Forschung: \"Um eine Curl in FIPY zu berechnen, muss man den Operator explizit aus den Derivaten der einzelnen Vektorkomponenten des Feldes konstruieren. Dies erh\u00f6ht die Komplexit\u00e4t.\"<\/p>\n<h3>falsche L\u00f6sungen<\/h3>\n<p>Die Standarddiskretisierung von Curl-Curl-Gleichungen (\u2207 \u00d7 \u2207 \u00d7 A = \u03b5\u03bc \u2202\u00b2A \/ \u2202T\u00b2) kann aufgrund des Nullraums des diskreten Curl-Operators nicht-physische L\u00f6sungen liefern. Vektorfinite Elemente (Edge-Elemente) in FEM vermeiden dies nat\u00fcrlich, indem sie die Kontinuit\u00e4t tangentieller Komponenten sicherstellen. Der zellzentrierte Ansatz von FIPY bietet diese Garantie nicht.<\/p>\n<p><strong>Empfehlung<\/strong>: Bei der 2D\/3D-Wellenausbreitung validieren Sie die Ergebnisse gegen analytische L\u00f6sungen oder alternative Methoden. Erwarten Sie m\u00f6gliche falsche Modi, es sei denn, das Netz ist hochgradig verfeinert und es wird besondere Sorgfalt angewendet.<\/p>\n<h3>Randbedingungen<\/h3>\n<p>Elektromagnetische Randbedingungen spezifizieren h\u00e4ufig tangentiale elektrische Feldkontinuit\u00e4t oder perfekte Leiter. Das Randbedingungssystem von FIPY ist f\u00fcr skalare PDEs mit Dirichlet (Festwert) oder Neumann (Festfluss) ausgelegt. Die Implementierung von Oberfl\u00e4chenimpedanz- oder Strahlungsbedingungen (z. B. perfekt abgestimmte Schicht) ist m\u00f6glich, erfordert jedoch benutzerdefinierte Quellbegriffe.<\/p>\n<p><strong>Tipp<\/strong>: Matforges Artikel \"Grenzenbedingungen: Theorie und Implementierung in FIPY\" f\u00fcr die Grundlagen des FIPY-Grenzzustandssystems, das gleicherma\u00dfen f\u00fcr EM-Probleme gilt.<\/p>\n<h3>Leistungs\u00fcberlegungen<\/h3>\n<p>FIPY wird in Python mit leistungskritischen Schleifen in Cython geschrieben. Bei gro\u00dfen 3D-EM-Simulationen ist es langsamer als kompilierte FDTD-Codes (z. B. MEEP in C ++). Der Vorteil von FIPY ist die Flexibilit\u00e4t: einfache Kopplung mit anderen PDEs (W\u00e4rme\u00fcbertragung, Fl\u00fcssigkeitsfluss, chemische Reaktionen) und Rapid Prototyping.<\/p>\n<h2>Wann ist FIPY f\u00fcr Elektromagnetik zu verwenden?<\/h2>\n<h3>W\u00e4hlen Sie FIPY, wenn:<\/h3>\n<ul>\n<li>Sie m\u00fcssen <strong>Elektromagnetik mit anderen Physiken verbinden<\/strong> (z. B. Joule-Heizung, Plasmakinetik, Thermoelektrik)<\/li>\n<li>Ihre Geometrie ist komplex, aber Sie k\u00f6nnen mit relativ groben Netzen arbeiten<\/li>\n<li>Sie verwenden FIPY bereits f\u00fcr andere Teile Ihres Multiphysik-Problems<\/li>\n<li>Sie ben\u00f6tigen Rapid Prototyping und sind bereit, benutzerdefinierte Operatoren zu implementieren<\/li>\n<li>Ihr EM-Problem ist quasi-statisch (niedrige Frequenz), bei dem der Verdr\u00e4ngungsstrom vernachl\u00e4ssigbar ist<\/li>\n<\/ul>\n<h3>W\u00e4hlen Sie Alternativen, wenn:<\/h3>\n<ul>\n<li>Sie ben\u00f6tigen <strong>Hochfrequenz-, Vollwellen-Simulationen<\/strong> (Antennenstrahlung, Mikrowellenschaltungen)<\/li>\n<li>Genauigkeit und Leistung sind kritisch (Production Engineering Design)<\/li>\n<li>Sie ben\u00f6tigen eine integrierte S-Parameter-Extraktion, Fernfeldmuster oder Portanalyse<\/li>\n<li>Ihrem Team fehlen tiefe PDE- und numerische Methodenkompetenz<\/li>\n<\/ul>\n<p><strong>Empfohlene Alternativen<\/strong>:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Werkzeug<\/th>\n<th>Verfahren<\/th>\n<th>am besten f\u00fcr<\/th>\n<th>Python-Integration<\/th>\n<\/tr>\n<tr>\n<td><strong>MEEP<\/strong><\/td>\n<td>FDTD<\/td>\n<td>Photonik, Plasmonik, Wellenausbreitung<\/td>\n<td>Native Python-API<\/td>\n<\/tr>\n<tr>\n<td><strong>Fenics\/Dolfinx<\/strong><\/td>\n<td>Fem<\/td>\n<td>Allgemeine EM, Eigenprobleme, statisch\/quasi-statisch<\/td>\n<td>Python-Frontend, C++-Backend<\/td>\n<\/tr>\n<tr>\n<td><strong> ngsolve<\/strong><\/td>\n<td>Fem<\/td>\n<td>Hochfrequente, komplexe Geometrien<\/td>\n<td>Python (NGS-PY)<\/td>\n<\/tr>\n<tr>\n<td><strong> comsol <\/strong><\/td>\n<td>fem (verschiedene)<\/td>\n<td>Kommerzielle, Multiphysik, UI-gesteuert<\/td>\n<td>Livelink f\u00fcr Python<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Praktische Implementierungs-Checkliste<\/h2>\n<p>Beantworten Sie vor Beginn Ihrer EM-Simulation in FIPY diese Fragen:<\/p>\n<ul>\n<li>[] Ist das Problem wirklich f\u00fcr FVM geeignet, oder w\u00e4re FEM \/ FDTD besser?<\/li>\n<li>[ ] Haben Sie Ihre Curl-Implementierung in einem einfachen Testfall (z. B. konstantem Feld) \u00fcberpr\u00fcft?<\/li>\n<li>[] Sind Randbedingungen korrekt angewendet (tangentiale E f\u00fcr PEC, Kontinuit\u00e4t \u00fcber Schnittstellen)?<\/li>\n<li>[] Haben Sie die CFL-Bedingung f\u00fcr die Zeitschritte validiert?<\/li>\n<li>[] Haben Sie eine Methode, um St\u00f6rmodi zu erkennen (z. B. Felddivergenz zu \u00fcberwachen)?<\/li>\n<li>[] K\u00f6nnen Sie f\u00fcr die anf\u00e4ngliche Entwicklung auf 1D oder 2D vereinfachen?<\/li>\n<li>[] Haben Sie in Betracht gezogen, eine Vektorpotentialformulierung zu verwenden, um die Freiheitsgrade zu verringern?<\/li>\n<\/ul>\n<h2>H\u00e4ufige Fehler zu vermeiden<\/h2>\n<ol>\n<li><strong>Die Komplexit\u00e4t der Curl-Implementierung ignorieren<\/strong>: Anf\u00e4nger gehen h\u00e4ufig davon aus, dass FIPY \u00fcber einen integrierten Curl-Operator verf\u00fcgt. es nicht. Sie m\u00fcssen es aus r\u00e4umlichen Ableitungen bauen.<\/li>\n<li><strong>Verwendung von zellzentrierten Variablen f\u00fcr Vektorfelder ohne Pflege<\/strong>: Die Standard-FVM-Anordnung f\u00fcr Vektorfelder in EM erfordert versetzte Netze (z. B. Yee-Raster in FDTD). FIPY verwendet standardm\u00e4\u00dfig zusammengestellte Netze, was Instabilit\u00e4t oder falsche L\u00f6sungen verursachen kann.<\/li>\n<li><strong>Vernachl\u00e4ssigung von Einheiten und Nichtdimensionierung <\/strong>: Die Maxwell-Gleichungen umfassen \u03b5 und \u03bc, die um viele Gr\u00f6\u00dfenordnungen variieren. Nichtdimensionalisieren, um numerischen \u00dcber-\/Unterlauf zu vermeiden.<\/li>\n<li><strong>Unzureichende Netzaufl\u00f6sung<\/strong>: Wellenph\u00e4nomene erfordern mindestens 10\u201320 Zellen pro Wellenl\u00e4nge. Eine Unteraufl\u00f6sung f\u00fchrt zu Dispersionsfehlern (falsche Wellengeschwindigkeit) oder numerischer Instabilit\u00e4t.<\/li>\n<li><strong>Falsche Randbedingungen<\/strong>: PEC-Grenzen erfordern tangentiale E = 0. In FIPY m\u00fcssen Sie jede E-Komponente basierend auf der Grenzorientierung entsprechend einschr\u00e4nken.<\/li>\n<li><strong>\u00dcberpr\u00fcfen nicht \u2207\u00b7B = 0<\/strong>: Eine der Maxwell-Gleichungen (keine magnetischen Monopole) sollte gelten, wenn Ihre Implementierung korrekt ist. \u00dcberwachen Sie die Divergenz von B als Sanity Check.<\/li>\n<\/ol>\n<h2>Fallstudie: 1D Gau\u00dfsche Pulsausbreitung<\/h2>\n<p>Gehen wir durch ein vollst\u00e4ndiges, funktionierendes 1D-Beispiel, das die Wellenausbreitung und Reflexion von PEC-Grenzen demonstriert.<\/p>\n<p>&lt;<strong>Setup<\/strong>:<\/p>\n<ul>\n<li>Dom\u00e4ne: x \u2208 [0, 1] m<\/li>\n<li>Anfangs-E_Y: Gau\u00dfscher Puls zentriert auf x=0,5 m, Amplitude 1 V\/m<\/li>\n<li>h_z anf\u00e4nglich 0<\/li>\n<li>\u03bc = \u03b5 = 1 (nicht-dimensional, c=1)<\/li>\n<li>PEC-Grenzen: E_Y(0) = E_Y(1) = 0<\/li>\n<li>Zeitschritt: DT = 0,001, Gesamtschritte = 2000<\/li>\n<\/ul>\n<p><strong>Erwartetes Verhalten <\/strong>: Der Gau\u00dfsche Puls teilt sich in zwei sich nach links und rechts bewegende Wellen, die sich von den Grenzen reflektieren und sich schlie\u00dflich st\u00f6ren.<\/p>\n<p><strong>Vollst\u00e4ndiger Code<\/strong> wird im FIPY-Dokumentations-Repository (NIST) bereitgestellt. Die Simulation sollte die Energieeinsparung (Summe von \u222be\u00b2 und \u222bh\u00b2 ungef\u00e4hr konstant) und keine numerische Explosion zeigen, wenn die CFL-Bedingung erf\u00fcllt ist.<\/p>\n<h2>Validierung und \u00dcberpr\u00fcfung<\/h2>\n<h3>\u00dcberpr\u00fcfung: Stimmt der Code?<\/h3>\n<ul>\n<li>\u00dcberpr\u00fcfen Sie, ob \u2207 \u00b7 B w\u00e4hrend der Simulation nahe Null bleibt<\/li>\n<li>Vergleichen Sie mit der analytischen L\u00f6sung f\u00fcr 1D-Wellengleichung: E(x,t) = f(x-ct) + g(x+ct)<\/li>\n<li>F\u00fchren Sie die Netzverfeinerung durch: L\u00f6sung sollte als DX\u21920 konvergieren, dt\u21920<\/li>\n<\/ul>\n<h3>Validierung: Modelliert es die Realit\u00e4t?<\/h3>\n<ul>\n<li>Vergleichen Sie mit experimentellen Daten oder etablierten Simulationstools (MEEP, COMSOL)<\/li>\n<li>Test mit kanonischen Problemen: Rechteckiger Wellenleiter, Streuung aus einer Kugel<\/li>\n<\/ul>\n<h2>Fazit und n\u00e4chste Schritte<\/h2>\n<p>Die Maxwell-Gleichungen k\u00f6nnen in FIPY f\u00fcr Bildungszwecke, Prototypenentwicklung und Multiphysik-Kopplung implementiert werden, bei denen EM mit anderen PDE-basierten Ph\u00e4nomenen interagiert. FIPY ist jedoch nicht das optimale Werkzeug f\u00fcr die elektromagnetische Produktionssimulation.<\/p>\n<p><strong>Wenn Sie noch nicht in der Computer-Elektromagnetik sind<\/strong>: Beginnen Sie mit einem 1D-Beispiel, \u00fcberpr\u00fcfen Sie Ihre Curl-Implementierung und verstehen Sie die Einschr\u00e4nkungen, bevor Sie 2D\/3D-Probleme versuchen.<\/p>\n<p><strong>Wenn Sie nur High-Fidelity EM ben\u00f6tigen<\/strong>: Betrachten Sie stattdessen MEEP (FDTD) oder Fenics (FEM).<\/p>\n<p><strong>Wenn Sie Multiphysik ben\u00f6tigen<\/strong>: FIPY ist vielleicht Ihre beste Wahl, wenn Sie es bereits f\u00fcr andere Physik verwenden. Seien Sie bereit, benutzerdefinierte Operatoren zu schreiben und gr\u00fcndlich zu validieren.<\/p>\n<h3>Weiterf\u00fchrende Literatur \u00fcber Matforge<\/h3>\n<ul>\n<li><a href=\"..\/boundary-conditions-theory-and-implementation-in-fipy\/\">Grenzenbedingungen: Theorie und Implementierung in FIPY<\/a> \u2013 Learn FIPYs Randbedingungssystem<\/li>\n<li><a href=\"..\/finite-volume-method-explained-simply\/\">Finite-Volumen-Methode einfach erkl\u00e4rt<\/a> \u2013 FVM-Grundlagen verstehen<\/li>\n<li><a href=\"..\/using-fipy-for-phase-field-modeling\/\">Verwenden von FIPY zur Phasenfeldmodellierung<\/a> \u2013 Siehe FIPY-Festigkeiten in gekoppelten PDE-Systemen<\/li>\n<li><a href=\"..\/managing-large-scale-pde-problems-strategies-solvers-and-hpc-case-studies\/\">Verwalten von PDE-Problemen im gro\u00dfen Ma\u00dfstab<\/a> \u2013 HPC-Strategien f\u00fcr gro\u00dfe Simulationen<\/li>\n<\/ul>\n<h3>Externe Ressourcen<\/h3>\n<ul>\n<li>FIPY-Dokumentation: https:\/\/pages.nist.gov\/fipy\/<\/li>\n<li>Maxwells Gleichungen (Wikipedia): https:\/\/en.wikipedia.org\/wiki\/Maxwell%27S_Equations<\/li>\n<li>MEEP (FDTD): https:\/\/meep.readthedocs.io\/<\/li>\n<li>Fenics (FEM): https:\/\/fenicsproject.org\/<\/li>\n<\/ul>\n<hr>\n<p><strong>Schl\u00fcsselworte<\/strong>: Elektromagnetische Simulationen, Maxwell-Gleichungen, FIPY, Finite-Volumen-Methode, PDE-Solver, Wellenausbreitung, Curl-Operator, Randbedingungen, rechnerische Elektromagnete, FDTD, FEM, Vektorfelder, Python-Simulation<\/p>\n<p><strong>Interne Links<\/strong>: Der Artikel verweist auf vorhandene Matforge-Inhalte \u00fcber Randbedingungen, Finite-Volumen-Methode, Phasenfeldmodellierung und PDE-Probleme in gro\u00dfem Ma\u00dfstab, um den Lesern zusammengeh\u00f6rige Themen zu bieten und den Lesern zu leiten.<\/p>\n"},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 7<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>TL; DR Die Gleichungen von Maxwell beschreiben, wie sich elektrische und magnetische Felder entwickeln und interagieren. W\u00e4hrend FIPY f\u00fcr Probleme vom Typ Diffusion entwickelt wurde, k\u00f6nnen Sie elektromagnetische Wellen simulieren, indem Sie Maxwells Gleichungen als gekoppeltes System transienter hyperbolischer PDEs behandeln. Der Schl\u00fcssel besteht darin, die Gesetze von Faraday und Amp\u00e8re mit den FIPY-Implementierungen TransientTerm [&hellip;]<\/p>\n","protected":false,"raw":""},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"de_DE","_original_post":"https:\/\/matforge.org\/?p=235","iawp_total_views":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-815","post","type-post","status-publish","format-standard","hentry","category-simulation-modeling-projects","de-DE"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Elektromagnetische Simulationen mit FIPY: Maxwell&#039;s Equations Implementation Guide - matforge.org<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Elektromagnetische Simulationen mit FIPY: Maxwell&#039;s Equations Implementation Guide - matforge.org\" \/>\n<meta property=\"og:description\" content=\"Reading Time:  7 minutesTL; DR Die Gleichungen von Maxwell beschreiben, wie sich elektrische und magnetische Felder entwickeln und interagieren. W\u00e4hrend FIPY f\u00fcr Probleme vom Typ Diffusion entwickelt wurde, k\u00f6nnen Sie elektromagnetische Wellen simulieren, indem Sie Maxwells Gleichungen als gekoppeltes System transienter hyperbolischer PDEs behandeln. Der Schl\u00fcssel besteht darin, die Gesetze von Faraday und Amp\u00e8re mit den FIPY-Implementierungen TransientTerm [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"matforge.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-30T12:22:33+00:00\" \/>\n<meta name=\"author\" content=\"steven\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"steven\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"10\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/de\\\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/de\\\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\\\/\"},\"author\":{\"name\":\"steven\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\"},\"headline\":\"Elektromagnetische Simulationen mit FIPY: Maxwell&#8217;s Equations Implementation Guide\",\"datePublished\":\"2026-07-30T12:22:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/de\\\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\\\/\"},\"wordCount\":1757,\"commentCount\":0,\"articleSection\":[\"Simulation & amp; Modellierungsprojekte\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/de\\\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/de\\\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/de\\\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\\\/\",\"name\":\"Elektromagnetische Simulationen mit FIPY: Maxwell's Equations Implementation Guide - matforge.org\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-07-30T12:22:33+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/de\\\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/de\\\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/de\\\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Elektromagnetische Simulationen mit FIPY: Maxwell&#8217;s Equations Implementation Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\",\"url\":\"https:\\\/\\\/matforge.org\\\/\",\"name\":\"matforge.org\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/matforge.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/8f690fb596d657b12994b83caa788f03\",\"name\":\"steven\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g\",\"caption\":\"steven\"},\"url\":\"https:\\\/\\\/matforge.org\\\/author\\\/steven\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Elektromagnetische Simulationen mit FIPY: Maxwell's Equations Implementation Guide - matforge.org","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/","og_locale":"de_DE","og_type":"article","og_title":"Elektromagnetische Simulationen mit FIPY: Maxwell's Equations Implementation Guide - matforge.org","og_description":"Reading Time:  7 minutesTL; DR Die Gleichungen von Maxwell beschreiben, wie sich elektrische und magnetische Felder entwickeln und interagieren. W\u00e4hrend FIPY f\u00fcr Probleme vom Typ Diffusion entwickelt wurde, k\u00f6nnen Sie elektromagnetische Wellen simulieren, indem Sie Maxwells Gleichungen als gekoppeltes System transienter hyperbolischer PDEs behandeln. Der Schl\u00fcssel besteht darin, die Gesetze von Faraday und Amp\u00e8re mit den FIPY-Implementierungen TransientTerm [&hellip;]","og_url":"https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/","og_site_name":"matforge.org","article_published_time":"2026-07-30T12:22:33+00:00","author":"steven","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"steven","Gesch\u00e4tzte Lesezeit":"10\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/"},"author":{"name":"steven","@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03"},"headline":"Elektromagnetische Simulationen mit FIPY: Maxwell&#8217;s Equations Implementation Guide","datePublished":"2026-07-30T12:22:33+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/"},"wordCount":1757,"commentCount":0,"articleSection":["Simulation & amp; Modellierungsprojekte"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/","url":"https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/","name":"Elektromagnetische Simulationen mit FIPY: Maxwell's Equations Implementation Guide - matforge.org","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-07-30T12:22:33+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03"},"breadcrumb":{"@id":"https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/de\/electromagnetics-simulations-with-fipy-maxwells-equations-implementation-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/de\/"},{"@type":"ListItem","position":2,"name":"Elektromagnetische Simulationen mit FIPY: Maxwell&#8217;s Equations Implementation Guide"}]},{"@type":"WebSite","@id":"https:\/\/matforge.org\/#website","url":"https:\/\/matforge.org\/","name":"matforge.org","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/matforge.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/matforge.org\/#\/schema\/person\/8f690fb596d657b12994b83caa788f03","name":"steven","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d46cfcd83a298f27e8d66bfa035514fefca7652f26bd3ef7402f82b68a41ec0f?s=96&d=mm&r=g","caption":"steven"},"url":"https:\/\/matforge.org\/author\/steven\/"}]}},"_links":{"self":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/comments?post=815"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/815\/revisions"}],"predecessor-version":[{"id":993,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/815\/revisions\/993"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=815"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}