• Tidak ada hasil yang ditemukan

Kajian Teoritis Gejala Indeks Bias Negatif Material

N/A
N/A
Protected

Academic year: 2017

Membagikan "Kajian Teoritis Gejala Indeks Bias Negatif Material"

Copied!
41
0
0

Teks penuh

(1)

i

APENDIX A

PERSAMAAN MAXWELL

Persamaan Maxwell dalam bentuk differensial.

Hukum Gauss

⃗⃗ ⃗

(A.1)

Hukum Gauss untuk magnetisme

⃗⃗ ⃗

(A.2)

Hukum Induksi Faraday

⃗⃗ ⃗

(A.3)

Hukum Ampere

⃗⃗ ⃗

(A.4)

Persamaan Maxwell dalam bentuk integral

Hukum Gauss

∮ ⃗⃗ ∫

(A.5)

Hukum Gauss untuk magnetisme

∮ ⃗

(A.6)

Hukum Induksi Faraday

∮ ⃗ ∫ ⃗

(A.7)

Hukum Ampere

∮ ⃗⃗ ∫ ⃗⃗ ∫

(A.8)

Karena (teorema Gauss dan Stokes)

∮ ∮ ⃗⃗

∮ ∮ ⃗⃗

Untuk medan listrik pada persamaan (A.5) dan (A.7) dalam keadaan konservatif

sehingga dapat ditulis :

⃗⃗ ⃗⃗

(A.9)

⃗⃗ ⃗

(A.10)

Selanjutnya hubungan vektornya

⃗⃗ ⃗

(A.11)

dan

(2)

⃗ ∫ ⃗

(A.13)

⃗⃗

= kerapatan fluks listrik (C/m

2

)

= rapat volume muatan (C/m

3

)

= Medan Listrik (V/m)

= tegangan listrik (V)

= permitivitas dielektrik (F/m)

Hubungkan persamaan (A.9), (A.11) dan (A.12) akan didapat persamaan Poisson :

⃗⃗ ⃗⃗ ⃗

(A.14a)

Jika

konstan,

(A.14b)

Jika

maka menjadi persamaan Laplace :

⃗⃗ ⃗⃗ ⃗

(A.15a)

(A.15b)

Karena (hukum Biot-Savart)

∮ ⃗⃗

∮ ⃗

⃗⃗

= fluks magnet (A/m)

= Medan magnet (T)

Maka persamaan (A.6) dan(A.8) menjadi

⃗⃗ ⃗⃗

(A.16)

Dan

⃗⃗ ⃗

(A.17)

Dengan hubungan vector

⃗ ⃗⃗

(A.18)

(A.19)

= permeabilitas magnetic (H/m)

(3)

i

Medan magnet pada potensial A

⃗ ⃗⃗

(A.20)

Dengan menggunakan vektor identitas

⃗⃗ ( ⃗⃗ ) ⃗⃗ ( ⃗⃗ )

Jika (A.17) dan (A.18) dihubungkan dalam kondisi tanpa arus (ruang hampa) maka

⃗⃗

sehingga didapat persamaan Poisson :

(A.21)

Ketika

maka

(4)

APENDIX B

PERSAMAAN GELOMBANG

Gelombang Elektromagnetik merambat secara transversal. Dengan medan listrik dan

medan magnet yang merambat saling tegak lurus. Misalkan gelombang elektromagnet

merambat ke sumbu-x dan arah gerak medan listrik ke sumbu-y sementara medan

magnetik ke sumbu-z sehingga diperoleh

⃗ ⃗

dan

. Maka persamaan Maxwell akan berubah menjadi :

⃗⃗ ⃗

(B.1)

⃗⃗ ⃗

(B.2)

⃗⃗ ⃗

(B.3)

(B.4)

⃗⃗ ⃗

(B.5)

⃗⃗

(B.6)

Persamaan (B.4) dan persamaan (B.6) bisa disimpulkan medan listrik dan medan

magnet hanya berpengaruh pada sumbu x dan gayut waktu.

Jika digabungkan maka menjadi :

(5)

i

Atau

,

=0

Maka diperoleh nilai

Dengan v = c = kecepatan cahaya = 3 x 10

8

m

Dengan mengubah daerah waktu menjadi frekuensi maka

Dengan

Maka persawaan Maxwell dapat dituliskan

⃗ ⃗⃗

⃗⃗ ⃗

Dengan vektor perambatan elektromagnetik sebagai berikut :

⃗ ⃗⃗

⃗ ⃗⃗

⃗ ⃗⃗

⃗⃗ ⃗

⃗⃗ ⃗

⃗⃗ ⃗

Maka dapat disimpulkan bahwa

Dengan n adalah indeks bias.

(6)

APENDIX C

METODE FDTD (FINITE DIFFERENCE TIME DOMAIN)

Metode ini menggunakan turunan fungsi yang dihubungkan dengan beda hingga

seperti berikut

(C.1)

Dengan dihubungkan ke dalam medan listrik dan medan magnet, akan dihasilkan

persamaan FDTDnya misalkan untuk waktu penjalaran medan E dan medan H sebagai

berikut

untuk

untuk

⃗⃗

dan letak pada sumbu z misalkan

untuk

untuk

⃗⃗

Telah diketahui persamaan Maxwell

⃗⃗

(C.2)

⃗⃗

(C.3)

Dengan notasi

dan

⃗⃗

⃗⃗ (

)

Maka didapat :

⃗⃗

⃗⃗

⃗⃗

⃗⃗

(7)

i

Dengan menghubungkan ke dalam persamaan (C.2) dan (C.3) persamaan diatas

menjadi

⃗⃗

(

) ⃗⃗

(

)

⃗⃗

⃗⃗

(C.4)

⃗⃗ ⃗

(C.5)

Dengan

dan

dalam model Drude diberikan dalam persamaan

Substitusi model Drude dalam persamaan (C.5) akan didapat

⃗⃗

⃗⃗

⃗⃗

( )

⃗⃗

( )

⃗⃗ ⃗⃗

(C.6)

nilai fungsi frekuensi dikonversikan menjadi fungsi waktu dengan hubungan

dan

. Dengan perkalian

merupakan waktu rata-rata. Maka :

⃗⃗

⃗⃗

Dengan cara yang sama sebelumnya akan di dapat :

( ⃗⃗

⃗⃗

⃗⃗

)

( ⃗⃗

⃗⃗

) ( ⃗

)

( ⃗

) ( ⃗

)

(C.7)

Nilai variabel tambahan dalam persamaan yang baru merupakan skalar yaitu

(8)

dan

⃗⃗

( ⃗

) ( ⃗

) ( ⃗⃗

⃗⃗

)

( ⃗⃗

⃗⃗

)

( ⃗⃗

)

Maka persamaan FDTD gelombang yang merambat dalam arah z sebagai berikut

dan

⃗⃗

⃗⃗

⃗⃗

⃗⃗

Persamaan diatas memberikan algoritma FDTD untuk

dan

⃗⃗

.

Untuk indeks bias FDTD dihubungkan dengan transformasi Fourier sebagai pengubah

ke FDTD :

Untuk medium yang homogen nilai

= 1 sehingga indeks bias hanya bergantung

dan

bergantung kepada medan listrik.

̃ ∫ ⃗

̃ ∫ ⃗

Sehingga didapat bahwa hasil transformasi Fouriernya adalah

̃

Indeks bias merupakan perbandingan kecepatan antara dua medium maka persamaan

diatas dapat diubah menjadi :

̃

(9)

i

|

|

Untuk simulasi dalam jubah silinder maka diperlukan persamaan dalam koordinat

silinder sebagai berikut:

(

)

Dari transformasi kartesius :

(C.13)

(C.14)

(C.15)

Sehingga

⃗⃗

⃗⃗

⃗⃗

⃗⃗

⃗⃗

⃗⃗

⃗⃗
(10)

APENDIX D

PROGRAM MATLAB

clc

clear all

% Adimas Agung

% 110801001

% Simulasi Parameter.

SIZE = 4*1024; % Angka beda langkah

SlabLeft = round(SIZE/3); % Letak sebelah kiri lempengan

SlabRight = round(2*SIZE/3); % Letak sebelah kanan lempengan

MaxTime = 4*SIZE; % Jumlah langkah waktu

