FDTD kod

G

gladiator

Guest
Witam, szukam FDTD kod 2D lub 3D, które można porównać różne absorbujące condiditons granicy pomóc proszę dzięki
 
Prosty 1-D kod FDTD w matlab z ABC znajduje się poniżej. 1-D FDTD kod KE% = 200; KE% jest on liczbę komórek do wykorzystania ex = zer (1, KE), hy = zer (1, KE); ex_low_m1 = 0; ex_low_m2 = 0; ex_high_m1 = 0; ex_high_m2 = 0; kc = KE / 2;% Gaussa impulsu t0 = 40; spread = 12, n = input ("T =?'); dla T = 1:% n Główne FDTD Loop% pola Ex dla k = 2: KE ex (k) = ex (k) + 0,5 * (hy (k-1)-hy (k)); end% Gaussa impulsu w połowie impulsu = exp (-0.5 * ((t0-T) ^ 2 / rozprzestrzeniania ^ 2)); ex (kc) impuls =;% Absorbing ex warunki brzegowe (1) = ex_low_m2; ex_low_m2 = ex_low_m1; ex_low_m1 = ex (2), ex (KE) = ex_high_m2; ex_high_m2 = ex_high_m1; ex_high_m1 = ex ( KE-1); pola Hy% dla k = 1: KE-1 hy (k) = hy (k) + 0,5 * (ex (k)-ex (k +1)); end end end% z FDTD Loop działki (ex)
 
Ładny kawałek .... Czy możesz nauczyć mnie trochę? Mam małe pytanie i nie jestem verey familier z FDTD. 1. Możemy zastąpić impulsu Gaussa? W jaki sposób? 2. Czy możemy MIX FDTD z innej metody? dzięki::: idea::?: [quote = peter-gr] prosty 1-D FDTD kod w matlab z ABC znajduje się poniżej. 1-D FDTD kod KE% = 200; KE% jest on liczbę komórek do wykorzystania ex = zer (1, KE), hy = zer (1, KE); ex_low_m1 = 0; ex_low_m2 = 0; ex_high_m1 = 0; ex_high_m2 = 0; kc = KE / 2;% Gaussa impulsu t0 = 40; spread = 12, n = input ("T =?'); dla T = 1:% n Główne FDTD Loop% pola Ex dla k = 2: KE ex (k) = ex (k) + 0,5 * (hy (k-1)-hy (k)); end% Gaussa impulsu w połowie impulsu = exp (-0.5 * ((t0-T) ^ 2 / rozprzestrzeniania ^ 2)); ex (kc) impuls =;% Absorbing ex warunki brzegowe (1) = ex_low_m2; ex_low_m2 = ex_low_m1; ex_low_m1 = ex (2), ex (KE) = ex_high_m2; ex_high_m2 = ex_high_m1; ex_high_m1 = ex ( KE-1); pola Hy% dla k = 1: KE-1 hy (k) = hy (k) + 0,5 * (ex (k)-ex (k +1)); end end end% z FDTD Loop działki (ex) [/quote]
 
1. Myślę, że można użyć dowolnej formie fali. Jak to zrobić to zależy od używanego oprogramowania. Przykładem może być dostarczanie pliku dane określające amplitudę pusle w serii kroków czasowych. Teraz dokładności wyniku i czas konwergencji mogą być naruszone przez falę formularza. Jeżeli źródło prowadzi do 10000 kroków czasowych przed osiągnięciem "praktyczne" zero, należy dokładnie sprawdzić, czy wyjście ma stablized dużo wcześniej (np. 5000). Jeżeli symulacja jest zakończona za wcześnie, masz błąd. Można by też pomyśleć o numerycznej dyspersji ... 2. Oczywiście można mieszać FDTD z innej metody. Niektóre kodeksy handlowe (np. WASP-net) to robi. Z teoretycznego punktu widzenia, metody te są wykorzystywane do rozwiązywania pewnych równań różniczkowych, a może Appy zasadniczo równoważne do rozkładu domeny problem w subdomenach i stosują różne metody w każdym z nich.
 
Oczywiście można użyć impulsu inne niż gaussian.For przykład, można użyć sinusoidalnego. Pobierz następujący plik, który będzie prawdopodobnie pomóc. powodzenia. peter-gr.
 
Jest bardzo łatwo przełączać, aby przełączyć się sinusoidalnie source.Just zastąpić impulsu parametru z następującym: impuls = sin (2 * pi * freq_in * dt * T); freq_in parametr określa częstotliwość fali.
 
Może znajdziesz 2d i 3d kod w książce Taflove. Computational Elektrodynamika: Finite-Difference Time-Domain Metoda Allen Taflove, Susan C. Hagness (Hardcover - czerwiec 2000), można znaleźć inny Symulacje elektromagnetyczne książki Korzystanie z metody FDTD Dennis M. Sullivan (Autor) (Hardcover)
 
Potrzebuję 3D kod FDTD realizacji punktowego źródła w wolnej przestrzeni z siatki Mur granice absorpcji. Czy może mi pomóc?
 
Książka Dennis Sullivan podaje programy, które chcesz 3D FDTD symulacji.
 
w kodzie matlab źródło wyżej, kiedy prosi o wejście "T" co to robić? pomoc jest mile widziana.
 
może ktoś wyjaśnić absorbujące warunek brzegowy? Wciąż jestem nieco zagubiony na algorytmie. dzięki.
 
Absorbing warunki brzegowe są niezbędne do utrzymania wychodzących H i pola E z odbiciu z powrotem do przestrzeni problemu. Normalnie, przy obliczaniu pola E, wiemy, że wokół wartości H, jest to podstawowe założenie w FDTD method.At krawędzi przestrzeni problemu nie będzie miał wartość na jedną stronę. Załóżmy, że szukamy warunek brzegowy w end.If fali idzie w kierunku warunek brzegowy w wolnej przestrzeni, to porusza się c, prędkość light.So w jednym czasie kroku algorytmu FDTD, podróżuje: odległość = c * dt = c * (dx/2c) = dx / 2 Powyższe równanie wyjaśnia, że ma dwa kroki dla fali na przebycie jednego cell.So wspólnego podejścia rozsądek podpowiada, jak wspólny warunek brzegowy będzie Ex ( n) (0) = Ex (n-2) (1) Jest relativeley łatwe do wdrożenia this.Store wartości Ex (1) na dwa kroki, a następnie umieścić go w Ex (0).
 

Welcome to EDABoard.com

Sponsor

Back
Top