matlab coderen voor adi fdtd

R

ramani

Guest
kan iemand plz uploaden matlab coderen voor adi fdtd-(2d
en 3d)

 
Deze kunnen nuttig zijn, dit is 2D

----------------------
functie FDTD2_2 = fdtd2_2 (ER1, er2, mr1, MR2, O1, O2, ET1, ET2, ET3, Et4, Et5, Ht1, Ht2)
% FDTD2_2 Implementeert FDTD algoritme voor een domein van voor Hy (k) = 0 op de
% recht grens-Part2-Question2
% Vestigt de grafieken van Ex in tijden van ET1, ET2, ET3, Et4, Et5 en Hy in tijden van
% Ht1, Ht2 waar de tijd is een integer
% Als u niet wilt dat een grafiek op een bepaalde tijd, net toewijzen nul voor dat
% tijd (Et5 te worden toegewezen en moet de grootste tijd)
% ER1: diëlektrische constante van eerste medium
% er2: diëlektrische constante van de tweede medium
% Mr1: Relatieve diëlectrische konstante van eerste medium
% MR2: Relatieve diëlectrische konstante van tweede medium
% o1: Conductiviteit van het eerste medium
% O2: Conductiviteit tweede medium

% Initialiseert
e1 = ER1 * 10 ^ -9/36/pi;
e2 = er2 * 10 ^ -9/36/pi;
M1 = mr1 * 4 * pi * 10 ^ -7;
M2 = MR2 * 4 * pi * 10 ^ -7;
v1 = 1 / (sqrt (M1 * e1));
v2 = 1 / (sqrt (M2 * e2));
K = 500;
K_D = 250;
z = (0: K);
Ex = nullen (1, K 1);
Hy = nullen (1, K 1);
dz = 0,015;
dt = 2,5 * 10 ^ -11;
T = 1 * 10 ^ -9;
N = 2500;
h1 = cijfer;
h2 = cijfer;

% Computations
voor i = 1: Et5,

Ex1 = Ex (1);
Ex2 = Ex (2);
ExK = Ex (K);
ExK_plus1 = Ex (K 1);
voor j = 1: K,
als j <= K_D
Hy (j) = Hy (j) - (dt/M1/dz) * (Ex (j 1)-Ex (j));
elseif j == K
Hy (j) = 0;
anders
Hy (j) = Hy (j) - (dt/M2/dz) * (Ex (j 1)-Ex (j));
eindigen

eindigen
voor j = 1: K 1,

if ((i-1) * dt) <= (6 * T)
Ex (1) = exp (-((( i-1) * dt-3 * T) ^ 2) / (T ^ 2));
anders
Ex (1) = 0;

eindigen
als j ~ = 1 & j <= K_D
Ex (j) = (1-dt * o1/2/e1) / (1 dt * o1/2/e1) * Ex (j) - (dt/dz/e1) / (1 dt * o1 / 2 / e1) * (Hy (j)-Hy (j-1));
elseif j == K_D 1
Ex (j) = (1-dt * O1 / 2 / ((E1 E2) / 2)) / (1 dt * O1 / 2 / ((E1 E2) / 2)) * Ex (j) -- (dt / dz / ((E1 E2) / 2)) / (1 dt * o1 / 2 / ((E1 E2) / 2)) * (Hy (j)-Hy (j-1));
elseif j> K_D 1 & j <= K
Ex (j) = (1-dt * o2/2/e2) / (1 dt * o2/2/e2) * Ex (j) - (dt/dz/e2) / (1 dt * o2 / 2 / e2) * (Hy (j)-Hy (j-1));
eindigen
eindigen

% Vestigt de grafieken
if i == ET1 | i == ET2 | i == ET3 | i == Et4
cijfer (h1);
eindigen
if i == ET1
plot (z, Ex, 'k');
houden;
eindigen
if i == ET2
plot (z, Ex, 'b');
houden;
eindigen
if i == ET3
plot (z, Ex, 'g');
houden;
eindigen
if i == Et4
plot (z, Ex, 'r');
houden;
eindigen
if i == Ht1 | i == Ht2
cijfer (H2);
eindigen
if i == Ht1
plot (z, Hy, 'c');
houden;
eindigen
if i == Ht2
plot (z, Hy, "m");
xlabel ( 'z (0.015m)');
ylabel ( "Hy (A / m) ');
titel ( 'FDTD2_2 Implementeert FDTD algoritme voor een domein van voor Hy (k) = 0 op het juiste grens-Part2-Question2');
legende ( "Hy op t1 ',' Hy op t2");
net;
houden;
eindigen
eindigen
cijfer (h1);
plot (z, Ex, 'y');
xlabel ( 'z (0.015m)');
ylabel ( 'Ex (V / m)');
titel ( 'FDTD2_2 Implementeert FDTD algoritme voor een domein van voor Hy (k) = 0 op het juiste grens-Part2-Question2');
legende ( "Ex op t1 ',' Ex op t2 ',' Ex op t3 ',' Ex op t4 ',' Ex op T5 ');
net;
terug

 
dit is matlab coderen voor fdtd in 1D.is het niet adi fdtd.
kan een upload matlab coderen voor adi fdtd.Ik ben moeilijk te vinden in de uitvoering.Het duurt langer tijd voor de simulatie.Ook vind ik zo moeilijk bij de uitvoering van PML conditie.
atleast kan iemand alsjeblieft mij leiden.

 

Welcome to EDABoard.com

Sponsor

Back
Top