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()