PulseWidth = round(SIZE/8); % Lebar Pulsa Gauss

td = PulseWidth; % tempo pulsa.

source = 10; % Letak Sumber

SaveFields = 1; % 0. No, 1. Ya menyimpan.

SnapshotInterval = 32; % jumlah waktu untuk memfoto (menangkap layar).

% Memilih Sumber Gelombang.

% 1. Gaussian 2. Sine wave 3. Ricker wavelet

SourceChoice = 2;

% Konstanta yang digunakan.

c = 3e8;

pi = 3.141592654; e0 = (1e-9)/(36*pi); u0 = (1e-7)*4*pi;

dt = 0.5e-11; dz = 3e-3; Sc = c * dt/dz

l = PulseWidth*dz; f = c/l

fmax = 1/(2*dt) w = 2*pi*f;

(11)

i

% Parameter dalam Ricker wavelet.

if SourceChoice == 3

fp = f; % puncak ke puncak frekuensi

dr = PulseWidth*dt*2; % Waktu tunggu

end

% Inisialisasi.

Ex = zeros(SIZE, 3); % komponen x untuk medan E

Dx = zeros(SIZE, 3); % komponen x untuk D

Hy = zeros(SIZE, 3); % komponen y untuk medan H

By = zeros(SIZE, 3); % komponen y medan B

% Medan datang dan transmisi.

Exi = zeros(MaxTime, 1); Ext = zeros(MaxTime, 1); Extt = zeros(MaxTime, 1);

x1 = SlabLeft+1; % letak observasi (posisi pengamatan).

% Penghitungan index Bias.

Z1 = SlabLeft + 50; z1 = Z1*dz;

Z2 = SlabLeft + 60; z2 = Z2*dz;

Exz1 = zeros(MaxTime, 1); Exz2 = zeros(MaxTime, 1);

einf = ones(SIZE,1);

einf(SlabLeft:SlabRight) = 1; % einf(Drude) atau er di lempengan.

uinf = ones(SIZE,1);

uinf(SlabLeft:SlabRight) = 1; % uinf(Drude) atau ur di lempengan.

wpesq = zeros(SIZE,1);

wpesq(SlabLeft:SlabRight) = 2*w^2; % nilai DNG(Drude) untuk wpe kuadrat pada lempengan.

wpmsq = zeros(SIZE,1);

wpmsq(SlabLeft:SlabRight) = 2*w^2; % nilai DNG(Drude) untuk wpm kuadrat pada lempengan.

ge = zeros(SIZE,1);

ge(SlabLeft:SlabRight) = w/32; % frekuensi listrik pada lempengan.

(12)

gm(SlabLeft:SlabRight) = w/32; % frekuensi magnet pada lempengan.

a0 = (4*dt^2)./(e0*(4*einf+dt^2*wpesq+2*dt*einf.*ge)); a = (1/dt^2)*a0;

b = (1/(2*dt))*ge.*a0; c = (e0/dt^2)*einf.*a0; d = (-1*e0/4).*wpesq.*a0;

e = (1/(2*dt))*e0*einf.*ge.*a0;

am0 = (4*dt^2)./(u0*(4*uinf+dt^2*wpmsq+2*dt*uinf.*gm)); am = (1/dt^2)*am0;

bm = (1/(2*dt))*gm.*am0; cm = (u0/dt^2)*uinf.*am0; dm = (-1*u0/4).*wpmsq.*am0;

em = (1/(2*dt))*u0*uinf.*gm.*am0;

if SaveFields == 1

ExSnapshots = zeros(SIZE, MaxTime/SnapshotInterval); % Data yang akan diplot (bentuk kurva).

frame = 1;

end

n1 = 1; n2 = 2;

linecount = 0;

% waktu keluar dari pengulangan.

tic

% uji pengulangan untuk medan datang pada ruang bebas.

for q = 0:MaxTime

% Penghitungan Hy menggunakan turunan persamaan Hy. Beda waktu q.

Hy(1:SIZE-1,n2) = Hy(1:SIZE-1,n1) + ( ( Ex(1:SIZE-1,n1) - Ex(2:SIZE,n1) ) * dt/(u0*dz) );

% ABC untuk ukuran H.

Hy(SIZE,n2) = Hy(SIZE-1,n1) + (Sc-1)/(Sc+1)*(Hy(SIZE-1,n2) - Hy(SIZE,n1) );

% Penghitungan Ex menggunakan turunan persamaan Ex. Beda waktu

(13)

i

Ex(2:SIZE,n2) = Ex(2:SIZE, n1) + ( dt/(e0*dz)*(Hy(1:SIZE-1, n2) - Hy(2:SIZE, n2)) );

% ABC untuk E di 1.

Ex(1,n2) = Ex(2,n1) + (Sc-1)/(Sc+1)*(Ex(2,n2) - Ex(2,n1));

% Sumber.

if SourceChoice == 1

Ex(source,n2) = Ex(source,n2) + exp( -1*((q-td)/(PulseWidth/4))^2 ) * Sc;

elseif SourceChoice == 2

Ex(source,n2) = Ex(source,n2) + sin(2*pi*f*(q)*dt) * Sc; elseif SourceChoice == 3

Ex(source,n2) = Ex(source,n2) + (1-2*(pi*fp*(q*dt-dr))^2)*exp(-1*(pi*fp*(q*dt-dr))^2) * Sc;

end

Exi(q+1) = Ex(x1,n2); % Medan datang di kiri lempengan.

temp = n1; n1 = n2; n2 = temp;

end

% Pengulangan inisialisasi medan untuk simulasi.

Ex = zeros(SIZE, 3); % komponen x untuk medan E

Hy = zeros(SIZE, 3); % komponen y untuk medan H % Simulasi dimulai.

fprintf ( 1, 'Simulation started... \n');

for q = 0:MaxTime

% Indikator.

fprintf(1, repmat('\b',1,linecount));

linecount = fprintf(1, '%g %%', (q*100)/MaxTime );

(14)

% Penghitungan Hy menggunakan turunan persamaan Hy. Beda waktu q.

By(1:SIZE-1,n2) = By(1:SIZE-1,n1) + ( ( Ex(1:SIZE-1,n1) - Ex(2:SIZE,n1) ) * dt/(dz) );

Hy(:,n2) = am.*(By(:,n2)-2*By(:,n1)+By(:,3))+bm.*(By(:,n2)-

By(:,3))+cm.*(2*Hy(:,n1)-Hy(:,3))+dm.*(2*Hy(:,n1)+Hy(:,3))+em.*(Hy(:,3));

% ABC untuk ukuran.

Hy(SIZE,n2) = Hy(SIZE-1,n1) + (Sc-1)/(Sc+1)*(Hy(SIZE-1,n2) - Hy(SIZE,n1) );

By(SIZE,n2) = u0*Hy(SIZE,n2);

% Penghitungan Ex menggunakan persamaan diferensial Ex. Beda

waktu q+1/2.

Dx(2:SIZE,n2) = Dx(2:SIZE, n1) + ( dt/(dz)*(Hy(1:SIZE-1, n2) - Hy(2:SIZE, n2)) );

Ex(:,n2) = a.*(Dx(:,n2)-2*Dx(:,n1)+Dx(:,3))+b.*(Dx(:,n2)-

Dx(:,3))+c.*(2*Ex(:,n1)-Ex(:,3))+d.*(2*Ex(:,n1)+Ex(:,3))+e.*(Ex(:,3));

% ABC untuk E di 1.

Ex(1,n2) = Ex(2,n1) + (Sc-1)/(Sc+1)*(Ex(2,n2) - Ex(2,n1)); Dx(1,n2) = e0*Ex(1,n2);

% Sumber.

if SourceChoice == 1

Ex(source,n2) = Ex(source,n2) + exp( -1*((q-td)/(PulseWidth/4))^2 ) * Sc;

elseif SourceChoice == 2

Ex(source,n2) = Ex(source,n2) + sin(2*pi*f*(q)*dt) * Sc; elseif SourceChoice == 3

Ex(source,n2) = Ex(source,n2) + (1-2*(pi*fp*(q*dt-dr))^2)*exp(-1*(pi*fp*(q*dt-dr))^2) * Sc;

end

Dx(source,n2) = e0*Ex(source,n2);

