13  Polarisation und Brewster

Setz eine Polarisations-Sonnenbrille auf und schau auf einen See: Die grellen Reflexe auf dem Wasser sind weg, man sieht hinein statt darauf. Jetzt neige den Kopf um neunzig Grad — die Reflexe sind wieder da. Die Brille hat also nicht einfach „Helligkeit geschluckt”; sie hat eine Schwingungsrichtung aussortiert, und das Spiegelbild auf dem Wasser steckt offenbar fast vollständig in einer einzigen solchen Richtung. Wie kommt ein simpler Wasser-Reflex zu einer so einseitigen Polarisation?

Die Antwort ist das fehlende Stück aus Kapitel 12. Dort haben wir die Fresnel-Formel benutzt, aber nicht hergeleitet — und nur eine der beiden. In diesem Kapitel holen wir beides nach: Die Herleitung kostet mit dem Schritthalte-Wissen aus Kapitel 12 und der Spiegelformel aus Kapitel 6 nur wenige Zeilen, und die zweite Polarisation versteckt darin eine echte Überraschung — einen Einfallswinkel, bei dem eine Glasfläche aufhört zu spiegeln. Vollständig. Wir rechnen ihn aus, messen ihn nach und sehen am Ende, warum die Anglerbrille funktioniert.

Lernziele

Nach diesem Kapitel kannst du …

  1. … die Einfallsebene sowie s- und p-Polarisation erklären — und weißt, welche davon unsere 2D-Simulationen bisher stillschweigend gerechnet haben,
  2. … beide Fresnel-Formeln aus der Spiegelformel von Kapitel 6 herleiten (Stichwort Schräg-Wellenwiderstand) und an Zahlenpunkten auswerten,
  3. … den Brewster-Winkel berechnen (\(\tan\theta_B = n_2/n_1\)), geometrisch deuten (reflektiert ⊥ gebrochen) und physikalisch begründen (ein Dipol strahlt nicht längs seiner Achse),
  4. \(R(\theta)\)-Kurven für beide Polarisationen messen und erklären, warum der Brewster-Reflex in der Messung klein, aber nicht exakt null ist,
  5. … erklären, warum Reflexe von Wasser und Glas polarisiert sind und wie Polfilter-Brille und Brewster-Fenster das ausnutzen.

13.1 s und p: die Einfallsebene sortiert das Licht

Sobald Licht schräg auf eine Grenzfläche trifft, gibt es eine ausgezeichnete Ebene: die Einfallsebene, aufgespannt vom einfallenden Strahl und dem Lot auf die Grenze. In unseren 2D-Bildern ist die Zeichenebene die Einfallsebene. Die Polarisation des Lichts — die Querrichtung, in der \(\vec{E}\) schwingt (Kapitel 4) — kann nun zwei Grundstellungen einnehmen, und jede beliebige Polarisation ist eine Mischung aus beiden:

  • s-Polarisation: \(\vec{E}\) steht senkrecht auf der Einfallsebene (zeigt also aus unserem Bild heraus — das deutsche „senkrecht” hat dem Fall weltweit den Buchstaben gegeben).
  • p-Polarisation: \(\vec{E}\) liegt parallel zur Einfallsebene (im Bild: schwingt schräg in der Zeichenebene, stets quer zur Laufrichtung — Transversalität, Kapitel 4).

Hier lohnt ein ehrlicher Rückblick: Unser gesamtes 2D-Leben seit Kapitel 9 — das TMz-Gitter mit \(E_z\) als Hauptfeld, die Ringwellen, das komplette Kapitel 12 — war s-Polarisation. Die Wahl fiel damals aus Bequemlichkeit (ein skalares \(E_z\) statt zweier Komponenten); jetzt wird sie inhaltlich: Es gibt eine zweite Hälfte der Welt. Bei der p-Polarisation tauschen die Felder die Rollen — dort zeigt das Magnetfeld aus der Ebene (\(H_z\)), während \(\vec{E}\) in der Ebene liegt (das TEz-Gitter, der Zwilling aus dem Kapitel-9-Ausblick). Für Meep heißt das nur: Wir kippen den Polarisationsvektor der Quelle, und als Bildgröße zeigen wir \(H_z\) statt \(E_z\).

13.2 Fresnel aus der Spiegelformel von Kapitel 6

Kapitel 6 hat für senkrechten Einfall hergeleitet:

\[r = \frac{Z_2 - Z_1}{Z_2 + Z_1}, \qquad Z = \frac{Z_0}{n}\]

