cavidad

fdtd-electro1

import numpy as np
import math
import matplotlib.pyplot as plt

Nz  = 100
nn  = 1
L   = 1.0e-6
c   = 3e8

z    = np.zeros(Nz+1)
exa  = np.zeros(Nz+1)
hya  = np.zeros(Nz+1)
exn  = np.zeros(Nz+1)
hyn  = np.zeros(Nz+1)

kn  = (math.pi/L)*nn
wn  = c*(math.pi/L)*nn

zi  = 0
zf  = L
dz  = (zf-zi)/Nz
dt  = dz/(2*c)

it=0
t=it*dt

for iz in range(0,Nz+1):
  z[iz]  = zi+iz*dz
  
ex_00a=open("ex_00a.dat","w")
for iz in range(0,Nz+1):
  exa[iz] = math.sin(kn*z[iz])*math.cos(wn*t)
  ex_00a.write(str(z[iz]/L)+" "+str(exa[iz])+"\n")
ex_00a.close()
plt.plot(z,exa)
plt.savefig("ex0{}.png".format(it))
plt.close()

it=1
t=it*dt

hy_01a=open("hy_01a.dat","w")
for iz in range(0,Nz+1):
  hya[iz] = math.sin(kn*z[iz])*math.cos(wn*t)
  hy_01a.write(str(z[iz]/L)+" "+str(hya[iz])+"\n")
hy_01a.close()
plt.plot(z,hya)
plt.savefig("hy0{}.png".format(it))
plt.close()


it=2
t=it*dt

exn=exa
hyn=hya

ex_02n=open("ex_02n.dat","w")
for iz in range(0,Nz-2,2):
  exn[iz+2] = exn[iz+2]-0.5*(hyn[iz+3]-hyn[iz+1])
  ex_02n.write(str(iz+2)+" "+str(z[iz+2]/L)+" "+str(exn[iz+2])+"\n")
ex_02n.close()

ex_02a=open("ex_02a.dat","w")
for iz in range(0,Nz+1):
  exa[iz] = math.sin(kn*z[iz])*math.cos(wn*t)
  ex_02a.write(str(z[iz]/L)+" "+str(exa[iz])+"\n")
ex_02a.close()



import numpy as np
import math
import matplotlib.pyplot as plt

Nz  = 100
nn  = 1
L   = 1.0e-6
c   = 3e8

z    = np.zeros(Nz+1)
exa  = np.zeros(Nz+1)
hya  = np.zeros(Nz+1)
exn  = np.zeros(Nz+1)
hyn  = np.zeros(Nz+1)

kn  = (math.pi/L)*nn
wn  = c*(math.pi/L)*nn

zi  = 0
zf  = L
dz  = (zf-zi)/Nz
dt  = dz/(2*c)

it=0
t=it*dt

for iz in range(0,Nz+1):
  z[iz]  = zi+iz*dz
  
ex_00a=open("ex_00a.dat","w")
for iz in range(0,Nz+1):
  exa[iz] = math.sin(kn*z[iz])*math.cos(wn*t)
  ex_00a.write(str(z[iz]/L)+" "+str(exa[iz])+"\n")
ex_00a.close()
plt.plot(z,exa)
plt.savefig("ex0{}.png".format(it))
plt.close()

it=1
t=it*dt

hy_01a=open("hy_01a.dat","w")
for iz in range(0,Nz+1):
  hya[iz] = math.cos(kn*z[iz])*math.sin(wn*t)
  hy_01a.write(str(z[iz]/L)+" "+str(hya[iz])+"\n")
hy_01a.close()
plt.plot(z,hya)
plt.savefig("hy0{}.png".format(it))
plt.close()


for iz in range(0,Nz+2,2):
  exn[iz]=exa[iz]

for iz in range(0,Nz,2):
  hyn[iz+1]=hya[iz+1]



for it in range(2,199,2):
  t=it*dt
#  ex_02n=open("ex_02n.dat","w")
  for iz in range(0,Nz-2,2):
    exn[iz+2] = exn[iz+2]-0.5*(hyn[iz+3]-hyn[iz+1])
  for iz in range(0,Nz+1):
    exa[iz] = math.sin(kn*z[iz])*math.cos(wn*t)

  plt.ylim(-1,1)
  plt.plot(z,exn,'o',z,exa,'+')
  if it<  10:            plt.savefig("exn00{}.png".format(it))
  if it>= 10 and it<100: plt.savefig( "exn0{}.png".format(it))
  if it>= 100:           plt.savefig(  "exn{}.png".format(it))
  plt.close()
  
  for iz in range(0,Nz,2):
    hyn[iz+1] = hyn[iz+1]-0.5*(exn[iz+2]-exn[iz])
  for iz in range(0,Nz+1):
    hya[iz] = math.cos(kn*z[iz])*math.sin(-wn*t)
  plt.ylim(-1,1)  
  plt.plot(z,hyn,'o',z,hya,'+')
  if it<  10:              plt.savefig("hyn00{}.png".format(it+1))
  if it>= 10 and it < 100: plt.savefig( "hyn0{}.png".format(it+1))
  if it>= 100:             plt.savefig(  "hyn{}.png".format(it+1))
  plt.close()