(15)

i

frame=frame+1; end

Ext(q+1) = Ex(x1,n2);

Extt(q+1) = Ex(SlabRight+10,n2);

% Medan untuk Penghitungan index bias.

Exz1(q+1) = Ex(Z1, n2); Exz2(q+1) = Ex(Z2, n2);

temp = n1; n1 = n2; n2 = temp;

end

fprintf ( 1, '\nSimulation complete! \n'); toc

% Pengolahan.

Fs = 1/dt; % pengambilan sampel frekuensi

T = dt; % waktu sampel

L = length(Exi); % Panjang sinyal

t = (0:L-1)*T; % Vektor waktu

fspan = 100; % Titik alur dalam daerah frekuensi

figure(1) subplot(211)

plot(Fs*t, Exi, 'LineWidth', 2.0, 'Color', 'b') set(gca, 'FontSize', 10, 'FontWeight', 'b')

title('Medan Listrik Datang', 'FontSize', 12, 'FontWeight', 'b') xlabel('waktu', 'FontSize', 11, 'FontWeight', 'b')

grid on figure(2) subplot(211)

plot(Fs*t, Ext, 'LineWidth', 2.0, 'Color', 'b') set(gca, 'FontSize', 10, 'FontWeight', 'b')

title('Transmisi Medan Listrik', 'FontSize', 12, 'FontWeight', 'b') xlabel('waktu', 'FontSize', 11, 'FontWeight', 'b')

(16)

plot(Fs*t, Extt, 'LineWidth', 2.0, 'Color', 'b') set(gca, 'FontSize', 10, 'FontWeight', 'b')

title('Transmisi Medan Listrik Melalui Lempeng', 'FontSize', 12, 'FontWeight', 'b')

xlabel('waktu', 'FontSize', 11, 'FontWeight', 'b') grid on

NFFT = 2^nextpow2(L); % untuk tenaga kedua dari Exi % Medan datang dan transmisi.

EXI = fft(Exi,NFFT)/L; EXT = fft(Ext,NFFT)/L; EXTT = fft(Extt,NFFT)/L;

% Penghitungan Index Bias.

EXZ1 = fft(Exz1,NFFT)/L; EXZ2 = fft(Exz2,NFFT)/L;

f = Fs/2*linspace(0,1,NFFT/2+1);

% Membuat alur spektrum amplitudo satu bagian.

figure(1) subplot(212)

EXIp = 2*abs(EXI(1:NFFT/2+1));

plot(f(1:fspan), EXIp(1:fspan), 'LineWidth', 2.0, 'Color', 'r') set(gca, 'FontSize', 10, 'FontWeight', 'b')

title('Spektrum Amplitudo Exi(t)', 'FontSize', 12, 'FontWeight', 'b') xlabel('Frekuensi (Hz)', 'FontSize', 11, 'FontWeight', 'b')

ylabel('|EXI(f)|', 'FontSize', 11, 'FontWeight', 'b') grid on

figure(2) subplot(212)

EXTp = 2*abs(EXT(1:NFFT/2+1));

plot(f(1:fspan), EXTp(1:fspan), 'LineWidth', 2.0, 'Color', 'r') set(gca, 'FontSize', 10, 'FontWeight', 'b')

title('Spektrum Amplitudo Ext(t)', 'FontSize', 12, 'FontWeight', 'b') xlabel('Frekuensi (Hz)', 'FontSize', 11, 'FontWeight', 'b')

ylabel('|EXT(f)|', 'FontSize', 11, 'FontWeight', 'b') grid on

figure(3) subplot(212)

EXTTp = 2*abs(EXTT(1:NFFT/2+1));

(17)

i

set(gca, 'FontSize', 10, 'FontWeight', 'b')

title('Spektrum Amplitudo Extt(t)', 'FontSize', 12, 'FontWeight', 'b')

xlabel('Frekuensi(Hz)', 'FontSize', 11, 'FontWeight', 'b') ylabel('|EXT(f)|', 'FontSize', 11, 'FontWeight', 'b') grid on

% Koefisien Transmisi.

figure(4) subplot(211)

TAU = abs(EXT(1:NFFT/2+1)./EXI(1:NFFT/2+1));

plot(f(1:fspan), TAU(1:fspan), 'LineWidth', 2.0, 'Color', 'b') set(gca, 'FontSize', 10, 'FontWeight', 'b')

title('Koefisien Transmisi', 'FontSize', 12, 'FontWeight', 'b') xlabel('Frekuensi (Hz)', 'FontSize', 11, 'FontWeight', 'b') ylabel('|EXT(f)/EXI(f)|', 'FontSize', 11, 'FontWeight', 'b') axis([-1 1 -2 2])

axis 'auto x' grid on

subplot(212)

plot(f(1:fspan), 1-TAU(1:fspan), 'LineWidth', 2.0, 'Color', 'b') set(gca, 'FontSize', 10, 'FontWeight', 'b')

title('Koefisien Refleksi', 'FontSize', 12, 'FontWeight', 'b') xlabel('Frekuensi (Hz)', 'FontSize', 11, 'FontWeight', 'b') ylabel('1-|EXT(f)/EXI(f)|', 'FontSize', 11, 'FontWeight', 'b') axis([-1 1 -2 2])

axis 'auto x' grid on

% Penghitungan Indeks Bias.

nFDTD = (1/(1i*k0*(z1-z2))).*log(EXZ2(1:NFFT/2+1)./EXZ1(1:NFFT/2+1)); figure(5)

subplot(211)

plot(f(1:fspan), real(nFDTD(1:fspan)), 'LineWidth', 2.0, 'Color', 'b');

set(gca, 'FontSize', 10, 'FontWeight', 'b')

title('Indeks Bias re(n)', 'FontSize', 12, 'FontWeight', 'b') xlabel('Frekuensi (Hz)', 'FontSize', 11)

ylabel('re(n)', 'FontSize', 11) grid on

(18)

plot(f(1:fspan), imag(nFDTD(1:fspan)), 'LineWidth', 2.0, 'Color', 'r');

set(gca, 'FontSize', 10, 'FontWeight', 'b')

title('Indeks Bias im(n)', 'FontSize', 12, 'FontWeight', 'b') xlabel('Frekuensi (Hz)', 'FontSize', 11, 'FontWeight', 'b') ylabel('im(n)', 'FontSize', 11, 'FontWeight', 'b')

grid on

if SaveFields == 1

% Simulasi Animasi.

for i=1:frame-1 figure (6)

% Batas penyebaran.

hold off

plot([SlabLeft SlabLeft], [-1 1], 'Color', 'r'); hold on

plot([SlabRight SlabRight], [-1 1], 'Color', 'r'); plot(ExSnapshots(:,i), 'LineWidth', 2.0, 'Color', 'b'); set(gca, 'FontSize', 10, 'FontWeight', 'b')

axis([0 SIZE -1 1])

title('Simulasi Fungsi Waktu', 'FontSize', 12, 'FontWeight', 'b')

xlabel('Beda Langkah(k)', 'FontSize', 11, 'FontWeight', 'b') ylabel('Medan Listrik (Ex)', 'FontSize', 11, 'FontWeight', 'b')

grid on end

(19)

i

APENDIX E

PROGRAM INVISIBLE CLOAK

clear all; close all;

% Nilai Konstanta

%*******************************************************************

c_0 = 3.0e8; % Kecepatan cahaya

mu_0 = 4.0*pi*1.0e-7; % Permeabilitas

eps_0 = 8.8542e-12; % Permitivitas

losstangent = 0.0;

ie = 401; % # Besar sel dalam arah x

je = 400; % # Besar sel dalam arah y

ib = ie + 1; jb = je + 1;

npmls = 20; ip = ie - npmls;

jp = je - npmls;

xc = round(ie/2); yc = round(je/2);

is = 25; % Letak Sumber Gelombang

js = 25;

it = 30; % Daerah Medan atas atau bawah

jt = 30; % Daerah medan kiri atau kanan

freq = 6.0e14; omega = 2*pi*freq; k_0 = omega/c_0;

dx = c_0/freq/400;

dt = dx/c_0/sqrt(2); % Beda waktu

R1 = c_0/freq/8/dx % dimensi Jubah

R2 = 1.43*R1;