— der Spiegelfaktor folgt aus zwei Stetigkeitsbedingungen an der Grenze (\(E\) und \(H\) tangential stetig) plus der Wellenbeziehung \(H = E/Z\). Beim schrägen Einfall gelten dieselben zwei Bedingungen — stetig sein müssen die Feldkomponenten parallel zur Grenzfläche. Neu ist nur ein Geometriefaktor, und der hängt von der Polarisation ab:

  • s-Fall: \(\vec{E}\) (aus der Ebene) liegt schon komplett parallel zur Grenze; vom \(\vec{H}\)-Feld, das quer zum Strahl steht, liegt nur der Anteil \(H\cos\theta\) in der Grenzfläche. Das Verhältnis der tangentialen Felder ist also nicht \(Z\), sondern \(E/(H\cos\theta) = Z/\cos\theta\).
  • p-Fall: Jetzt liegt \(\vec{H}\) (aus der Ebene) komplett parallel, und von \(\vec{E}\) zählt nur \(E\cos\theta\) — das tangentiale Verhältnis ist \(Z\cos\theta\).

Mehr passiert nicht: In der Kapitel-6-Formel ersetzt man \(Z\) durch diesen Schräg-Wellenwiderstand \(Z_\text{eff}\), jede Seite mit ihrem eigenen Winkel (\(\theta_1\) unten, \(\theta_2\) oben, verknüpft über Snellius). Einsetzen von \(Z = Z_0/n\) und Kürzen liefert die beiden Fresnel-Formeln:

\[r_s = \frac{n_1\cos\theta_1 - n_2\cos\theta_2} {n_1\cos\theta_1 + n_2\cos\theta_2}, \qquad r_p = \frac{n_1\cos\theta_2 - n_2\cos\theta_1} {n_1\cos\theta_2 + n_2\cos\theta_1}, \qquad R = r^2.\]

Gleiche Bauform, aber die Winkel sitzen über Kreuz — das wird gleich den ganzen Unterschied machen. Erst die Kontrollen, je eine Handrechnung pro Formel (Glas \(n_1 = 1{,}5\) → Vakuum, Einfall \(30°\), also \(\theta_2 = 48{,}59°\) aus Kapitel 12):

  • \(r_s\): Zähler \(1{,}5 \cdot 0{,}866 - 1 \cdot 0{,}661 = 0{,}638\), Nenner \(1{,}960\), also \(r_s = 0{,}325\), \(R_s = 10{,}6\,\%\) — exakt die Zahl, die Kapitel 12 gemessen hat. Und bei \(\theta_1 = 0\) kollabieren beide Formeln zu \((n_1 - n_2)/(n_1 + n_2) = 0{,}2\), dem Kapitel-6-Wert.
  • \(r_p\): Zähler \(1{,}5 \cdot 0{,}661 - 1 \cdot 0{,}866 = 0{,}992 - 0{,}866 = 0{,}126\), Nenner \(1{,}858\), also \(r_p = 0{,}068\) und \(R_p = 0{,}46\,\%\). Derselbe Winkel, dasselbe Glas — aber dreiundzwanzigmal weniger Reflexion als im s-Fall, nur weil das Feld anders herum schwingt.
import numpy as np

N_GLAS = 1.5

def fresnel(theta_grad, pol, n1=N_GLAS, n2=1.0):
    """Reflexionsgrad R für s- oder p-Polarisation (Einfall in Medium 1)."""
    t1 = np.radians(theta_grad)
    t2 = np.arcsin(n1 * np.sin(t1) / n2)        # Snellius (Kap. 12)
    if pol == "s":
        r = ((n1 * np.cos(t1) - n2 * np.cos(t2))
             / (n1 * np.cos(t1) + n2 * np.cos(t2)))
    else:
        r = ((n1 * np.cos(t2) - n2 * np.cos(t1))
             / (n1 * np.cos(t2) + n2 * np.cos(t1)))
    return r ** 2

for pol in ("s", "p"):
    print(f"R_{pol}(0°) = {fresnel(1e-9, pol):.4f}   "
          f"R_{pol}(30°) = {fresnel(30, pol):.4f}")
R_s(0°) = 0.0400   R_s(30°) = 0.1058
R_p(0°) = 0.0400   R_p(30°) = 0.0046

Beide Handrechnungen bestätigt — und der Kapitel-6-Wert \(R(0°) = 4\,\%\) gleich mit.

13.3 Die Überraschung im p-Zähler

WarnungNaheliegende Vermutung

„Eine Grenzfläche spiegelt immer. Mal stärker, mal schwächer — aber ein bisschen Reflex bleibt bei jedem Winkel.”

Warum sie naheliegt: Bisher stimmte es ausnahmslos. Senkrechter Einfall: 4 %. Schräg (s, \(30°\)): 10,6 %. Über dem Grenzwinkel: 100 %. Jede Glasscheibe, jede Pfütze, jedes Schaufenster spiegelt — die Erfahrung kennt keine reflexfreie Grenzfläche.

Was stattdessen stimmt: Für die p-Polarisation existiert genau ein Einfallswinkel, bei dem die Reflexion vollständig verschwindet — nicht klein wird: verschwindet. Eine Glasfläche, unter diesem Winkel mit p-Licht beleuchtet, ist ein perfektes Anti-Spiegel-Fenster. Die Erfahrung übersieht das nur, weil Alltagslicht beide Polarisationen mischt und die s-Hälfte brav weiterspiegelt.

