Symulowanie fal elektromagnetycznych na komputerze Paweł Redman
Równania Maxwella Prawa Gaussa Prawo Faradaya Prawo Ampére’a ∇⋅ 𝐷 = ρ 𝑠𝑤 ∇× 𝐸 =− ∂ 𝐵 ∂𝑡 ∇⋅ 𝐻 =0 Związki konstytutywne Prawo Ampére’a (rozszerzone przez Maxwella) ∇× 𝐻 = 𝑗 𝑠𝑤 + ∂ 𝐷 ∂𝑡 𝐷 =ϵ 𝐸 𝐵 =μ 𝐻
Równania Maxwella dla fal elektromagnetycznych Prawa Gaussa Prawo Faradaya ∇⋅ 𝐷 = ρ 𝑠𝑤 ∇× 𝐸 =− ∂ 𝐵 ∂𝑡 ∇⋅ 𝐻 =0 Związki konstytutywne Prawo Ampére’a (rozszerzone przez Maxwella) ∇× 𝐻 = 𝑗 𝑠𝑤 + ∂ 𝐷 ∂𝑡 𝐷 =ϵ 𝐸 𝐵 =μ 𝐻
Równania Maxwella dla fal elektromagnetycznych Prawa Gaussa Prawo Faradaya ∇⋅ 𝐷 =0 ∇× 𝐸 =− ∂ 𝐵 ∂𝑡 ∇⋅ 𝐻 =0 Związki konstytutywne Prawo Ampére’a (rozszerzone przez Maxwella) ∇× 𝐻 = ∂ 𝐷 ∂𝑡 𝐷 =ϵ 𝐸 𝐵 =μ 𝐻
Równania Maxwella dla fal elektromagnetycznych Prawo Faradaya ∇× 𝐸 =−μ ∂ 𝐻 ∂𝑡 Prawa Gaussa ∇⋅ 𝐸 =0 Prawo Ampére’a (rozszerzone przez Maxwella) ∇⋅ 𝐻 =0 ∇× 𝐻 =ϵ ∂ 𝐸 ∂𝑡
Dyskretyzacja Równania Maxwella są ciągłe, a komputer jest maszyną cyfrową. Jak więc rozwiązać równania Maxwella na komputerze?
Metoda FDTD (ang. finite-difference time-domain method) Równania Maxwella przybliżane metodą różnic skończonych. Przestrzeń i czas zdyskretyzowane według siatki Yee. W każdej kolejnej iteracji liczone są pola elektryczne i magnetyczne dla kolejnych odstępów czasowych. Jako że odbywa się w dziedzinie czasu, jest idealna do wizualizacji fal elektromagnetycznych.
Siatka Yee Cechy z • Składowe E⃗ i H⃗ są w ułożone naprzemiennie w siatce. • Istnieją zatem w różnych punktach w przestrzeni. • E⃗ i H⃗ są też ułożone naprzemiennie w czasie (nie przedstawione na rysunku) • E⃗ istnieje dla: t = 0, t = Δt, t = 2Δt, ... • H⃗ istnieje dla: t = ½Δt, t = 1½Δt, t = 2½Δt, ... • Stworzona przez Kane S. Yee na potrzeby metody FDTD, opublikowana w roku 1966. Ez Hx Hy Hz Ey y Ex x
Siatka Yee Zalety z Ey • Stworzona specjalne z myślą i,j,k+1 Zalety • Stworzona specjalne z myślą o liczeniu rotacji. • Świetnie radzi sobie z warunkami brzegowymi. • Zapewnia, że prawa Gaussa będą zawsze spełnione i nie trzeba się o nie martwić. Ez i,j,k Ez i,j+1,k Hx i,j,k y Ey i,j,k ∇⋅ 𝐸 =0 ∇⋅ 𝐻 =0
Równania Maxwella na siatce Yee ∇× 𝐸 =−μ ∂ 𝐻 ∂𝑡 ∇× 𝐻 =ϵ ∂ 𝐸 ∂𝑡 ∂ 𝐸 𝑧 ∂𝑦 − ∂ 𝐸 𝑦 ∂𝑧 =−μ ∂ 𝐻 𝑥 ∂𝑡 ∂ 𝐻 𝑧 ∂𝑦 − ∂ 𝐻 𝑦 ∂𝑧 =ϵ ∂ 𝐸 𝑥 ∂𝑡 ∂ 𝐸 𝑥 ∂𝑧 − ∂ 𝐸 𝑧 ∂𝑥 =−μ ∂ 𝐻 𝑦 ∂𝑡 ∂ 𝐻 𝑥 ∂𝑧 − ∂ 𝐻 𝑧 ∂𝑥 =ϵ ∂ 𝐸 𝑦 ∂𝑡 ∂ 𝐸 𝑦 ∂𝑥 − ∂ 𝐸 𝑥 ∂𝑦 =−μ ∂ 𝐻 𝑧 ∂𝑡 ∂ 𝐻 𝑦 ∂𝑥 − ∂ 𝐻 𝑥 ∂𝑦 =ϵ ∂ 𝐸 𝑧 ∂𝑡
Równania Maxwella na siatce Yee z Ey i,j,k+1 Ez i,j,k Ez i,j+1,k Hx i,j,k ∂ 𝐸 𝑧 ∂𝑦 − ∂ 𝐸 𝑦 ∂𝑧 =−μ ∂ 𝐻 𝑥 ∂𝑡 y Ey i,j,k ∂ 𝐸 𝑧 ∂𝑦 ≈ 𝐸 𝑧 𝑖,𝑗+1,𝑘 − 𝐸 𝑧 𝑖,𝑗,𝑘 Δ𝑦 ∂ 𝐸 𝑦 ∂𝑧 ≈ 𝐸 𝑦 𝑖,𝑗,𝑘+1 − 𝐸 𝑦 𝑖,𝑗,𝑘 Δ𝑧
Równania Maxwella na siatce Yee ∂ 𝐻 𝑥 ∂𝑡 ≈ 𝐻 𝑥 𝑡+ Δ𝑡 2 ,𝑖,𝑗,𝑘 − 𝐻 𝑥 𝑡− Δ𝑡 2 ,𝑖,𝑗,𝑘 Δ𝑡 𝐸 𝑧 𝑡,𝑖,𝑗+1,𝑘 − 𝐸 𝑧 𝑡,𝑖,𝑗,𝑘 Δ𝑦 − 𝐸 𝑦 𝑡,𝑖,𝑗,𝑘+1 − 𝐸 𝑦 𝑡,𝑖,𝑗,𝑘 Δ𝑧 =−μ 𝐻 𝑥 𝑡+ Δ𝑡 2 ,𝑖,𝑗,𝑘 − 𝐻 𝑥 𝑡− Δ𝑡 2 ,𝑖,𝑗,𝑘 Δ𝑡 𝐻 𝑥 𝑡+ Δ𝑡 2 ,𝑖,𝑗,𝑘 = 𝐻 𝑥 𝑡− Δ𝑡 2 ,𝑖,𝑗,𝑘 − Δ𝑡 μ 𝐸 𝑧 𝑡,𝑖,𝑗+1,𝑘 − 𝐸 𝑧 𝑡,𝑖,𝑗,𝑘 Δ𝑦 − 𝐸 𝑦 𝑡,𝑖,𝑗,𝑘+1 − 𝐸 𝑦 𝑡,𝑖,𝑗,𝑘 Δ𝑧 𝐻 𝑥 𝑡+ Δ𝑡 2 ,𝑖,𝑗,𝑘 = 𝐻 𝑥 𝑡− Δ𝑡 2 ,𝑖,𝑗,𝑘 − Δ𝑡 μ 𝑅 𝐸𝑥 𝑡,𝑖,𝑗,𝑘
Równania Maxwella na siatce Yee 𝐻 𝑥 𝑡+ Δ𝑡 2 ,𝑖,𝑗,𝑘 = 𝐻 𝑥 𝑡− Δ𝑡 2 ,𝑖,𝑗,𝑘 − Δ𝑡 μ 𝑅 𝐸𝑥 𝑡,𝑖,𝑗,𝑘 𝐻 𝑦 𝑡+ Δ𝑡 2 ,𝑖,𝑗,𝑘 = 𝐻 𝑦 𝑡− Δ𝑡 2 ,𝑖,𝑗,𝑘 − Δ𝑡 μ 𝑅 𝐸𝑦 𝑡,𝑖,𝑗,𝑘 𝐻 𝑧 𝑡+ Δ𝑡 2 ,𝑖,𝑗,𝑘 = 𝐻 𝑧 𝑡− Δ𝑡 2 ,𝑖,𝑗,𝑘 − Δ𝑡 μ 𝑅 𝐸𝑧 𝑡,𝑖,𝑗,𝑘 𝐸 𝑥 𝑡+Δ𝑡,𝑖,𝑗,𝑘 = 𝐸 𝑥 𝑡,𝑖,𝑗,𝑘 + Δ𝑡 ϵ 𝑅 𝐻𝑥 𝑡+ Δ𝑡 2, 𝑖,𝑗,𝑘 𝐸 𝑦 𝑡+Δ𝑡,𝑖,𝑗,𝑘 = 𝐸 𝑦 𝑡,𝑖,𝑗,𝑘 + Δ𝑡 ϵ 𝑅 𝐻𝑦 𝑡+ Δ𝑡 2, 𝑖,𝑗,𝑘 𝐸 𝑧 𝑡+Δ𝑡,𝑖,𝑗,𝑘 = 𝐸 𝑧 𝑡,𝑖,𝑗,𝑘 + Δ𝑡 ϵ 𝑅 𝐻𝑧 𝑡+ Δ𝑡 2, 𝑖,𝑗,𝑘
Warunek brzegowy Przestrzeń w FDTD jest skończona. Co robić, kiedy w obliczeniach potrzebne są wartości pól spoza przestrzeni? ? 𝑅 𝐸𝑥 𝑡,𝑖,𝑗,𝑘 = 𝐸 𝑧 𝑡,𝑖,𝑗+1,𝑘 − 𝐸 𝑧 𝑡,𝑖,𝑗,𝑘 Δ𝑦 − 𝐸 𝑦 𝑡,𝑖,𝑗,𝑘+1 − 𝐸 𝑦 𝑡,𝑖,𝑗,𝑘 Δ𝑧
Oblicz E⃗t+Δt z H⃗t+½Δt Algorytm FDTD Dostatecznie wiele kroków? Koniec symulacji Rozpoczęcie symulacji TAK NIE Oblicz H⃗t+½Δt z E⃗t Ustawienie parametrów Oblicz źródła H Obliczenie stałych Oblicz E⃗t+Δt z H⃗t+½Δt Wyzerowanie E⃗ i H⃗ Oblicz źródła E Wizualizacja (nieobowiązkowo) Zwiększ t o Δt
Implementacja metody FDTD Zaimplementowałem przedstawioną tu metodę FDTD jako program komputerowy. Napisany w C, niecałe 3000 linii kodu (z czego ok. 500 to obliczenia fizyczne). Obliczenia fizyczne są wykonywane równolegle do reszty programu. Uruchomiony zostanie w czasie rzeczywistym na procesorze Intel® Core™ 2 Duo T7100, (2 x 1.80 GHz).
Symulacja nr 1 Symulacja fali płaskiej w próżni. Pola elektryczne i magnetyczne są pokazane przy pomocy kolorów. Składowym RGB odpowiadają składowe XYZ odpowiednich pól. Na przykład: kolor szary to wektor zerowy kolor czerwony to [1, 0, 0] kolor zielony to [0, 1, 0] kolor ciemnofioletowy o [0, -1, 0] kolor czarny to [-1, -1, -1] itp. Pole magnetyczne jest odpowiednio rozjaśnione, aby skorygować impedancję próźni.
Symulacja nr 2 Symulacja fali płaskiej, przechodzącej przez otwór. Celem jest pokazanie zasady Huygensa.
Symulacja nr 3 Symulacja fali płaskiej, na drodze której stoi przeszkoda z dwoma blisko siebie położonymi szczelinami. Celem jest pokazanie interferencji.
Symulacja nr 4 Refrakcja Symulacja fali płaskiej, na drodze której stoi kula z wody. Celem jest pokazanie zjawiska refrakcji i odbicia fali spowodowanego niedopasowaną impedancją. ϵ 𝑟 =1,77 μ 𝑟 =1 𝑛= ϵ 𝑟 μ 𝑟 ≈1,33 𝑍= 𝑍 0 μ 𝑟 ϵ 𝑟 ≈283Ω 𝑍 0 ≈377Ω
„Symulowanie fal elektromagnetycznych na komputerze” Dziękuję za uwagę. „Symulowanie fal elektromagnetycznych na komputerze” Paweł Redman