nmax = 400000; % Jumlah beda waktu

aimp = sqrt(mu_0/eps_0); % impedansi gelombang

threshold = 0.1; % FDTD error

step = ceil(nmax/10);

% freq = 2.0e9; % omega = 2*pi*freq;

(20)

N = round(tau/dt); M = round(c_0/freq/dx); source = zeros(1,nmax);

clear j; ST = 300; st = 20e3;

for n=1:nmax if n < ST*N

x = 1.0 - (ST*N-n)/(ST*N);

g = 10.0*x^3 - 15.0*x^4 + 6.0*x^5;

% sumber(n) = g * sin(2*pi*freq*n*dt);

source(n) = g * exp(j*2*pi*freq*n*dt); else

% sumber(n) = sin(2*pi*freq*n*dt);

source(n) = exp(j*2*pi*freq*n*dt); end

% sumber (n) = exp(-(((n-delay)*dt)/tau)^2) .* exp(j*2*pi*freq*n*dt);

end

%******************************************************************* % Inisialisasi matriks untuk komponen medan

%*******************************************************************

Dx = zeros(ie,jb); Dx_h1 = zeros(ie,jb); Dx_h2 = zeros(ie,jb); Dxsynch = zeros(ie,jb); Dx_h1synch = zeros(ie,jb); Dx_h2synch = zeros(ie,jb);

caDx = ones(ie,jb); cbDx = ones(ie,jb).*(dt/eps_0/dx);

Ex = zeros(ie,jb); Ex_h1 = zeros(ie,jb); Ex_h2 = zeros(ie,jb); Ex_h1synch = zeros(ie,jb); Ex_h2synch = zeros(ie,jb);

Dy = zeros(ib,je); Dy_h1 = zeros(ib,je); Dy_h2 = zeros(ib,je); Dysynch = zeros(ib,je); Dy_h1synch = zeros(ib,je); Dy_h2synch = zeros(ib,je);

caDy = ones(ib,je); cbDy = ones(ib,je).*(dt/eps_0/dx);

Ey = zeros(ib,je); Ey_h1 = zeros(ib,je); Ey_h2 = zeros(ib,je); Ey_h1synch = zeros(ib,je); Ey_h2synch = zeros(ib,je);

Bz = zeros(ie,je); Bz_h1 = zeros(ie,je); Bz_h2 = zeros(ie,je); Bzx = zeros(ie,je); Bzy = zeros(ie,je); Hz_p = zeros(ie,je); daBzx = ones(ie,je); dbBzx = ones(ie,je).*(dt/mu_0/dx); daBzy = ones(ie,je); dbBzy = ones(ie,je).*(dt/mu_0/dx); daBz = ones(ie,je); dbBz = ones(ie,je).*(dt/mu_0/dx);

Hz = zeros(ie,je); Hz_h1 = zeros(ie,je); Hz_h2 = zeros(ie,je);

% HzsourceTF = zeros(length(it:ie-it),nmax); % HztransTF = zeros(length(it:ie-it),nmax); % HzsourceSF = zeros(length(it:ie-it),nmax); % HztransSF = zeros(length(it:ie-it),nmax);

% Coefficients for cloak

a0x = ones(ie,jb); b0x = ones(ie,jb); b0xy = zeros(ie,jb);

a1x = zeros(ie,jb); b1x = zeros(ie,jb); a1xy = zeros(ie,jb); b1xy = zeros(ie,jb);

a2x = zeros(ie,jb); b2x = zeros(ie,jb); a2xy = zeros(ie,jb); b2xy = zeros(ie,jb);

a0y = ones(ib,je); b0y = ones(ib,je); b0yx = zeros(ib,je);

(21)

i

a2y = zeros(ib,je); b2y = zeros(ib,je); a2yx = zeros(ib,je); b2yx = zeros(ib,je);

a0z = ones(ie,je); b0z = ones(ie,je); a1z = zeros(ie,je); b1z = zeros(ie,je); a2z = zeros(ie,je); b2z = zeros(ie,je);

% Medan Datang

Ex_inc = zeros(1,jb); Hzx_inc = zeros(1,jb); Ey_inc = zeros(1,ib); Hzy_inc = zeros(1,ib);

caEx_inc = ones(1,jb); cbEx_inc = ones(1,jb).*(dt/eps_0/dx); caEy_inc = ones(1,ib); cbEy_inc = ones(1,ib).*(dt/eps_0/dx); daHzx_inc = ones(1,je); dbHzx_inc = ones(1,je).*(dt/mu_0/dx); daHzy_inc = ones(1,ie); dbHzy_inc = ones(1,ie).*(dt/mu_0/dx);

%******************************************************************* % Jubah

%*******************************************************************

for i = 1 : ie for j = 1 : je

r = sqrt((i - xc + 0.5).^2 + (j - yc).^2); if (r<=R2) && (r>=R1);

erx = ((r-R1) / (r)); ethetax = ((r) / (r-R1));

sigma_px =

ethetax*losstangent*((tan((omega*dt)/2))/(dt/2));

gamma_px = (2*losstangent*erx*sin((omega*dt)/2))/((1-erx)*dt*cos((omega*dt)/2));

omega_px = sqrt((2*sin((omega*dt)/2)*(-2*(erx-1)*sin((omega*dt)/2)+...

losstangent*erx*gamma_px*dt*cos((omega*dt)/2)))/((dt^2)*((cos((omega* dt)/2))^2)));

sinx = (j - yc)/r;

cosx = (i - xc + 0.5)/r;

ax = ((cosx.^2) + (ethetax.*(sinx.^2))) ./ (dt^2); bx = ((gamma_px.*(cosx.^2)) + ((sigma_px +

(ethetax*gamma_px)).*(sinx.^2))) ./ (2*dt); cx = (((cosx.^2).*((omega_px)^2)) + (sigma_px*gamma_px.*(sinx.^2))) ./ (4);

wx = ((1-ethetax).*sinx.*cosx) ./ (dt^2);

fx = ((gamma_px-sigma_px-(ethetax*gamma_px)).*sinx.*cosx) ./ (2*dt);

vx = ((((omega_px)^2)-(sigma_px*gamma_px)).*sinx.*cosx) ./ (4);

kx = 1 / (dt^2);

(22)

tx = ((sinx.^2) + (ethetax.*(cosx.^2))) ./ (dt^2); qx = ((gamma_px.*(sinx.^2)) + ((sigma_px +

(ethetax*gamma_px)).*(cosx.^2))) ./ (2*dt); px = (((sinx.^2).*((omega_px)^2)) + (sigma_px*gamma_px.*(cosx.^2))) ./ (4);

Ax1 = ax+bx+cx; Ax2 = (2.*ax)-(2.*cx); Ax3 = ax-bx+cx; Bx1 = wx+fx+vx; Bx2 = (2.*wx)-(2.*vx); Bx3 = wx-fx+vx; Cx1 = kx+lx; Cx2 = (2.*kx); Cx3 = kx-lx;

Dx1 = tx+qx+px; Dx2 = (2.*tx)-(2.*px); Dx3 = tx-qx+px;

a0x(i, j) = Ax1 - (((Bx1).^2) ./ Dx1); a1x(i, j) = Ax2 - ((Bx1.*Bx2) ./ Dx1); a2x(i, j) = ((Bx1.*Bx3) ./ Dx1) - (Ax3);

a1xy(i, j) = Bx2 - ((Bx1.*Dx2) ./ Dx1); a2xy(i, j) = ((Bx1.*Dx3) ./ Dx1) - (Bx3);

b0x(i, j) = Cx1; b1x(i, j) = -Cx2; b2x(i, j) = Cx3;

b0xy(i, j) = -(Bx1.*Cx1) ./ Dx1; b1xy(i, j) = (Bx1.*Cx2) ./ Dx1; b2xy(i, j) = -(Bx1.*Cx3) ./ Dx1;

elseif (r<R1)

cbDx(i, j) = (dt/(3*eps_0)/dx);

end

r = sqrt((i - xc).^2 + (j - yc + 0.5).^2);

if (r<=R2) && (r>=R1)

ery = ((r-R1) / (r)); ethetay = ((r) / (r-R1));

sigma_py =

ethetay*losstangent*((tan((omega*dt)/2))/(dt/2));