Der Verdächtige ist der Zähler von \(r_p\). Beim s-Zähler \(n_1\cos\theta_1 - n_2\cos\theta_2\) kann (auf dem Weg Glas → Vakuum) nie null herauskommen: \(n_1 > n_2\) und \(\cos\theta_1 > \cos\theta_2\) — beide Faktoren der linken Seite gewinnen. Beim p-Zähler \(n_1\cos\theta_2 - n_2\cos\theta_1\) aber ziehen die Faktoren gegeneinander, und tatsächlich wechselt er das Vorzeichen: Unsere Handrechnung gab bei \(30°\) noch \(+0{,}126\), bei \(\theta_1 \to 0\) ist er \(n_1 - n_2 < 0\)… Moment — er ist negativ bei \(0°\) und positiv bei \(30°\)? Dann liegt dazwischen eine Nullstelle.

Wo genau, verrät ein geometrischer Ansatz. Probiere den Sonderfall \(\theta_1 + \theta_2 = 90°\) — gebrochener und reflektierter Strahl stünden dann senkrecht aufeinander (der reflektierte läuft unter \(\theta_1\) nach unten, der gebrochene unter \(\theta_2\) nach oben; Winkelsumme am Lot: \(180° - \theta_1 - \theta_2 = 90°\)). In diesem Fall ist \(\cos\theta_2 = \cos(90° - \theta_1) = \sin\theta_1\), und der p-Zähler wird zu \(n_1\sin\theta_1 - n_2\cos\theta_1\) — das ist null, wenn

\[\tan\theta_B = \frac{n_2}{n_1}.\]

Das ist der Brewster-Winkel. (Dass dieser Winkel die 90°-Bedingung auch wirklich erfüllt, prüft Snellius: \(n_1 \sin\theta_B = n_2\cos\theta_B = n_2\sin\theta_2\) verlangt \(\theta_2 = 90° - \theta_B\). ✓) Die Handrechnung für unsere Bühne, Glas → Vakuum: \(\tan\theta_B = 1/1{,}5\), also \(\theta_B = \arctan(0{,}667) = 33{,}69°\) — und der zugehörige Brechungswinkel ist \(90° - 33{,}69° = 56{,}31°\). Beides sind Messvorhersagen.

Warum ausgerechnet \(90°\)? Hier kommt die Physik hinter der Algebra, und sie ist das schönste Argument des Kapitels. Die reflektierte Welle fällt ja nicht vom Himmel: Sie wird von den schwingenden Ladungen der Materie abgestrahlt, kleinen Dipolen, die das durchgehende Feld im Takt schüttelt (so entsteht „Reflexion” mikroskopisch). Ein schwingender Dipol strahlt aber nicht in alle Richtungen gleich — längs seiner eigenen Achse strahlt er gar nicht (in Achsrichtung „sieht” man die Querbewegung der Ladung nicht; Kapitel 21 misst diese Keule aus). Bei p-Polarisation schwingen die Dipole parallel zum \(\vec{E}\) der gebrochenen Welle, also senkrecht zum gebrochenen Strahl — und genau am Brewster-Winkel zeigt die Richtung, in die der Reflex laufen müsste, exakt entlang dieser Dipolachse. Es gibt schlicht niemanden, der in diese Richtung strahlen könnte. Für s-Polarisation schwingen die Dipole dagegen aus der Ebene heraus — senkrecht zu jeder Strahlrichtung in der Ebene, deshalb hat der s-Fall nie eine Sendepause und nie einen Brewster-Winkel.

13.4 Die Messung: zwei Kurven, ein Einbruch

Der Versuchsaufbau, in einem Absatz, denn er ist der von Kapitel 12 mit zwei Drehknöpfen mehr: Bühne \(24 \times 12\), Glas unten, Auflösung 20 Punkte pro \(\lambda_0\); der Gaußstrahl (\(w_0 = 3\)) zielt von unten auf \((0,0)\), als schmalbandiger Puls für saubere Flux-Bilanzen. Neu 1: Die Polarisation wird über den Feldvektor der Quelle gewählt — beam_E0 \(= (0,0,1)\) ist s; für p kippen wir ihn in die Ebene, senkrecht zur Laufrichtung. Neu 2: Gemessen wird \(R(\theta)\) für beide Polarisationen über je sieben Winkel von \(10°\) bis \(35°\) — oberhalb wäre der Grenzwinkel \(41{,}8°\) zu nahe: Die Winkel-Flügel des Bündels (Kapitel 12!) gerieten in die Totalreflexion und höben die Kurve. Wichtig: Der Referenzlauf (alles Glas) wird für jede Polarisation einzeln gefahren — die eingespeiste Leistung unterscheidet sich zwischen s und p um gut ein Prozent, und bei einem erwarteten \(R_p\) unter einem Prozent wäre eine geteilte Referenz ein versteckter Systematikfehler genau auf Signalgröße. Erfolgskriterium: Beide Kurven auf den Fresnel-Linien (bis \(30°\) auf wenige Promille absolut); am Brewster-Winkel bricht \(R_p\) um mehr als eine Größenordnung unter \(R_s\) ein.

