İçeriğe geç

Çözücü nasıl çalışır

PhotonLab, Kane Yee’nin 1966’da önerdiği ve bugün hâlâ hesaplamalı elektromanyetiğin temel aracı olan zaman uzayında sonlu farklar yöntemini kullanır. Sonuç hakkında hiçbir varsayım yapmaz: ışın, paraksiyel yaklaşım ya da mod yoktur. Maxwell’in iki rotasyonel denklemini alır, türevleri ızgara üzerindeki farklarla değiştirir ve zamanda ilerler.

Simülasyon iki boyutludur: ekrandan dışarı bakan eksen boyunca hiçbir şey değişmez. Bu durumda Maxwell denklemleri birbirinden bağımsız iki kümeye ayrılır.

  • TM (varsayılan): elektrik alanı Ez ekrandan dışarı bakar, manyetik alan (Hx, Hy) düzlemdedir.
  • TE: manyetik alan Hz ekrandan dışarı bakar, elektrik alanı (Ex, Ey) düzlemdedir.

Görünümdeki renk, düzleme dik bileşendir: TM’de Ez, TE’de Hz. Hangisine ihtiyaç duyduğunuz Kutuplanma ve metaller sayfasında anlatılıyor.

Yee hücresi: E hücre köşelerinde, iki H bileşeni kenarların ortasında

Alan bileşenleri aynı noktalarda saklanmaz. TM’de Ez ızgara düğümlerinde, Hy yatay komşuların tam ortasında, Hx dikey komşuların tam ortasında yer alır. Böylece her uzaysal türev, gerektiği noktanın iki yanındaki komşuların farkına dönüşür ve yöntem ek bir maliyet olmadan ikinci mertebeden doğru olur.

Δx = c = 1 alındığında TM güncelleme denklemleri şöyledir:

Hx(i, j+½) -= S · [Ez(i, j+1) − Ez(i, j)]
Hy(i+½, j) += S · [Ez(i+1, j) − Ez(i, j)]
Ez(i, j) = ca · Ez(i, j) + cb · [Hy(i+½, j) − Hy(i−½, j) − Hx(i, j+½) + Hx(i, j−½)]

ca ve cb o hücredeki malzemeden gelir: cb, S/ε’dur; ca ise malzeme kayıplı değilse 1’dir.

TE denklemleri, alanların adları değiştirildiğinde (Ez yerine Hz, Hx ve Hy yerine −Ex ve −Ey) ve malzeme katsayıları dik alandan düzlemdeki alanlara taşındığında tıpatıp aynıdır. PhotonLab bu simetriyi kullanır: iki kutuplanma da aynı iki döngüden geçer.

E tam zaman adımlarında, H aradaki yarım adımlarda güncellenir

Elektrik ve manyetik alanlar zamanda da kaydırılmıştır. Her adım önce H’yi mevcut E’den, sonra E’yi yeni H’den günceller. Bu birdirbir şeması açıktır (çözülecek denklem sistemi yoktur) ve kayıp yokken enerjiyi tam olarak korur. Kapalı bir kutunun enerjisini binlerce adım boyunca koruması bu yüzdendir.

Açık şemalar ancak bilgi bir adımda bir hücreden fazla ilerlemezse kararlıdır. İki boyutta koşul şudur:

S = c·Δt / Δx ≤ 1/√2 ≈ 0,707

PhotonLab, rahat bir pay bırakan ve sayısal dağılmayı da düşük tutan S = 0,5 değerini kullanır. Yani ışık her adımda yarım hücre ilerler.

512 × 512 hücrede bir adım yaklaşık 260 000 hücreye dokunur; her birinde birkaç çarpma-toplama yapılır. Döngüler derleyicinin WebAssembly SIMD ile vektörleştirebileceği biçimde yazılmıştır. Yeni bir dizüstünde tarayıcıda bir adım yaklaşık 0,6 ms sürer. Normal hızda çözücü bu ızgarada, arayüzden ayrı bir worker iş parçacığında saniyede 640 adım atar.