gamma_py = (2*losstangent*ery*sin((omega*dt)/2))/((1-ery)*dt*cos((omega*dt)/2));

(23)

i

losstangent*ery*gamma_py*dt*cos((omega*dt)/2)))/((dt^2)*((cos((omega* dt)/2))^2)));

siny = (j - yc + 0.5)/r; cosy = (i - xc)/r;

ay = ((cosy.^2) + (ethetay*(siny.^2))) ./ (dt^2); by = ((gamma_py*(cosy.^2)) + ((sigma_py +

(ethetay*gamma_py)).*(siny.^2))) ./ (2*dt); cy = (((cosy.^2).*((omega_py)^2)) + (sigma_py*gamma_py.*(siny.^2))) ./ (4);

wy = ((1-ethetay).*siny.*cosy) ./ (dt^2);

fy = ((gamma_py-sigma_py-(ethetay*gamma_py)).*siny.*cosy) ./ (2*dt);

vy = ((((omega_py)^2)-(sigma_py*gamma_py)).*siny.*cosy) ./ (4);

ky = 1 / (dt^2);

ly = gamma_py / (2*dt);

ty = ((siny.^2) + (ethetay*(cosy.^2))) ./ (dt^2); qy = ((gamma_py*(siny.^2)) + ((sigma_py +

(ethetay*gamma_py)).*(cosy.^2))) ./ (2*dt); py = (((siny.^2).*((omega_py)^2)) + (sigma_py*gamma_py.*(cosy.^2))) ./ (4);

Ay1 = ay+by+cy; Ay2 = (2.*ay)-(2.*cy); Ay3 = ay-by+cy; By1 = wy+fy+vy; By2 = (2.*wy)-(2.*vy); By3 = wy-fy+vy; Cy1 = ky+ly; Cy2 = (2*ky); Cy3 = ky-ly;

Dy1 = ty+qy+py; Dy2 = (2.*ty)-(2.*py); Dy3 = ty-qy+py;

a0y(i, j) = Dy1 - (((By1).^2) ./ Ay1); a1y(i, j) = Dy2 - ((By1.*By2) ./ Ay1); a2y(i, j) = ((By1.*By3) ./ Ay1) - (Dy3);

a1yx(i, j) = By2 - ((By1.*Ay2) ./ Ay1); a2yx(i, j) = ((By1.*Ay3) ./ Ay1) - (By3);

b0y(i, j) = Cy1; b1y(i, j) = -Cy2; b2y(i, j) = Cy3;

b0yx(i, j) = -(By1.*Cy1) ./ Ay1; b1yx(i, j) = (By1.*Cy2) ./ Ay1; b2yx(i, j) = -(By1.*Cy3) ./ Ay1;

elseif (r<R1)

cbDy(i, j) = (dt/(3*eps_0)/dx);

(24)

r = sqrt((i - xc).^2 + (j - yc).^2);

if (r<=R2) && (r>=R1)

muz = (((r-R1) / (r)) * (((R2) / (R2-R1))^2));

if (muz < 1)

gamma_pz = (2*losstangent*muz*sin((omega*dt)/2))/((1-muz)*dt*cos((omega*dt)/2));

omega_pz = sqrt((2*sin((omega*dt)/2)*(-2*(muz-1)*sin((omega*dt)/2)+...

losstangent*muz*gamma_pz*dt*cos((omega*dt)/2)))/((dt^2)*((cos((omega* dt)/2))^2)));

a0z(i, j) = 1/dt^2 + gamma_pz/(2*dt) + ((omega_pz^2))/4; a1z(i, j) = -2/dt^2 + ((omega_pz^2))/2;

a2z(i, j) = 1/dt^2 - gamma_pz/(2*dt) + ((omega_pz^2))/4; b0z(i, j) = 1/dt^2 + gamma_pz/(2*dt);

b1z(i, j) = -2/dt^2;

b2z(i, j) = 1/dt^2 - gamma_pz/(2*dt);

elseif (muz >= 1)

sigma_pz =

mu_0*muz*losstangent*((tan((omega*dt)/2))/(dt/2));

daBzx(i, j) = (1-((sigma_pz*dt)/(2*mu_0*muz))) / (1+((sigma_pz*dt)/(2*mu_0*muz)));

dbBzx(i, j) = (dt/(mu_0*muz)/dx) / (1+((sigma_pz*dt)/(2*mu_0*muz)));

daBzy(i, j) = (1-((sigma_pz*dt)/(2*mu_0*muz))) / (1+((sigma_pz*dt)/(2*mu_0*muz)));

dbBzy(i, j) = (dt/(mu_0*muz)/dx) / (1+((sigma_pz*dt)/(2*mu_0*muz)));

daBz(i, j) = (1-((sigma_pz*dt)/(2*mu_0*muz))) / (1+((sigma_pz*dt)/(2*mu_0*muz)));

dbBz(i, j) = (dt/(mu_0*muz)/dx) / (1+((sigma_pz*dt)/(2*mu_0*muz))); end end end end %******************************************************************* % Konstanta Berenger

%******************************************************************** ***

sigmax = -3.0*eps_0*c_0*log(1.0e-5)/(2.0*dx*npmls); rhomax = sigmax*(aimp^2);

(25)

i

sig(m) = sigmax*((m-0.5)/(npmls+0.5))^2; rho(m) = rhomax*(m/(npmls+0.5))^2;

end

%******************************************************************* % Koefisien Berenger

%*******************************************************************

for m=1:npmls

re = sig(m)*dt/eps_0; rm = rho(m)*dt/mu_0; ca(m) = exp(-re);

cb(m) = -(exp(-re)-1.0)/sig(m)/dx; da(m) = exp(-rm);

db(m) = -(exp(-rm)-1.0)/rho(m)/dx;

end

%******************************************************************* % Inisialisasi matriks Berenger

%******************************************************************* %<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Medan Hz >>>>>>>>>>>>>>>>>>>>>>>>>>>

for j=1:je % Depan & belakang

for i=1:npmls m = npmls+1-i; daBzx(i,j) = da(m); dbBzx(i,j) = db(m); end

for i=ip+1:ie m = i-ip;

daBzx(i,j) = da(m); dbBzx(i,j) = db(m); end

end

for i=1:ie % kiri dan kanan

for j=1:npmls m = npmls+1-j; daBzy(i,j) = da(m); dbBzy(i,j) = db(m); end

for j=jp+1:je m = j-jp;

daBzy(i,j) = da(m); dbBzy(i,j) = db(m); end

end

%<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Medan Ex>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

for i=1:ie % Kiri dan kanan

for j=2:npmls+1 m = npmls+2-j; caDx(i,j) = ca(m); cbDx(i,j) = cb(m); end

for j=jp+1:je m = j-jp;

caDx(i,j) = ca(m); cbDx(i,j) = cb(m); end

end

(26)

for j=1:je % Depan dan belakang

for i=2:npmls+1 m = npmls+2-i; caDy(i,j) = ca(m); cbDy(i,j) = cb(m); end

for i=ip+1:ie m = i-ip;

caDy(i,j) = ca(m); cbDy(i,j) = cb(m); end

end

% Algoritma 1D FDTD

%*******************************************************************

for j=1:npmls m = npmls+1-j;

daHzx_inc(j) = da(m); dbHzx_inc(j) = db(m);

end

for j=jp+1:je m = j-jp;

daHzx_inc(j) = da(m); dbHzx_inc(j) = db(m);

end

for j=2:npmls+1 m = npmls+2-j;

caEx_inc(j) = ca(m); cbEx_inc(j) = cb(m);

end

for j=jp+1:je m = j-jp;

caEx_inc(j) = ca(m); cbEx_inc(j) = cb(m);

end

%---for i=1:npmls m = npmls+1-i;

daHzy_inc(i) = da(m); dbHzy_inc(i) = db(m);

end

for i=ip+1:ie m = i-ip;

daHzy_inc(i) = da(m); dbHzy_inc(i) = db(m);

end

for i=2:npmls+1 m = npmls+2-i;

caEy_inc(i) = ca(m); cbEy_inc(i) = cb(m);

end

for i=ip+1:ie m = i-ip;

(27)

i

cbEy_inc(i) = cb(m);

end