import os
os.environ["HWLOC_HIDE_ERRORS"] = "2"   # wie in Kap. 11/12

import matplotlib.pyplot as plt
import meep as mp

mp.verbosity(0)

AUFL = 20
SX, SY = 24.0, 12.0
DX = 1.0 / AUFL
F = 1.0
W0 = 3.0
Y_QUELLE = -3.5
# np.arctan: Umkehrung des Tangens (Gegenstück zu np.arcsin, Kap. 8)
TH_BREWSTER = np.degrees(np.arctan(1.0 / N_GLAS))
print(f"Brewster-Vorhersage: {TH_BREWSTER:.2f}°")

def simulation(theta_grad, pol, zeitverlauf, mit_grenze=True,
               von_oben=False):
    """Gaußstrahl auf (0,0) wie in Kap. 12; pol: "s" (Ez) oder "p" (Hz)."""
    th = np.radians(theta_grad)
    vz = -1.0 if von_oben else 1.0
    kdir = mp.Vector3(np.sin(th), vz * np.cos(th))
    e0 = (mp.Vector3(0, 0, 1) if pol == "s"            # s: E aus der Ebene
          else mp.Vector3(vz * np.cos(th), -np.sin(th), 0))  # p: E in der
    if mit_grenze:                                     #   Ebene, ⊥ kdir
        geometrie = [mp.Block(size=mp.Vector3(mp.inf, SY),
                              center=mp.Vector3(0, -SY / 2),
                              material=mp.Medium(index=N_GLAS))]
    elif von_oben:
        geometrie = []                  # Referenz von oben: alles Vakuum
    else:
        geometrie = [mp.Block(size=mp.Vector3(mp.inf, mp.inf, mp.inf),
                              material=mp.Medium(index=N_GLAS))]
    y_q = -Y_QUELLE if von_oben else Y_QUELLE
    quelle = mp.GaussianBeamSource(
        zeitverlauf, center=mp.Vector3(-abs(y_q) * np.tan(th), y_q),
        size=mp.Vector3(10, 0),
        component=mp.ALL_COMPONENTS,    # Polarisation steckt in beam_E0
        beam_kdir=kdir, beam_w0=W0, beam_x0=mp.Vector3(0, 0), beam_E0=e0)
    return mp.Simulation(cell_size=mp.Vector3(SX, SY), resolution=AUFL,
                         boundary_layers=[mp.PML(1.0)], sources=[quelle],
                         geometry=geometrie)


def reflexionsgrad(theta_grad, pol, von_oben=False):
    """R per Puls + Referenzlauf (die Kapitel-12-Methode)."""
    y_mon = +1.8 if von_oben else -1.8
    werte = {}
    for mit_grenze in (False, True):
        sim = simulation(theta_grad, pol, mp.GaussianSource(F, fwidth=F / 8),
                         mit_grenze=mit_grenze, von_oben=von_oben)
        monitor = sim.add_flux(F, 0, 1, mp.FluxRegion(
            center=mp.Vector3(0, y_mon), size=mp.Vector3(20, 0)))
        sim.run(until_after_sources=50)
        flux = mp.get_fluxes(monitor)[0]
        werte[mit_grenze] = -flux if von_oben else flux   # +: bergauf zählt
    return (werte[False] - werte[True]) / werte[False]
Using MPI version 4.1, 1 processes
Brewster-Vorhersage: 33.69°
WichtigVorhersage-Punkt

Skizziere beide Kurven \(R_s(\theta)\) und \(R_p(\theta)\) von \(10°\) bis \(35°\), bevor du die Messung startest: Wo starten sie bei kleinem Winkel (Kapitel 6 verrät es), welche steigt, welche fällt — und was passiert bei \(33{,}7°\)?

Die Messung dauert einen Kaffee lang (28 Meep-Läufe — zwei Polarisationen, sieben Winkel, je Haupt- und Referenzlauf):

# von oben: fresnel(), reflexionsgrad(), TH_BREWSTER
WINKEL = np.array([10.0, 15.0, 20.0, 25.0, 30.0, TH_BREWSTER, 35.0])
gemessen = {}
for pol in ("s", "p"):
    gemessen[pol] = np.array([reflexionsgrad(th, pol) for th in WINKEL])

fig, ax = plt.subplots(figsize=(6.6, 3.8))
th_fein = np.linspace(5, 40, 200)
for pol, farbe in (("s", "tab:blue"), ("p", "tab:orange")):
    ax.plot(th_fein, [fresnel(t, pol) for t in th_fein], color=farbe,
            lw=1.2, label=f"Fresnel {pol}")
    ax.plot(WINKEL, gemessen[pol], "o", color=farbe, ms=5,
            label=f"Messung {pol}")
ax.axvline(TH_BREWSTER, color="gray", ls=":", lw=1.0)
ax.annotate("Brewster\n33,7°", (TH_BREWSTER, 0.27), ha="center", fontsize=9)
ax.set_xlabel("Einfallswinkel θ₁ (°)")
ax.set_ylabel("Reflexionsgrad R")
ax.set_ylim(0, 0.45)
ax.legend(fontsize=8, loc="upper left")
plt.tight_layout(); plt.show()

