%pylab inline
Populating the interactive namespace from numpy and matplotlib
I'll show three different ways of looking at the fields. It's confusing because we have to look at many points in two dimensions, and each point has a three-dimensional E-field vector. First, I'll plot the magnitude, $|E(x,z)|^2$ over a grid of $(x,z)$ pairs. In lieu of a movie, I'll show four snapshots of this quantity over a half-period.
k0 = 1.
Y = 0.5
X = 0.25
N = 100
x = linspace(-5,5,N)
z = linspace(-5,5,N)
xg,zg = meshgrid(x,z)
no2 = 1-X
nr2 = 1-X/(1-Y)
no = sqrt(no2)
nr = sqrt(nr2)
Ex = exp(-1j*k0*nr*zg)
Ey = -1j*exp(-1j*k0*nr*zg)
Ez = exp(-1j*k0*no*xg)
figure(figsize=(3,12))
for i in range(4):
subplot(4,1,i+1)
ph = i*pi/4
F = real(Ex*exp(1j*ph))**2 + \
real(Ey*exp(1j*ph))**2 + \
real(Ez*exp(1j*ph))**2
pcolormesh(xg,zg,F,cmap='RdBu')
axis('equal')
axis('tight')
colorbar()
From this view, it looks like we have a simple plane wave. However, a glance at the colorbar indicates that there is a DC offset of the E-field. This should make sense, because the (x,y) component is a circular-polarized wave, so that has a constant value for $|E|$. It is the $E_z$ component that is contributing to the structure. Thus, we need to look at this in more detail.
Next, I'll show the same kind of plots, but instead of plotting the magnitude, $|E(x,z)|$, I'll try to show the actual vector using a quiver plot. Note that I'm ignoring $E_y$.
k0 = 1.
Y = 0.5
X = 0.25
N = 10
x = linspace(-5,5,N)
z = linspace(-5,5,N)
xg,zg = meshgrid(x,z)
no2 = 1-X
nr2 = 1-X/(1-Y)
no = sqrt(no2)
nr = sqrt(nr2)
Ex = exp(-1j*k0*nr*zg)
Ey = -1j*exp(-1j*k0*nr*zg)
Ez = exp(-1j*k0*no*xg)
figure(figsize=(3,12))
for i in range(4):
subplot(4,1,i+1)
ph = i*pi/4
Exi = real(Ex*exp(1j*ph))
Ezi = real(Ez*exp(1j*ph))
quiver(xg,zg,Exi,Ezi)
axis('equal')
axis('tight')
From these plots it is clear that the wave structure is quite complex, and this wave is not a simple TEM wave. However, this is not quite convincing yet, as it could still be considered one "wave". To try to get another look at this wave, I'll plot the Poynting vector. The calculation of the Poynting vector is shown using pencil and paper and is attached. Again, I'm ignoring the $y$ component to make this 2D plot.
k0 = 1.
Y = 0.5
X = 0.25
N = 10
x = linspace(-5,5,N)
z = linspace(-5,5,N)
xg,zg = meshgrid(x,z)
no2 = 1-X
nr2 = 1-X/(1-Y)
no = sqrt(no2)
nr = sqrt(nr2)
Ex = exp(-1j*k0*nr*zg)
Ey = -1j*exp(-1j*k0*nr*zg)
Ez = exp(-1j*k0*no*xg)
c = 3e8
w = k0*c
mu = 4*pi*1e-7
Sx = 1/(1j*w*mu)*(1j*k0*no + 1j*k0*nr*exp(-1j*k0*(-nr*zg + no*xg)))
Sy = 1j*nr/(mu*c) * exp(-1j*k0*(no*xg - nr*zg))
Sz = -1/(1j*w*mu)*(1j*k0*no*exp(-1j*k0*(nr*zg - no*xg))) - nr/(mu*c)
figure(figsize=(3,12))
for i in range(4):
subplot(4,1,i+1)
ph = i*pi/4
Px = real(Sx*exp(1j*ph))
Pz = real(Sz*exp(1j*ph))
quiver(xg,zg,Px,Pz)
axis('equal')
axis('tight')
From this it is clear that this is not a plane wave, since the Poynting vector is not in the direction of propagation, and, in fact, changes direction throughout one period.
So my final answer is NO.
import subpro`cess
import shutil
nb_name = 'ECE458_Final_Part1.ipynb' # There's probably a way to get this programmatically
cmd = ['ipython', 'nbconvert', '--to', 'slides', nb_name, \
'--reveal-prefix', '"http://cdn.jsdelivr.net/reveal.js/2.6.2"',]
# '--template','output_toggle']
# The --template command points to a custom template which opens and closes the input code cells with a click
subprocess.call(cmd)
html_name = '%s.slides.html' % (nb_name.split('.')[0])
shutil.copy(html_name, '/home/bhardin2/public_html/slideshows/')
nL = sqrt(10./11)
nR = sqrt(8./9)
z = 2*pi/(nL-nR)
print z
589.773989437
zp = z/4
Ey = -1j*exp(-1j*nR*zp) + 1j*exp(-1j*nL*zp)
print Ey
Ex = exp(-1j*nR*zp) + exp(-1j*nL*zp)
print Ex
print zp
(0.00624018083539-1.41419979499j) (0.00624018083539-1.41419979499j) 147.443497359