%******************************************************************* % inisialisasi Movie

%*******************************************************************

figure('position',[200 200 700 520]); set(gcf,'color','white'); rect = get(gcf,'position'); rect(1:2) = [0 0];

Dx_h1 = Dx; Dy_h1 = Dy; Bz_h1 = Bz; Ex_h1 = Ex; Ey_h1 = Ey; Hz_h1 = Hz;

clear j;

%******************************************************************* % Pengulangan FDTD

%******************************************************************* % sy = 500; % Perambatan persamaan Gauss arah y

% sx = 500; % Perambatan persamaan Gauss arah x % n = 1; ne = 1; err = 0;

n = 1; ne = 1; err = 100;

% Dengan (n<nmax) && (err(ne)>threshold)

while (n<ST*N) || (n<nmax) && (err(ne)>threshold)

%******************************************************************* % Distribusi Medan

%*******************************************************************

Dx_h2 = Dx_h1; Dx_h1 = Dx; Dy_h2 = Dy_h1; Dy_h1 = Dy; Bz_h2 = Bz_h1; Bz_h1 = Bz;

Ex_h2 = Ex_h1; Ex_h1 = Ex; Ey_h2 = Ey_h1; Ey_h1 = Ey; Hz_h2 = Hz_h1; Hz_h1 = Hz;

%sumber(n) = exp(-(((n-delay)*dt)/(0.8*tau))^2) .*sin(2*pi*freq*n*dt);

%******************************************************************* % Ex_inc datang (1-D FDTD)

%*******************************************************************

Ex_inc(2:jb) = caEx_inc(2:jb).*Ex_inc(2:jb) + cbEx_inc(2:jb).*(Hzx_inc(1:je)-Hzx_inc(2:jb));

%******************************************************************* % Medan Dx dan Dy field

%*******************************************************************

Dx( : ,2:je) = caDx( : ,2:je).*Dx( : ,2:je) + cbDx( : ,2:je).*(Hz( : ,2:je) - Hz( : ,1:je-1));

(28)

%*******************************************************************

% Ruang penghubung D dan E

%*******************************************************************

Dysynch(1:ie, 2:je) = 0.25*(Dy(1:ie, 2:je)+Dy(2:ib, 2:je)+Dy(1:ie, 1:je-1)+Dy(2:ib, 1:je-1));

Dy_h1synch(1:ie, 2:je) = 0.25*(Dy_h1(1:ie, 2:je)+Dy_h1(2:ib, 2:je)+Dy_h1(1:ie, 1:je-1)+Dy_h1(2:ib, 1:je-1));

Dy_h2synch(1:ie, 2:je) = 0.25*(Dy_h2(1:ie, 2:je)+Dy_h2(2:ib, 2:je)+Dy_h2(1:ie, 1:je-1)+Dy_h2(2:ib, 1:je-1));

Ey_h1synch(1:ie, 2:je) = 0.25*(Ey_h1(1:ie, 2:je)+Ey_h1(2:ib, 2:je)+Ey_h1(1:ie, 1:je-1)+Ey_h1(2:ib, 1:je-1));

Ey_h2synch(1:ie, 2:je) = 0.25*(Ey_h2(1:ie, 2:je)+Ey_h2(2:ib, 2:je)+Ey_h2(1:ie, 1:je-1)+Ey_h2(2:ib, 1:je-1));

Dxsynch(2:ie, 2:je) = 0.25*(Dx(2:ie, 2:je)+Dx(2:ie, 3:jb)+Dx(1:ie-1, 2:je)+Dx(1:ie-1, 3:jb));

Dx_h1synch(2:ie, 2:je) = 0.25*(Dx_h1(2:ie, 2:je)+Dx_h1(2:ie, 3:jb)+Dx_h1(1:ie-1, 2:je)+Dx_h1(1:ie-1, 3:jb));

Dx_h2synch(2:ie, 2:je) = 0.25*(Dx_h2(2:ie, 2:je)+Dx_h2(2:ie, 3:jb)+Dx_h2(1:ie-1, 2:je)+Dx_h2(1:ie-1, 3:jb));

Ex_h1synch(2:ie, 2:je) = 0.25*(Ex_h1(2:ie, 2:je)+Ex_h1(2:ie, 3:jb)+Ex_h1(1:ie-1, 2:je)+Ex_h1(1:ie-1, 3:jb));

Ex_h2synch(2:ie, 2:je) = 0.25*(Ex_h2(2:ie, 2:je)+Ex_h2(2:ie, 3:jb)+Ex_h2(1:ie-1, 2:je)+Ex_h2(1:ie-1, 3:jb));

%******************************************************************* % Medan Ex dan Ey

%*******************************************************************

Ex(1:ie, 2:je) = ((b0x(1:ie,2:je).*Dx(1:ie,2:je) + b0xy(1:ie,2:je).*Dysynch(1:ie,2:je) + ...

b1x(1:ie,2:je).*Dx_h1(1:ie,2:je) + b1xy(1:ie,2:je).*Dy_h1synch(1:ie,2:je) + ...

a1x(1:ie,2:je).*Ex_h1(1:ie,2:je) + a1xy(1:ie,2:je).*Ey_h1synch(1:ie,2:je) + ...

b2x(1:ie,2:je).*Dx_h2(1:ie,2:je) + b2xy(1:ie,2:je).*Dy_h2synch(1:ie,2:je) + ...

a2x(1:ie,2:je).*Ex_h2(1:ie,2:je) + a2xy(1:ie,2:je).*Ey_h2synch(1:ie,2:je)) ...

./ (a0x(1:ie,2:je)));

Ey(2:ie, 1:je) = ((b0y(2:ie, 1:je).*Dy(2:ie, 1:je) + b0yx(2:ie, 1:je).*Dxsynch(2:ie, 1:je) + ...

b1y(2:ie, 1:je).*Dy_h1(2:ie, 1:je) + b1yx(2:ie, 1:je).*Dx_h1synch(2:ie, 1:je) + ...

a1y(2:ie, 1:je).*Ey_h1(2:ie, 1:je) + a1yx(2:ie, 1:je).*Ex_h1synch(2:ie, 1:je) + ...

b2y(2:ie, 1:je).*Dy_h2(2:ie, 1:je) + b2yx(2:ie, 1:je).*Dx_h2synch(2:ie, 1:je) + ...

a2y(2:ie, 1:je).*Ey_h2(2:ie, 1:je) + a2yx(2:ie, 1:je).*Ex_h2synch(2:ie, 1:je)) ...

./ (a0y(2:ie, 1:je)));

(29)

i

%*******************************************************************

Ex(it+1:ie-it, jt+1) = Ex(it+1:ie-it, jt+1) + (dt/eps_0/dx).*Hzx_inc( jt+1);

%.*exp(-((it+1:ie-it)-ic).^2./(2*sy^2))'; % Left

Ex(it+1:ie-it,je-jt+1) = Ex(it+1:ie-it,je-jt+1) - (dt/eps_0/dx).*Hzx_inc(je-jt+1);

%.*exp(-((it+1:ie-it)-ic).^2./(2*sy^2))'; % Right

%******************************************************************* % Nilai Ey datang(1-D & 2-D)

%*******************************************************************

Ey( it+1,jt+1:je-jt) = Ey( it+1,jt+1:je-jt) - (dt/eps_0/dx).*Hzx_inc(jt+1:je-jt);

%.*exp(-(( it+1)-ic).^2./(2*sy^2))'; % Bottom

Ey(ie-it+1,jt+1:je-jt) = Ey(ie-it+1,jt+1:je-jt) + (dt/eps_0/dx).*Hzx_inc(jt+1:je-jt);

%.*exp(-((ie-it+1)-ic).^2./(2*sy^2))'; % Top

%******************************************************************* % Penghitungan Hzx_inc (1-D FDTD)

%*******************************************************************

Hzx_inc(1:je) = daHzx_inc(1:je).*Hzx_inc(1:je) + dbHzx_inc(1:je).*(Ex_inc(1:je)-Ex_inc(2:jb));

%******************************************************************* % ... Eksitasi Sumber Datang(1-D FDTD)...

%*******************************************************************

Hzx_inc(js) = Hzx_inc(js) + 1*source(n);

%******************************************************************* % medan Bzx dan Bzy (Bz)