i_b = np.argmin(np.abs(WINKEL - TH_BREWSTER))
print(f"am Brewster-Winkel: R_s = {gemessen['s'][i_b]:.4f},"
      f"  R_p = {gemessen['p'][i_b]:.4f}"
      f"  (Faktor {gemessen['s'][i_b] / gemessen['p'][i_b]:.0f})")
Abbildung 13.1: Der Reflexionsgrad der Glas-Vakuum-Grenze für beide Polarisationen, von 10° bis 35°: Linien = Fresnel-Formeln, Punkte = Meep-Messung (Flux + Referenzlauf). Beide starten bei den 4 % des senkrechten Einfalls (Kapitel 6). Die s-Kurve (blau) steigt monoton — sie kennt keinen Brewster-Winkel. Die p-Kurve (orange) fällt und geht bei 33,7° (gepunktete Linie) durch ihre Nullstelle; der gemessene Restwert von 0,4 % stammt vom Winkelbündel des Strahls. Oberhalb von 35° rasen beide Theoriekurven auf die Totalreflexion bei 41,8° zu — gemessen wird dort nicht mehr, weil die Winkel-Flügel des Bündels in die Totalreflexion gerieten.
am Brewster-Winkel: R_s = 0.1500,  R_p = 0.0038  (Faktor 39)

Beide Kurven liegen auf ihren Fresnel-Linien, und am Brewster-Winkel klafft zwischen den Polarisationen ein Faktor vierzig: \(15\,\%\) gegen \(0{,}4\,\%\). Dass die p-Messung nicht exakt null zeigt, ist kein Schönheitsfehler der Theorie, sondern — wie schon bei der 98,9-%-Totalreflexion in Kapitel 12 — die Winkelbreite des Bündels: \(R_p\) ist nur exakt am Brewster-Winkel exakt null und wächst quadratisch daneben; ein \(\pm 6°\)-Bündel mittelt darüber und sammelt die Reste der Flügel ein. Die ideale ebene Welle träfe die Null exakt.

13.5 Das Foto zum Beweis — und die 90°-Probe

Zahlen überzeugen den Verstand, Bilder das Bauchgefühl. Derselbe Aufbau noch einmal als Dauerstrich-Schnappschuss, beide Polarisationen exakt am Brewster-Winkel — beim p-Lauf zeigt das Bild das Feld \(H_z\) (das skalare Feld der p-Welt):

# von oben: simulation(), TH_BREWSTER, SX, SY, F
felder = {}
for pol, komponente in (("s", mp.Ez), ("p", mp.Hz)):
    sim = simulation(TH_BREWSTER, pol, mp.ContinuousSource(F, width=2))
    sim.run(until=45.0)
    felder[pol] = sim.get_array(component=komponente, center=mp.Vector3(),
                                size=mp.Vector3(SX, SY))

fig, achsen = plt.subplots(2, 1, figsize=(7.0, 5.4))
th_b = np.radians(TH_BREWSTER)
th_2 = np.radians(90.0 - TH_BREWSTER)
for ax, pol, name in ((achsen[0], "s", "s-Polarisation (Ez): Reflex da"),
                      (achsen[1], "p", "p-Polarisation (Hz): Reflex weg")):
    feld = felder[pol]
    w = np.abs(feld).max() / 2.5
    ax.imshow(feld.T, origin="lower", cmap="RdBu_r", vmin=-w, vmax=w,
              extent=(-SX / 2, SX / 2, -SY / 2, SY / 2))
    ax.axhline(0, color="black", lw=0.9)
    ax.plot([-5.5 * np.tan(th_b), 0], [-5.5, 0], "k--", lw=0.9)
    ax.plot([0, 5.5 * np.tan(th_2)], [0, 5.5], "k--", lw=0.9)
    if pol == "s":
        ax.plot([0, 5.5 * np.tan(th_b)], [0, -5.5], "k--", lw=0.9)
    ax.set_title(name, fontsize=10)
    ax.set_ylabel("y (λ)")
achsen[1].set_xlabel("x (λ)")
plt.tight_layout(); plt.show()
Abbildung 13.2: Beide Polarisationen am Brewster-Winkel 33,7° (oben Ez der s-Welle, unten Hz der p-Welle; gestrichelt die Erwartungslinien für einfallenden, gebrochenen — und beim s-Bild reflektierten — Strahl). Oben das gewohnte Bild: einfallender, gebrochener und ein deutlicher reflektierter Strahl samt Interferenz-Streifen im Glas. Unten fehlt der reflektierte Arm vollständig — die Grenzfläche spiegelt nicht, das V aus Einfall und Reflex ist zur einfachen Knicklinie geworden. Reflektierte Richtung und gebrochener Strahl stünden hier senkrecht aufeinander: Der Reflex müsste exakt längs der Dipolachsen laufen, und dorthin strahlt niemand.

