# Stuck at trying to plot a dispersion relation EM wave

We are considering the matrix transformation of an electromagnetic wave through periodic media. The constant is given as:

mu1= 1; mu2 = 1; e1 = 2.25;  e2 = 1;  d1 = 1*10^-7;  d2 = 1*10^-7;  Z1 = (mu1/e1)^1/2;  Z2 = (mu2/e2)^1/2;    q = Z2/Z1;  k1 = (mu1*e1) w;  k2 = (mu2*e2) w;


and the transfer matrix, where T12 transformation from medium 1 to medium 2 through the surface, similar to T21; and T1d is transfer in the media 1 of width d, similar for medium 2:

T12 = 1/2*{{1 + q, 1 - q}, {1 - q, 1 + q}};
T21 = 1/2*{{1 + 1/q, 1 - 1/q}, {1 - 1/q, 1 + 1/q}};
T1d = {{Exp[I*k1*d1], 0}, {0, Exp[-I*k1*d1]}};
T2d = {{Exp[I*k2*d2], 0}, {0, Exp[-I*k2*d2]}};

T = T12.T2d.T21.T1d;


The Bloch wavenumber is

Kb = Simplify[1/(d1 + d2)*ArcCos[Re[Tr[T]]/2]];


where Kb is function of omega. Here is a dispersion relation. Notice that Tr(T)<2 Kb is real, and Tr(T)>2 Kb is imaginary.

How do I make a dispersion relation plot using RegionPlot? Something like this: or this Thank you

• Can you explain a bit about what's "dispersion relation plot"? Also, there're 2 definitions for T21 in your code, which one is T12. (You should always keep an eye on the coloring of code, the T12 should be blue now, which suggests it's "empty". ) Mar 28 '20 at 3:09
• Thank you so much to point it out ! I have change it. Mar 28 '20 at 5:29
• I hope to make a plot of w vs Kb or Kb vs w, that is dispersion relation. With different value of w, there may be some imaginary results for Kb, those are gaps. The region plot will gives us the gap and band (real results) in 2-D. Mar 28 '20 at 5:35
• Then mu1 is missing. Mar 28 '20 at 5:54
• Sorry again. my mistake. Mar 28 '20 at 6:19

I have been working on it for a while. The dispersion relation is just as definition Kb-w or w-Kb. So with the definition above for Kb, Bloch wave. In the part we only consider the normal incident wave so k1=k1z k2=k2z where z is the direction of propagation.

Just use plot for this part.

Plot[Re[Kb] /. {kx -> 0}, {w, 0, 10^8}, AxesLabel -> {"\[Omega]", "Kb"}, PlotLabel -> "Q3b, Dispersion Relation"]

For the band-gap plot, we can no longer use the expression of k1 and k2 like this. We need to use the general expression as k1 = (mu1*e1*w^2 - kx^2)^0.5; k2 = (mu2*e2*w^2 - kx^2)^0.5; so k1 and k2 is on the z-direction (the direction of propagation). So the trace of transfer matrix Tr(T) has two parameters. Then with the RegionPlot and condition of Tr(T)>2 we plot the gaps of the dispersion relation.

RegionPlot[Re[Tr[T]] > 2, {kx, 0, 10^8}, {w, 0, 10^8}, AxesLabel -> {"kx", "\[Omega]"}, PlotLabel -> "Tr[T]>2"]

Both of the plot reflect the relation of Bloch wavenumber and frequency of the wave. That is all we want.

• In 2nd plot, adding PlotPoints->50 should improve the result. Mar 30 '20 at 11:23
• Thanks, I try it, it is really help. Apr 2 '20 at 7:05