%*******************************************************************

Bzx(1:ie,: ) = daBzx(1:ie,: ).*Bzx(1:ie,: ) + dbBzx(1:ie,: ).*(Ey(1:ie,: ) - Ey(2:ib, :));

Bzy( :, 1:je) = daBzy( :, 1:je).*Bzy( :, 1:je) + dbBzy( :, 1:je).*(Ex( :, 2:jb) - Ex( :, 1:je));

Bz = Bzx + Bzy;

%******************************************************************* % Medan Hz

%*******************************************************************

Hz = (b0z.*Bz + b1z.*Bz_h1 + b2z.*Bz_h2 - (a1z.*Hz_h1 + a2z.*Hz_h2)) ./ a0z;

%******************************************************************* % Nilai Hz datang (1-D & 2-D)

%*******************************************************************

Hz(it+1:ie-it, jt+1) = Hz(it+1:ie-it, jt+1) - (dt/mu_0/dx).*Ex_inc( jt+1); % Left

(30)

%HzsourceTF(1:length(it:ie-it),n)=Hz(it:ie-it,jt+1); %HztransTF(1:length(it:ie-it),n)=Hz(it:ie-it,je-jt-1); %HzsourceSF(1:length(it:ie-it),n)=Hz(it:ie-it,js); %HztransSF(1:length(it:ie-it),n)=Hz(it:ie-it,je-js); %******************************************************************* % Visualisasi Medan

%*******************************************************************

if mod(n,10)==0

timestep = num2str(n);

pcolor((1:je)./M,(1:ie)./M,real(Hz)); shading interp; axis image; colorbar; axis([1/M je/M 1/M ie/M]);

%pcolor((1:je)./M,(1:ie)./M,real(Hz)/max(max(real(Hz)))); shading interp; axis image; colorbar; axis([1/M je/M 1/M ie/M]);

line((R1*sin((0:360)*pi/180)+yc)./M,(R1*cos((0:360)*pi/180)+xc)./M,'c olor','k'); line((R2*sin((0:360)*pi/180)+yc)./M,(R2*cos((0:360)*pi/180)+xc)./M,'c olor','k');

%xlabel('y/\lambda'); ylabel('x/\lambda'); title(['amplitude of H_z']);

xlabel('y/\lambda'); ylabel('x/\lambda'); title(['H_z at timestep ', timestep]);

getframe(gcf,rect); end

%******************************************************************* % Penghitungan fungsi eror untuk konvergensi pulsa

%******************************************************************

if mod(n,N)==0 ne = n/N;

if (20*log10(sum(sum(abs(Hz(it:ie-it,jt:je-jt)))))) > (20*log10(sum(sum(abs(Hz_p(it:ie-it,jt:je-jt))))))

err(ne) = 0; else

err(ne) = (20*log10(sum(sum(abs(Hz(it:ie-it,jt:je-jt)))))) - (20*log10(sum(sum(abs(Hz_p(it:ie-it,jt:je-jt))))));

end

Hz_p = Hz; end

%******************************************************************* %Penghitungan fungsi eror untuk konvergensi pulsa

%*******************************************************************

if mod(n,N)==0 ne = n/N;

if max(max(abs(Hz_p(npmls+10:ip-10,npmls+10:jp-10))))==0 err(ne) = 100;

(31)

i

err(ne) = max(max(abs(abs(Hz(npmls+10:ip-10,npmls+10:jp-10))-abs(Hz_p(npmls+10:ip-10,npmls+10:jp-10))))) /

max(max(abs(Hz_p(npmls+10:ip-10,npmls+10:jp-10)))) * 100; end

Hz_p = Hz; end

%******************************************************************* % Menampilkan

%*******************************************************************

if mod(n,step)==0

%save results_2D.mat dx dt freq nmax ie je is js err N M Ex Ey Hz;

c = round(clock);