Und weil zu jedem schönen Bild eine Zahl gehört: Die 90°-Behauptung ist messbar. Der gebrochene Strahl im p-Bild trägt sein \(k_x\) (Kapitel 12), und daraus folgt sein Winkel — der zusammen mit dem Brewster-Winkel \(90°\) ergeben muss:

# von oben: felder, SX, SY, AUFL, DX, TH_BREWSTER
def idx(x, y):
    return int(round((x + SX / 2) * AUFL)), int(round((y + SY / 2) * AUFL))


def kx_aus_zeile(feld, y, x0=-4.0, x1=4.0):
    """Nulldurchgangs-Methode, wörtlich aus Kapitel 12."""
    i0, _ = idx(x0, 0); i1, _ = idx(x1, 0); _, j = idx(0, y)
    zeile = feld[i0:i1, j]
    s = np.flatnonzero(np.sign(zeile[:-1]) * np.sign(zeile[1:]) < 0)
    null = s - zeile[s] / (zeile[s + 1] - zeile[s])
    return 1.0 / (2 * np.mean(np.diff(null)) * DX)


kx_oben = kx_aus_zeile(felder["p"], +0.5)
theta2 = np.degrees(np.arcsin(min(1.0, kx_oben)))
print(f"kx über der Grenze: {kx_oben:.4f}  →  θ₂ = {theta2:.2f}°")
print(f"θ_B + θ₂ = {TH_BREWSTER + theta2:.2f}°   (Erwartung: 90°)")
kx über der Grenze: 0.8328  →  θ₂ = 56.39°
θ_B + θ₂ = 90.08°   (Erwartung: 90°)

\(90{,}1°\) — die Geometrie hinter dem Dipol-Argument, im eigenen Feldbild nachgemessen.

13.6 Wozu das gut ist: Brillen und Laser

Die Anglerbrille. Sonnenlicht ist unpolarisiert — eine wild wechselnde Mischung aus s und p zu gleichen Teilen. Der Wasser-Reflex aber behandelt die Hälften völlig verschieden: Nahe am Brewster-Winkel (für Wasser, \(n = 1{,}33\), liegt er bei \(53°\) — ein sehr alltäglicher Blickwinkel auf einen See) wird die p-Hälfte kaum bis gar nicht reflektiert, die s-Hälfte kräftig. Das Spiegelbild auf dem Wasser besteht also fast nur aus s-Licht — und „s” heißt hier: \(\vec{E}\) horizontal (senkrecht zur Einfallsebene, die das Lot enthält). Die Polfilter-Brille sperrt schlicht horizontal schwingendes Licht (ein Skalarprodukt aus Plastik, Kapitel 4), löscht damit gezielt den Reflex und lässt das unpolarisierte Licht aus der Tiefe halbiert passieren. Neigt man den Kopf um \(90°\), sperrt die Brille die falsche Richtung — der Reflex ist zurück. Übung 13.3 macht aus dieser Geschichte eine Messkurve.

Das Brewster-Fenster. Die Umkehrung desselben Tricks: Wer in einem Laser Licht tausendfach durch ein Fenster schicken muss, kann selbst 4 % Verlust pro Durchgang nicht bezahlen. Ein im Brewster-Winkel schräg gestelltes Fenster ist für p-Licht verlustfrei — und weil die s-Hälfte bei jedem Umlauf 15 % Reflexionsverlust erleidet, gewinnt im Wettbewerb um die Verstärkung die p-Welle: Der Laserstrahl kommt von selbst sauber polarisiert heraus. Dieselbe Physik, die der Angler trägt, steckt gekippt in fast jedem Gaslaser.

13.7 Das Kapitel-Programm

programme/kap13/kap13_polarisation_brewster.py bündelt die Befunde eigenständig und sichert sie mit assert-Schranken: beide \(R(\theta)\)-Kurven bis \(30°\) auf \(0{,}005\) absolut an Fresnel, Brewster-Punkt \(R_p < 0{,}006\) bei Faktor \(> 25\) zu \(R_s\), 90°-Probe auf \(0{,}5°\), und der Umkehrlauf von oben (Ü 13.4) mit \(R_p = 0{,}002\) gegen \(R_s = 0{,}142\).

TippMerkkasten
  • s = \(\vec{E}\) senkrecht zur Einfallsebene (unsere TMz-Welt seit Kapitel 9), p = \(\vec{E}\) in der Einfallsebene (\(H_z\)-Welt). Jede Polarisation ist eine Mischung aus beiden.
  • Fresnel = Kapitel-6-Formel mit Schräg-Wellenwiderstand: s: \(Z/\cos\theta\), p: \(Z\cos\theta\) — mehr Herleitung braucht es nicht.
  • Brewster: \(\tan\theta_B = n_2/n_1\) (Glas → Luft \(33{,}7°\), Luft → Glas \(56{,}3°\) — komplementär). Dort: reflektiert ⊥ gebrochen, der Reflex müsste längs der Dipolachsen laufen — und Dipole strahlen dorthin nicht. Nur p hat das; s-Dipole zeigen aus der Ebene und senden immer.
  • Reflexe sind polarisiert: nahe Brewster fast rein s (horizontal) — deshalb funktioniert die Polfilter-Brille, und deshalb polarisiert sich ein Laser am Brewster-Fenster selbst.
  • Ein gemessener Brewster-Restwert (\(0{,}4\,\%\) statt null) ist Bündel-Physik, kein Theoriefehler — dieselbe Lektion wie bei der 98,9-%-Totalreflexion.

Roter Faden

Mit diesem Kapitel ist die Polarisation komplett: Kapitel 4 gab ihr Richtung und Malus-Projektion, hier bekam sie ihre Grenzflächen-Physik — und das Versprechen aus dem Kapitel-4-Polfilter („ein Skalarprodukt aus Plastik”) zahlt sich in einer Brille aus. Die Herleitung lebte von Kapitel 6 (Spiegelformel) und Kapitel 12 (Schritthalten, \(k_x\)-Messung, Flux samt Referenzlauf, Bündel-Flügel); die stillschweigende TMz-Wahl aus Kapitel 9 wurde endlich zur bewussten Entscheidung. Nach vorn: Das Dipol-Argument bekommt in Kapitel 21 seine eigene Bühne (die Strahlungskeule des Dipols, vermessen), das Impedanz-Denken kehrt in Kapitel 22 als Leitungstheorie wieder, und Kapitel 28 braucht für die Doppelbrechung genau das hier gelegte Fundament — Materialien, in denen \(n\) selbst von der Polarisation abhängt.

Übungen

Ü 13.1 (Verstehen). Ein Fotograf will das Spiegelbild auf einem Schaufenster loswerden, ein anderer das Glitzern auf nassem Asphalt. Erkläre für beide: In welcher Richtung muss die Durchlassachse des Polfilters stehen — und warum hilft der Filter beim Schaufenster nur richtig, wenn der Fotograf schräg zur Scheibe steht?

Reflexe sind s-dominiert, und s heißt: \(\vec{E}\) senkrecht zur Einfallsebene. Beim nassen Asphalt (waagerechte Fläche, Lot senkrecht) ist die Einfallsebene vertikal — s ist horizontal, der Filter muss also vertikal durchlassen (wie die Anglerbrille). Beim Schaufenster steht die Fläche senkrecht; blickt der Fotograf schräg von der Seite darauf, ist die Einfallsebene horizontal, der Reflex schwingt vertikal, und die Durchlassachse muss horizontal stehen — um \(90°\) anders als auf der Straße. Steht der Fotograf dagegen frontal vor der Scheibe (\(\theta_1 \approx 0\)), gibt es keine ausgezeichnete Einfallsebene: Der Reflex ist unpolarisiert, \(R_s = R_p = 4\,\%\), und kein Filter der Welt kann ihn auslöschen — er kann nur die Hälfte schlucken. Der Polfilter wirkt umso besser, je näher der Blickwinkel am Brewster-Winkel liegt (\(56°\) zum Lot bei Glas).

Ü 13.2 (Verstehen). Berechne von Hand die Brewster-Winkel für den Blick aus der Luft auf Wasser (\(n = 1{,}33\)), Glas (\(1{,}5\)) und Diamant (\(2{,}42\)); prüfe mit drei Zeilen Code. Berechne dann für Glas zusätzlich den Brewster-Winkel der Gegenrichtung (Glas → Luft) und addiere beide. Zufall?

\(\theta_B = \arctan(n_2/n_1)\), von Luft aus also \(\arctan(n)\): Wasser \(53{,}1°\), Glas \(56{,}3°\), Diamant \(67{,}5°\). Gegenrichtung Glas → Luft: \(\arctan(1/1{,}5) = 33{,}7°\) — und \(56{,}3° + 33{,}7° = 90°\). Kein Zufall: Der Brewster-Winkel der einen Seite ist der Brechungswinkel der anderen (die 90°-Geometrie ist symmetrisch — derselbe Strahlenknick, nur rückwärts durchlaufen, und Lichtwege sind umkehrbar). Anders als der Grenzwinkel ist Brewster also keine Einbahnstraße: Es gibt ihn in beide Richtungen, nur an komplementären Winkeln.

# von oben: N_GLAS
for name, n in (("Wasser", 1.33), ("Glas", N_GLAS), ("Diamant", 2.42)):
    print(f"Luft → {name:8}: θ_B = {np.degrees(np.arctan(n)):.1f}°")
print(f"Glas → Luft     : θ_B = {np.degrees(np.arctan(1 / N_GLAS)):.1f}°"
      f"   (Summe mit Luft → Glas: 90°)")
Luft → Wasser  : θ_B = 53.1°
Luft → Glas    : θ_B = 56.3°
Luft → Diamant : θ_B = 67.5°
Glas → Luft     : θ_B = 33.7°   (Summe mit Luft → Glas: 90°)