disp(['Current time step: ',int2str(n-mod(n,step)),', ',int2str(n/nmax*100),'% completed at

',num2str(c(4)),':',num2str(c(5)),':',num2str(c(6))]); end

n = n + 1;

end

%******************************************************************* % Menyimpan

%******************************************************************

(32)

APENDIX F

MENGUBAH PERSAMAAN-PERSAMAAN KE PROGRAM

Persamaan (4.40) :

Diubah dalam program menjadi :

a = 4/4*e0*einf + e0*wpesq*dt^2 + e0*einf*ge*2*dt* a = 4/e0*4*einf+e0*dt^2*wpesq+e0*2*dt*einf*ge

a = (1/dt^2)*(4*dt^2)/(e0*(4*einf+dt^2*wpesq+2*dt*einf*ge) a = (1/dt^2)*a0

(33)

i

b = (ge*2*dt)/(4*e0*einf+e0*wpesq*dt^2+e0*einf*ge*2*dt) b = (ge*2*dt)/(e0*4*einf+e0*dt^2*wpesq+e0*2*dt*einf*ge)

b = (1/(2*dt))*ge*(4*dt^2)/(e0*(4*einf+dt^2*wpesq+2*dt*einf*ge)) b = (1/(2*dt))*ge.*a0

c = 4*e0*einf/(4*e0*einf+e0*wpesq*dt^2+e0*einf*ge*2*dt)

c = (e0/dt^2)*einf*(4*dt^2)/e0*(4*einf+dt^2*wpesq+2*dt*einf*ge) c = (e0/dt^2)*einf.*a0;

d = (-e0*wpesq*dt^2)/(4*e0*einf+e0*wpesq*dt^2+e0*einf*ge*2*dt) d = (-1*e0/4)*wpesq*(4*dt^2)/e0*(4*einf+dt^2*wpesq+2*dt*einf*ge) d = (-1*e0/4)*wpesq*a0

e = e0*einf*ge2*dt/(4*e0*einf+e0*wpesq*dt^2+e0*einf*ge*2*dt) e = (1/(2*dt))*e0*einf*ge

*(4*dt^2)/e0*(4*einf+dt^2*wpesq+2*dt*einf*ge) e = (1/(2*dt))*e0*einf*ge*a0

Selanjutnya untuk medan magnet persamaanya

(34)

am = 4/4*u0*uinf + u0*wpesq*dt^2 + u0*uinf*gm*2*dt* am = 4/u0*4*uinf+u0*dt^2*wpesq+u0*2*dt*uinf*gm

am = (1/dt^2)*(4*dt^2)/(u0*(4*uinf+dt^2*wpesq+2*dt*uinf*gm) am = (1/dt^2)*am0

am0 = (4*dt^2)/(u0*(4*uinf+dt^2*wpesq+2*dt*uinf*gm))

bm = (gm*2*dt)/(4*u0*uinf+u0*wpesq*dt^2+u0*uinf*gm*2*dt) bm = (gm*2*dt)/(u0*4*uinf+u0*dt^2*wpesq+u0*2*dt*uinf*gm)

bm = (1/(2*dt))*gm*(4*dt^2)/(u0*(4*uinf+dt^2*wpesq+2*dt*uinf*gm)) bm = (1/(2*dt))*gm.*am0

cm = 4*u0*uinf/(4*u0*uinf+u0*wpesq*dt^2+u0*uinf*gm*2*dt)

cm = (u0/dt^2)*uinf*(4*dt^2)/u0*(4*uinf+dt^2*wpesq+2*dt*uinf*gm) cm = (u0/dt^2)*uinf.*am0

dm = (-u0*wpesq*dt^2)/(4*u0*uinf+u0*wpesq*dt^2+u0*uinf*gm*2*dt) dm = (-1*u0/4)*wpesq*(4*dt^2)/u0*(4*uinf+dt^2*wpesq+2*dt*uinf*gm) dm = (-1*u0/4)*wpesq*am0

em = u0*uinf*gm2*dt/(4*u0*uinf+u0*wpesq*dt^2+u0*uinf*gm*2*dt) em = (1/(2*dt))*u0*uinf*gm

(35)

i

persamaan (4.35) :

⃗⃗

[

] ⃗⃗

[

]

( ⃗

)

Hy(1:SIZE-1,n2) = Hy(1:SIZE-1,n1) + ( ( Ex(1:SIZE-1,n1)

- Ex(2:SIZE,n1) ) * dt/(u0*dz) )

persamaan (4.36) :

⃗⃗

[

] ⃗⃗

[

]

Ex(2:SIZE,n2) = Ex(2:SIZE, n1) + ( dt/(e0*dz)*(Hy(1:SIZE-1, n2) - Hy(2:SIZE, n2)) )

persamaan (4.39), (4.41),(4.42) (4.43) dan (4.44) :

( ⃗⃗

⃗⃗

⃗⃗

)

( ⃗⃗

⃗⃗

) ( ⃗

)

( ⃗

) ( ⃗

)

Ex(:,n2) = a.*(Dx(:,n2)-2*Dx(:,n1)+Dx(:,3))+b.*(Dx(:,n2)-

Dx(:,3))+c.*(2*Ex(:,n1)-Ex(:,3))+d.*(2*Ex(:,n1) +Ex(:,3)) +e.*(Ex(:,3))

⃗⃗

( ⃗

) ( ⃗

) ( ⃗⃗

⃗⃗

)

( ⃗⃗

⃗⃗

) ( ⃗⃗

)

Hy(:,n2) = am.*(By(:,n2)-2*By(:,n1)+By(:,3))+bm.*(By(:,n2)- By(:,3))+cm.*(2*Hy(:,n1)-Hy(:,3))+dm.*(2*Hy(:,n1) +Hy(:,3))+em.*(Hy(:,3))

By(1:SIZE-1,n2) = By(1:SIZE-1,n1) + ( ( Ex(1:SIZE-1,n1) –

Ex(2:SIZE,n1) ) * dt/(dz) )

⃗⃗

⃗⃗

⃗⃗

⃗⃗

(36)

Hy(2:SIZE, n2)) )

|

̃

̃

|

nFDTD = (1/(1i*k0*(z1-z2)))

.*log(EXZ2(1:NFFT/2+1)./EXZ1(1:NFFT/2+1))

erx = ((r-R1) / (r));

ethetax = ((r) / (r-R1));

[ ⃗⃗

⃗⃗

⃗⃗

]

[ ⃗⃗

⃗⃗

⃗⃗

⃗⃗

⃗⃗

⃗⃗

]

[

⃗⃗

⃗⃗

⃗⃗

]

[

⃗⃗

⃗⃗

⃗⃗

⃗⃗

⃗⃗

⃗⃗

]

(37)

i

Ax2 = (2.*ax)-(2.*cx)

Ax3 = ax-bx+cx

ax = ((cosx.^2) + (ethetax.*(sinx.^2))) ./ (dt^2);

bx = ((gamma_px.*(cosx.^2)) + ((sigma_px +(ethetax*gamma_px)) .*(sinx.^2))) ./ (2*dt);

cx = (((cosx.^2).*((omega_px)^2)) + (sigma_px*gamma_px .*(sinx.^2))) ./ (4);

( )

Bx1 = wx+fx+vx

( )

Bx2 = (2.*wx)-(2.*vx)

( )

Bx3 = wx-fx+vx;

wx = ((1-ethetax).*sinx.*cosx) ./ (dt^2)

fx = ((gamma_px-sigma_px-(ethetax*gamma_px)).*sinx.*cosx)./(2*dt) vx = (((omega_px)^2)-(sigma_px*gamma_px)).*sinx.*cosx) ./ (4)

Cx1 = kx+lx

Cx2 = (2.*kx)

(38)

kx = 1 / etheta0*(dt^2);

lx = gamma_px / etheta0* (2*dt);

Dx1 = tx+qx+px

Dx2 = (2.*tx)-(2.*px)

Dx3 = tx-qx+px

tx = ((sinx.^2) + (ethetax.*(cosx.^2))) ./ (dt^2)

qx = ((gamma_px.*(sinx.^2)) + ((sigma_px +(ethetax*gamma_px)) .*(cosx.^2)))./(2*dt)

px = (((sinx.^2).*((omega_px)^2)) + (sigma_px*gamma_px .*(cosx.^2))) ./(4)

a0x(i, j) = Ax1 - (((Bx1).^2) ./ Dx1); a1x(i, j) = Ax2 - ((Bx1.*Bx2) ./ Dx1); a2x(i, j) = ((Bx1.*Bx3) ./ Dx1) - (Ax3);

a1xy(i, j) = Bx2 - ((Bx1.*Dx2) ./ Dx1); a2xy(i, j) = ((Bx1.*Dx3) ./ Dx1) - (Bx3);

(39)

i

b0xy(i, j) = -(Bx1.*Cx1) ./ Dx1; b1xy(i, j) = (Bx1.*Cx2) ./ Dx1; b2xy(i, j) = -(Bx1.*Cx3) ./ Dx1;

untuk bagian y :

Ay1 = ay+by+cy

Ay2 = (2.*ay)-(2.*cy)

Ay3 = ay-by+cy

ay = ((cosy.^2) + (ethetay.*(siny.^2))) ./ (dt^2);

by = ((gamma_py.*(cosy.^2)) + ((sigma_py +(ethetay*gamma_py)) .*(siny.^2))) ./ (2*dt);

cy = (((cosy.^2).*((omega_py)^2)) + (sigma_py*gamma_py .*(siny.^2))) ./ (4);

( )

By1 = wy+fy+vy

( )

By2 = (2.*wy)-(2.*vy)

(40)

By3 = wy-fy+vy;

wy = ((1-ethetay).*siny.*cosy) ./ (dt^2)

fy = ((gamma_py-sigma_py-(ethetay*gamma_py)).*siny.*cosy)./(2*dt) vy = (((omega_py)^2)-(sigma_py*gamma_py)).*siny.*cosy) ./ (4)

Cy1 = ky+ly

Cy2 = (2.*ky)

Cy3 = ky-ly

ky = 1 / etheta0*(dt^2);

ly = gamma_py / etheta0* (2*dt);

Dy1 = ty+qy+py

Dy2 = (2.*ty)-(2.*py)

Dy3 = ty-qy+py

ty = ((siny.^2) + (ethetay.*(cosy.^2))) ./ (dt^2)

qy = ((gamma_py.*(siny.^2)) + ((sigma_py +(ethetay*gamma_py)) .*(cosy.^2)))./(2*dt)

py = (((siny.^2).*((omega_py)^2)) + (sigma_py*gamma_py .*(cosy.^2))) ./(4)

(41)

i

a1yx(i, j) = By2 - ((By1.*Dy2) ./ Dy1); a2yx(i, j) = ((By1.*Dy3) ./ Dy1) - (By3);

b0y(i, j) = Cy1; b1y(i, j) = -Cy2; b2y(i, j) = Cy3;

b0yx(i, j) = -(By1.*Cy1) ./ Dy1; b1yx(i, j) = (By1.*Cy2) ./ Dy1; b2yx(i, j) = -(By1.*Cy3) ./ Dy1;

Referensi

Dokumen terkait

Telah dilakukan percobaan korosi terhadap paduan logam AlMg-2 dan AlMgSi yang dipakai sebagai bahan struktur elemen bakar RSG-GAS di Serpong, dengan tujuan untuk mengetahui mekanisme

Pasca pandemi Covid-19 masuk ke Indonesia yang kemudian pertengahan Maret 2020 untuk menekan angka penderita Covid 19, pemerintah provinsi dan pemerintah daerah menghasilkan

Makalah ini diperuntukkan untuk semua kalangan masyarakat pada umumnya, mahasiswa teknik dan para pekerja perusahaan di bidang industri radiografi pada khususnya karena makalah ini

Penelitian ini bertujuan untuk mengetahui rendemen optimum dalam proses produksi oleoresin limbah destilasi kulit kayu manis pada berbagai variasi ukuran partikel, suhu

Dapat kita simpulkan bahwa pendistribusian zakat di el Zawa UIN Malang ini telah melaksanakan peraturan yang sesuai dengan syariat islam dan juga sesuai dengan UU No 23 Tahun 2011

Hasil penelitian ini sesuai dengan teori yang dikemukakan oleh Robbins dan Judge (2008), fakta menunjukkan bahwa organisasi yang mempunyai karyawan yang memiliki

Dari hasil penelitian yang dilakukan dengan melihat perlakuan komposisi media yang berbeda (K) dan Perlakuan Frekuensi pemberian pupuk organik cair (P) terhadap

[r]