Ü 13.3 (Verändern). Unpolarisiertes Licht ist eine 50:50-Mischung: \(R_\text{unpol} = (R_s + R_p)/2\). Der Polarisationsgrad des Reflexes, \(P = (R_s - R_p)/(R_s + R_p)\), misst, wie einseitig er ist (\(0\) = unpolarisiert, \(1\) = perfekt s-polarisiert). Berechne \(P(\theta)\) aus den schon gemessenen Kurven des Kapitels — keine neue Simulation nötig — und beantworte: Wie nah am Brewster-Winkel muss der Angler-Blick liegen, damit die Brille mehr als \(90\,\%\) des Reflexes erwischen kann?

# von oben: WINKEL, gemessen (die R(θ)-Messwerte des Kapitels)
P = (gemessen["s"] - gemessen["p"]) / (gemessen["s"] + gemessen["p"])
for th, p_grad in zip(WINKEL, P):
    print(f"θ = {th:5.2f}°:  P = {p_grad:.2f}")
θ = 10.00°:  P = 0.12
θ = 15.00°:  P = 0.25
θ = 20.00°:  P = 0.44
θ = 25.00°:  P = 0.69
θ = 30.00°:  P = 0.92
θ = 33.69°:  P = 0.95
θ = 35.00°:  P = 0.91

Schon bei \(10°\) ist der Reflex zu gut \(10\,\%\) einseitig, ab etwa \(30°\) zu über \(90\,\%\), am Brewster-Winkel zu \(95\,\%\) (ideal: \(100\,\%\) — der Rest ist wieder das Winkelbündel). Die gute Nachricht für den Angler: Das Fenster ist breit. \(P\) fällt um den Brewster-Winkel nur langsam ab, weil \(R_p\) in seiner Umgebung quadratisch klein bleibt — die Brille funktioniert nicht nur bei exakt \(53°\) aufs Wasser, sondern in einem weiten Winkelbereich darum herum gut. Deshalb taugt sie als Alltagsgegenstand und nicht nur als Laboraufbau.

Ü 13.4 (Übertragen). Miss den komplementären Brewster-Winkel der Gegenrichtung nach: Strahl von oben (Luft → Glas) unter \(56{,}31°\), beide Polarisationen (reflexionsgrad(56.31, pol, von_oben=True)). Sage vorher: Wie groß werden \(R_p\) und \(R_s\) ungefähr sein? (Tipp für \(R_s\): Die \(s\)-Reflexion ist in Hin- und Rückrichtung gleich stark — die Fresnel-Formel wechselt beim Tausch der Medien nur ihr Vorzeichen, und \(R = r^2\).)

Erwartung: \(R_p \approx 0\) (Brewster der Gegenrichtung) und \(R_s = R_s^{\text{Glas→Luft}}(33{,}7°) \approx 15\,\%\) — denn \(56{,}31°\) oben und \(33{,}69°\) unten sind über Snellius dasselbe Strahlenpaar, und beim Medientausch geht \(r_s \to -r_s\), also \(R_s\) unverändert.

# von oben: reflexionsgrad(), TH_BREWSTER
th_oben = np.degrees(np.arctan(N_GLAS))
rp = reflexionsgrad(th_oben, "p", von_oben=True)
rs = reflexionsgrad(th_oben, "s", von_oben=True)
print(f"von oben bei {th_oben:.2f}°:  R_p = {rp:.4f},  R_s = {rs:.4f}")
von oben bei 56.31°:  R_p = 0.0020,  R_s = 0.1418

Gemessen: \(R_p = 0{,}2\,\%\) (Bündel-Rest), \(R_s = 14\,\%\) — beide Vorhersagen treffen. Bemerkenswert daran: Von oben gibt es keinen Grenzwinkel (Kapitel 12, Einbahnstraße), aber sehr wohl einen Brewster-Winkel. Die beiden Phänomene sind unabhängig — Totalreflexion braucht das dichtere Ausgangsmedium, Brewster nur eine Grenzfläche und die richtige Schwingungsrichtung.

Das Kleingedruckte

Drei Ehrlichkeiten zum Schluss. Erstens: Auf Metallen funktioniert der Polfilter-Trick schlecht — ihre Reflexion entsteht nicht durch brave Dipole in einem Dielektrikum, sondern durch frei verschiebbare Leitungselektronen; es gibt nur ein flaches „Pseudo-Brewster”-Minimum, keine Null. Der Chrom-Glanz einer Stoßstange bleibt durch jede Anglerbrille sichtbar — ein schöner Feldtest, welche Sorte Spiegel man vor sich hat. Zweitens: Genau am Brewster-Winkel ist die durchgelassene p-Welle zwar verlustfrei, aber der Strahl versetzt sich beim Durchgang durch eine endliche dicke Platte seitlich — wer mit Brewster-Fenstern baut, richtet danach neu aus. Drittens: Unsere 2D-Welt zeigt s und p als getrennte Universen (\(E_z\)- und \(H_z\)-Gitter koppeln nicht). In 3D mischt eine schräg stehende Polarisation beide Anteile, und die Grenzfläche zerlegt sie — nichts daran ist neu, es ist Vektorzerlegung plus die zwei Kurven dieses Kapitels.